新增【后台】微信支付商家转账增加场景选择。

This commit is contained in:
jianweie code
2025-08-04 16:52:24 +08:00
parent 8b6029320e
commit fd37f1daa7
8 changed files with 235 additions and 30 deletions

View File

@@ -3450,5 +3450,61 @@ namespace CoreCms.Net.Configuration
}
#endregion
#region -ID
/// <summary>
/// 微信支付-商家转账场景ID
/// </summary>
public enum WeChatPayTransferSceneId
{
/// <summary>
/// 现金营销
/// </summary>
[Description("现金营销")]
= 1000,
/// <summary>
/// 佣金报酬
/// </summary>
[Description("佣金报酬")]
= 1005,
/// <summary>
/// 采购货款
/// </summary>
[Description("采购货款")]
= 1009,
/// <summary>
/// 二手回收
/// </summary>
[Description("二手回收")]
= 1010,
/// <summary>
/// 企业赔付
/// </summary>
[Description("企业赔付")]
= 1011,
/// <summary>
/// 行政补贴
/// </summary>
[Description("行政补贴")]
= 1002,
/// <summary>
/// 公益补助
/// </summary>
[Description("公益补助")]
= 1013,
/// <summary>
/// 保险理赔
/// </summary>
[Description("保险理赔")]
= 1004,
}
#endregion
}
}

View File

@@ -44,10 +44,12 @@ namespace CoreCms.Net.IServices
/// <summary>
/// 提现审核
/// </summary>
/// <param name="id"></param>
/// <param name="status"></param>
/// <param name="id">数据序列</param>
/// <param name="status">状态</param>
/// <param name="type">提现方式</param>
/// <param name="sceneId">转账场景(只有微信支付商家转账时使用)</param>
/// <returns></returns>
Task<WebApiCallBack> Examine(int id = 0, int status = 0, int type = (int)GlobalEnumVars.UserTocashType.线);
Task<WebApiCallBack> Examine(int id = 0, int status = 0, int type = (int)GlobalEnumVars.UserTocashType.线, int sceneId = 1000);
#region

View File

@@ -10665,6 +10665,11 @@
提现方式
</summary>
</member>
<member name="P:CoreCms.Net.Model.FromBody.FMUserTocash.sceneId">
<summary>
转账场景(只有微信支付商家转账时使用)
</summary>
</member>
<member name="T:CoreCms.Net.Model.FromBody.FMGetWeChatConfig">
<summary>

View File

@@ -160,6 +160,12 @@ namespace CoreCms.Net.Model.FromBody
/// </summary>
public int type { get; set; }
/// <summary>
/// 转账场景(只有微信支付商家转账时使用)
/// </summary>
public int sceneId { get; set; } = 1000;
}
}

View File

@@ -253,10 +253,12 @@ namespace CoreCms.Net.Services
/// <summary>
/// 提现审核
/// </summary>
/// <param name="id"></param>
/// <param name="status"></param>
/// <param name="id">数据序列</param>
/// <param name="status">状态</param>
/// <param name="type">提现方式</param>
/// <param name="sceneId">转账场景(只有微信支付商家转账时使用)</param>
/// <returns></returns>
public async Task<WebApiCallBack> Examine(int id = 0, int status = 0, int type = (int)GlobalEnumVars.UserTocashType.线)
public async Task<WebApiCallBack> Examine(int id = 0, int status = 0, int type = (int)GlobalEnumVars.UserTocashType.线, int sceneId = 1000)
{
var jm = new WebApiCallBack();
@@ -575,7 +577,6 @@ namespace CoreCms.Net.Services
request.AppId = config.appId;
request.OutBillNumber = "usertocash" + info.id;
request.TransferSceneId = "1000";
request.OpenId = weChatUserInfo.openid;
//按分计算
@@ -584,22 +585,138 @@ namespace CoreCms.Net.Services
{
request.UserName = info.accountName;
}
request.TransferRemark = "客户推广业务佣金提现处理";
request.NotifyUrl = config.transferBillsUrl;
request.TransferSceneReportInfoList = new List<CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo>()
{
new CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo()
request.TransferSceneId = sceneId.ToString();
switch (sceneId)
{
case (int)GlobalEnumVars.WeChatPayTransferSceneId.:
request.TransferRemark = "客户推广业务佣金提现处理";
request.TransferSceneReportInfoList = new List<CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo>()
{
InfoType = "活动名称",
InfoContent = "分销佣金提现",
},
new CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo()
new()
{
InfoType = "活动名称",
InfoContent = "分销佣金提现",
},
new()
{
InfoType = "奖励说明",
InfoContent = "用户分销佣金提现申请",
}
};
break;
case (int)GlobalEnumVars.WeChatPayTransferSceneId.:
request.TransferRemark = "企业赔付费用";
request.TransferSceneReportInfoList = new List<CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo>()
{
InfoType = "奖励说明",
InfoContent = "用户分销佣金提现申请",
}
};
new()
{
InfoType = "赔付原因",
InfoContent = "用户主动申请赔付提现转账",
}
};
break;
case (int)GlobalEnumVars.WeChatPayTransferSceneId.:
request.TransferRemark = "佣金报酬费用";
request.TransferSceneReportInfoList = new List<CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo>()
{
new()
{
InfoType = "岗位类型",
InfoContent = "业务人员",
},
new()
{
InfoType = "报酬说明",
InfoContent = "用户主动申请报酬提现转账",
}
};
break;
case (int)GlobalEnumVars.WeChatPayTransferSceneId.:
request.TransferRemark = "采购货款费用";
request.TransferSceneReportInfoList = new List<CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo>()
{
new()
{
InfoType = "采购商品名称",
InfoContent = "未定义的商品名称提现转账",
}
};
break;
case (int)GlobalEnumVars.WeChatPayTransferSceneId.:
request.TransferRemark = "二手回收费用";
request.TransferSceneReportInfoList = new List<CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo>()
{
new()
{
InfoType = "回收商品名称",
InfoContent = "未定义的商品名称提现转账",
}
};
break;
case (int)GlobalEnumVars.WeChatPayTransferSceneId.:
request.TransferRemark = "公益补助费用";
request.TransferSceneReportInfoList = new List<CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo>()
{
new()
{
InfoType = "公益活动名称",
InfoContent = "未定义的活动名称",
},
new()
{
InfoType = "公益活动备案编号",
InfoContent = "未定义的活动备案编号",
}
};
break;
case (int)GlobalEnumVars.WeChatPayTransferSceneId.:
request.TransferRemark = "行政补贴费用";
request.TransferSceneReportInfoList = new List<CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo>()
{
new()
{
InfoType = "补贴类型",
InfoContent = "用户自主申请行政补贴费用提现",
}
};
break;
case (int)GlobalEnumVars.WeChatPayTransferSceneId.:
request.TransferRemark = "保险理赔费用";
request.TransferSceneReportInfoList = new List<CreateFundAppMerchantTransferBillRequest.Types.TransferSceneReportInfo>()
{
new()
{
InfoType = "保险产品备案编号",
InfoContent = "未定义的保险产品备案编号",
},
new()
{
InfoType = "保险名称",
InfoContent = "未定义的保险名称",
},
new()
{
InfoType = "保险操作单号",
InfoContent = "未定义的保险操作单号",
}
};
break;
default:
break;
}
var response = await client.ExecuteCreateFundAppMerchantTransferBillAsync(request);
if (response.IsSuccessful())
@@ -630,7 +747,6 @@ namespace CoreCms.Net.Services
log.createTime = DateTime.Now;
await _userTocashWeChatResponseServices.InsertAsync(log);
jm.status = bl;
jm.data = status;
}
@@ -662,8 +778,6 @@ namespace CoreCms.Net.Services
break;
}
return jm;
}

View File

@@ -294,12 +294,14 @@ namespace CoreCms.Net.Web.Admin.Controllers
var userTocashStatus = EnumHelper.EnumToList<GlobalEnumVars.UserTocashStatus>();
var userTocashType = EnumHelper.EnumToList<GlobalEnumVars.UserTocashType>();
var weChatPayTransferSceneId = EnumHelper.EnumToList<GlobalEnumVars.WeChatPayTransferSceneId>();
jm.data = new
{
model,
userTocashStatus,
userTocashType
userTocashType,
weChatPayTransferSceneId
};
return jm;
@@ -327,7 +329,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
return jm;
}
var res = await _coreCmsUserTocashServices.Examine(entity.id, entity.status, entity.type);
var res = await _coreCmsUserTocashServices.Examine(entity.id, entity.status, entity.type, entity.sceneId);
jm.code = res.status ? 0 : 1;
jm.data = res.data;
jm.msg = res.msg;
@@ -360,12 +362,14 @@ namespace CoreCms.Net.Web.Admin.Controllers
var userTocashStatus = EnumHelper.EnumToList<GlobalEnumVars.UserTocashStatus>();
var userTocashType = EnumHelper.EnumToList<GlobalEnumVars.UserTocashType>();
var weChatPayTransferSceneId = EnumHelper.EnumToList<GlobalEnumVars.WeChatPayTransferSceneId>();
jm.data = new
{
model,
userTocashStatus,
userTocashType
userTocashType,
weChatPayTransferSceneId
};
return jm;

View File

@@ -23,13 +23,24 @@
</select>
</div>
</div>
<div class="layui-form-item" id="selectSceneBox">
<label for="sceneId" class="layui-form-label layui-form-required">转账场景</label>
<div class="layui-input-block">
<select name="sceneId" lay-verify="required|number" lay-reqText="请选择审核状态">
{{# layui.each(d.params.data.weChatPayTransferSceneId, function(index, item){ }}
<option value="{{ item.value }}">{{ item.title }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item">
<blockquote class="layui-elem-quote">
1微信提现需微信支付商户开通了企业付款到零钱功能<br />
2只有提现方式银行卡才可主动设置成功失败<br />
3微信提现方式下将依据请求微信api接口返回信息进行状态处理<br />
4微信提现付款到零钱微信提现付款到银行卡再有异常的情况下都可继续进行新的处理可能会存在网络微信支付商户余额用户填写的银行卡信息错误等<br />
5微信提现付款到银行卡需要配置RsaPublicKey请自行添加不然会报异常
5微信提现付款到银行卡需要配置RsaPublicKey请自行添加不然会报异常<br />
6商家转账请完善微信支付配置里面的相关平台证书或者微信支付公钥请自行添加不然会报异常另外选择商家转账根据自己申请的转账场景选择上面转账场景的下拉数据错误的转账场景也将导致转账失败
</blockquote>
</div>
@@ -43,6 +54,7 @@
layui.data.sendParams = function (d) {
//开启调试情况下获取接口赋值数据
if (debug) { console.log(d.params.data); }
layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg'],
function () {
var $ = layui.$
@@ -54,6 +66,7 @@
, coreHelper = layui.coreHelper;
$('#selectStatusBox').hide();
$('#selectSceneBox').hide();
form.on('select(selectType)', function (data) {
console.log(data.value); //复选框value值也可以通过data.elem.value得到
@@ -62,6 +75,13 @@
} else {
$('#selectStatusBox').hide();
}
if (data.value === '4') {
$('#selectSceneBox').show();
} else {
$('#selectSceneBox').hide();
}
});

View File

@@ -239,7 +239,7 @@
admin.popup({
shadeClose: false,
title: '提现操作',
area: ['500px', '400px'],
area: ['500px', '500px'],
id: 'LAY-popup-CoreCmsUserTocash-edit',
success: function (layero, index) {
view(this.id).render('financial/usertocash/edit', { data: e.data }).done(function () {
@@ -248,8 +248,6 @@
function (data) {
var field = data.field; //获取提交的字段
if (debug) { console.log(field); } //开启调试返回数据
//提交 Ajax 成功后,关闭当前弹层并重载表格
coreHelper.Post("Api/CoreCmsUserTocash/SetStatus", field, function (e) {