From 2bfbf7d1395ec62d7e71009a58c0c530bb3e6b47 Mon Sep 17 00:00:00 2001 From: jianweie code Date: Wed, 26 Apr 2023 00:00:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=81=E4=B9=A6=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E8=BD=ACbase64=E5=B8=A6=E4=BA=86=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CoreCms.Net.Services/Pay/AliPayServices.cs | 5 +- .../Pay/WeChatPayConfigServices.cs | 2 +- .../Pay/CoreCmsAlipayConfigController.cs | 129 +++++++++++------- .../views/shop/pay/alipayconfig/create.html | 36 ++++- .../views/shop/pay/alipayconfig/edit.html | 55 ++++++++ .../views/shop/pay/alipayconfig/index.html | 4 +- .../shop/pay/wechatpayconfig/create.html | 4 +- .../views/shop/pay/wechatpayconfig/edit.html | 21 +++ .../views/shop/pay/wechatpayconfig/index.html | 4 +- 9 files changed, 202 insertions(+), 58 deletions(-) diff --git a/CoreCms.Net.Services/Pay/AliPayServices.cs b/CoreCms.Net.Services/Pay/AliPayServices.cs index b43ec8ee..1206d852 100644 --- a/CoreCms.Net.Services/Pay/AliPayServices.cs +++ b/CoreCms.Net.Services/Pay/AliPayServices.cs @@ -133,7 +133,7 @@ namespace CoreCms.Net.Services { OutTradeNo = entity.paymentId, Subject = entity.payTitle.Length > 40 ? entity.payTitle[..40] : entity.payTitle, - //ProductCode = "FAST_INSTANT_TRADE_PAY", + ProductCode = "FAST_INSTANT_TRADE_PAY", TotalAmount = entity.money.ToString(CultureInfo.InvariantCulture), Body = entity.payTitle.Length > 40 ? entity.payTitle[..40] : entity.payTitle }; @@ -187,7 +187,8 @@ namespace CoreCms.Net.Services { OutTradeNo = entity.paymentId, Subject = entity.payTitle.Length > 40 ? entity.payTitle[..40] : entity.payTitle, - ProductCode = entity.paymentCode, + //ProductCode = entity.paymentCode, + ProductCode = "QUICK_WAP_PAY", TotalAmount = entity.money.ToString(CultureInfo.InvariantCulture), Body = entity.payTitle.Length > 40 ? entity.payTitle[..40] : entity.payTitle }; diff --git a/CoreCms.Net.Services/Pay/WeChatPayConfigServices.cs b/CoreCms.Net.Services/Pay/WeChatPayConfigServices.cs index bbf16942..f5745c86 100644 --- a/CoreCms.Net.Services/Pay/WeChatPayConfigServices.cs +++ b/CoreCms.Net.Services/Pay/WeChatPayConfigServices.cs @@ -106,7 +106,7 @@ namespace CoreCms.Net.Services #endregion - #region 重写根据条件查询分页数据 + #region 重写根据条件查询分页数据 /// /// 重写根据条件查询分页数据 /// diff --git a/CoreCms.Net.Web.Admin/Controllers/Pay/CoreCmsAlipayConfigController.cs b/CoreCms.Net.Web.Admin/Controllers/Pay/CoreCmsAlipayConfigController.cs index 0c8811ef..4fdea65c 100644 --- a/CoreCms.Net.Web.Admin/Controllers/Pay/CoreCmsAlipayConfigController.cs +++ b/CoreCms.Net.Web.Admin/Controllers/Pay/CoreCmsAlipayConfigController.cs @@ -30,6 +30,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using NPOI.HSSF.UserModel; using SqlSugar; +using static CoreCms.Net.Configuration.GlobalEnumVars; namespace CoreCms.Net.Web.Admin.Controllers { @@ -50,7 +51,7 @@ namespace CoreCms.Net.Web.Admin.Controllers /// 构造函数 /// public CoreCmsAlipayConfigController(IWebHostEnvironment webHostEnvironment - ,IAlipayConfigServices coreCmsAlipayConfigServices + , IAlipayConfigServices coreCmsAlipayConfigServices ) { _webHostEnvironment = webHostEnvironment; @@ -59,7 +60,7 @@ namespace CoreCms.Net.Web.Admin.Controllers #region 获取列表============================================================ // POST: Api/CoreCmsAlipayConfig/GetPageList - /// + /// /// 获取列表 /// /// @@ -76,7 +77,21 @@ namespace CoreCms.Net.Web.Admin.Controllers Expression> orderEx = orderField switch { - "id" => p => p.id,"appId" => p => p.appId,"publicKey" => p => p.publicKey,"privateKey" => p => p.privateKey,"serverUrl" => p => p.serverUrl,"signType" => p => p.signType,"appPublicCert" => p => p.appPublicCert,"alipayPublicCert" => p => p.alipayPublicCert,"alipayRootCert" => p => p.alipayRootCert,"appType" => p => p.appType,"notifyUrl" => p => p.notifyUrl,"refundUrl" => p => p.refundUrl,"jumpUrl" => p => p.jumpUrl,"isEnable" => p => p.isEnable,"isDefault" => p => p.isDefault, + "id" => p => p.id, + "appId" => p => p.appId, + "publicKey" => p => p.publicKey, + "privateKey" => p => p.privateKey, + "serverUrl" => p => p.serverUrl, + "signType" => p => p.signType, + "appPublicCert" => p => p.appPublicCert, + "alipayPublicCert" => p => p.alipayPublicCert, + "alipayRootCert" => p => p.alipayRootCert, + "appType" => p => p.appType, + "notifyUrl" => p => p.notifyUrl, + "refundUrl" => p => p.refundUrl, + "jumpUrl" => p => p.jumpUrl, + "isEnable" => p => p.isEnable, + "isDefault" => p => p.isDefault, _ => p => p.id }; @@ -89,87 +104,87 @@ namespace CoreCms.Net.Web.Admin.Controllers _ => OrderByType.Desc }; //查询筛选 - - //序列 int - var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0); + + //序列 int + var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0); if (id > 0) { where = where.And(p => p.id == id); } - //支付宝开放平台AppId varchar - var appId = Request.Form["appId"].FirstOrDefault(); + //支付宝开放平台AppId varchar + var appId = Request.Form["appId"].FirstOrDefault(); if (!string.IsNullOrEmpty(appId)) { where = where.And(p => p.appId.Contains(appId)); } - //支付宝公钥 varchar - var publicKey = Request.Form["publicKey"].FirstOrDefault(); + //支付宝公钥 varchar + var publicKey = Request.Form["publicKey"].FirstOrDefault(); if (!string.IsNullOrEmpty(publicKey)) { where = where.And(p => p.publicKey.Contains(publicKey)); } - //应用私钥 varchar - var privateKey = Request.Form["privateKey"].FirstOrDefault(); + //应用私钥 varchar + var privateKey = Request.Form["privateKey"].FirstOrDefault(); if (!string.IsNullOrEmpty(privateKey)) { where = where.And(p => p.privateKey.Contains(privateKey)); } - //服务网关地址 varchar - var serverUrl = Request.Form["serverUrl"].FirstOrDefault(); + //服务网关地址 varchar + var serverUrl = Request.Form["serverUrl"].FirstOrDefault(); if (!string.IsNullOrEmpty(serverUrl)) { where = where.And(p => p.serverUrl.Contains(serverUrl)); } - //签名类型 varchar - var signType = Request.Form["signType"].FirstOrDefault(); + //签名类型 varchar + var signType = Request.Form["signType"].FirstOrDefault(); if (!string.IsNullOrEmpty(signType)) { where = where.And(p => p.signType.Contains(signType)); } - //应用公钥证书 varchar - var appPublicCert = Request.Form["appPublicCert"].FirstOrDefault(); + //应用公钥证书 varchar + var appPublicCert = Request.Form["appPublicCert"].FirstOrDefault(); if (!string.IsNullOrEmpty(appPublicCert)) { where = where.And(p => p.appPublicCert.Contains(appPublicCert)); } - //支付宝公钥证书 varchar - var alipayPublicCert = Request.Form["alipayPublicCert"].FirstOrDefault(); + //支付宝公钥证书 varchar + var alipayPublicCert = Request.Form["alipayPublicCert"].FirstOrDefault(); if (!string.IsNullOrEmpty(alipayPublicCert)) { where = where.And(p => p.alipayPublicCert.Contains(alipayPublicCert)); } - //支付宝根证书 varchar - var alipayRootCert = Request.Form["alipayRootCert"].FirstOrDefault(); + //支付宝根证书 varchar + var alipayRootCert = Request.Form["alipayRootCert"].FirstOrDefault(); if (!string.IsNullOrEmpty(alipayRootCert)) { where = where.And(p => p.alipayRootCert.Contains(alipayRootCert)); } - //应用类型 varchar - var appType = Request.Form["appType"].FirstOrDefault(); + //应用类型 varchar + var appType = Request.Form["appType"].FirstOrDefault(); if (!string.IsNullOrEmpty(appType)) { where = where.And(p => p.appType.Contains(appType)); } - //支付宝支付回调通知 varchar - var notifyUrl = Request.Form["notifyUrl"].FirstOrDefault(); + //支付宝支付回调通知 varchar + var notifyUrl = Request.Form["notifyUrl"].FirstOrDefault(); if (!string.IsNullOrEmpty(notifyUrl)) { where = where.And(p => p.notifyUrl.Contains(notifyUrl)); } - //支付宝退款回调 varchar - var refundUrl = Request.Form["refundUrl"].FirstOrDefault(); + //支付宝退款回调 varchar + var refundUrl = Request.Form["refundUrl"].FirstOrDefault(); if (!string.IsNullOrEmpty(refundUrl)) { where = where.And(p => p.refundUrl.Contains(refundUrl)); } - //支付跳转地址 varchar - var jumpUrl = Request.Form["jumpUrl"].FirstOrDefault(); + //支付跳转地址 varchar + var jumpUrl = Request.Form["jumpUrl"].FirstOrDefault(); if (!string.IsNullOrEmpty(jumpUrl)) { where = where.And(p => p.jumpUrl.Contains(jumpUrl)); } - //是否启用 bit - var isEnable = Request.Form["isEnable"].FirstOrDefault(); + //是否启用 bit + var isEnable = Request.Form["isEnable"].FirstOrDefault(); if (!string.IsNullOrEmpty(isEnable) && isEnable.ToLowerInvariant() == "true") { where = where.And(p => p.isEnable == true); @@ -178,8 +193,8 @@ namespace CoreCms.Net.Web.Admin.Controllers { where = where.And(p => p.isEnable == false); } - //当前多端默认 bit - var isDefault = Request.Form["isDefault"].FirstOrDefault(); + //当前多端默认 bit + var isDefault = Request.Form["isDefault"].FirstOrDefault(); if (!string.IsNullOrEmpty(isDefault) && isDefault.ToLowerInvariant() == "true") { where = where.And(p => p.isDefault == true); @@ -211,6 +226,13 @@ namespace CoreCms.Net.Web.Admin.Controllers { //返回数据 var jm = new AdminUiCallBack { code = 0 }; + + var aliPayPayTradeType = EnumHelper.EnumToList(); + jm.data = new + { + aliPayPayTradeType + }; + return jm; } #endregion @@ -227,6 +249,13 @@ namespace CoreCms.Net.Web.Admin.Controllers { //返回数据 var jm = new AdminUiCallBack { code = 0 }; + + var aliPayPayTradeType = EnumHelper.EnumToList(); + jm.data = new + { + aliPayPayTradeType + }; + return jm; } #endregion @@ -240,7 +269,7 @@ namespace CoreCms.Net.Web.Admin.Controllers /// [HttpPost] [Description("创建提交")] - public async Task DoCreate([FromBody]CoreCmsAlipayConfig entity) + public async Task DoCreate([FromBody] CoreCmsAlipayConfig entity) { var jm = await _coreCmsAlipayConfigServices.InsertAsync(entity); return jm; @@ -256,7 +285,7 @@ namespace CoreCms.Net.Web.Admin.Controllers /// [HttpPost] [Description("编辑数据")] - public async Task GetEdit([FromBody]FMIntId entity) + public async Task GetEdit([FromBody] FMIntId entity) { var jm = new AdminUiCallBack(); @@ -267,7 +296,13 @@ namespace CoreCms.Net.Web.Admin.Controllers return jm; } jm.code = 0; - jm.data = model; + + var aliPayPayTradeType = EnumHelper.EnumToList(); + jm.data = new + { + model, + aliPayPayTradeType + }; return jm; } @@ -282,7 +317,7 @@ namespace CoreCms.Net.Web.Admin.Controllers /// [HttpPost] [Description("编辑提交")] - public async Task DoEdit([FromBody]CoreCmsAlipayConfig entity) + public async Task DoEdit([FromBody] CoreCmsAlipayConfig entity) { var jm = await _coreCmsAlipayConfigServices.UpdateAsync(entity); return jm; @@ -298,7 +333,7 @@ namespace CoreCms.Net.Web.Admin.Controllers /// [HttpPost] [Description("单选删除")] - public async Task DoDelete([FromBody]FMIntId entity) + public async Task DoDelete([FromBody] FMIntId entity) { var jm = new AdminUiCallBack(); @@ -306,7 +341,7 @@ namespace CoreCms.Net.Web.Admin.Controllers if (!model) { jm.msg = GlobalConstVars.DataisNo; - return jm; + return jm; } jm = await _coreCmsAlipayConfigServices.DeleteByIdAsync(entity.id); @@ -323,7 +358,7 @@ namespace CoreCms.Net.Web.Admin.Controllers /// [HttpPost] [Description("预览数据")] - public async Task GetDetails([FromBody]FMIntId entity) + public async Task GetDetails([FromBody] FMIntId entity) { var jm = new AdminUiCallBack(); @@ -349,7 +384,7 @@ namespace CoreCms.Net.Web.Admin.Controllers /// [HttpPost] [Description("设置是否启用")] - public async Task DoSetisEnable([FromBody]FMUpdateBoolDataByIntId entity) + public async Task DoSetisEnable([FromBody] FMUpdateBoolDataByIntId entity) { var jm = new AdminUiCallBack(); @@ -366,9 +401,9 @@ namespace CoreCms.Net.Web.Admin.Controllers jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure; return jm; - } + } #endregion - + #region 设置当前多端默认============================================================ // POST: Api/CoreCmsAlipayConfig/DoSetisDefault/10 /// @@ -378,7 +413,7 @@ namespace CoreCms.Net.Web.Admin.Controllers /// [HttpPost] [Description("设置当前多端默认")] - public async Task DoSetisDefault([FromBody]FMUpdateBoolDataByIntId entity) + public async Task DoSetisDefault([FromBody] FMUpdateBoolDataByIntId entity) { var jm = new AdminUiCallBack(); @@ -395,9 +430,9 @@ namespace CoreCms.Net.Web.Admin.Controllers jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure; return jm; - } + } #endregion - + } } diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/create.html index 926f6a58..2d6b983b 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/create.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/create.html @@ -188,14 +188,46 @@ , exts: 'p12' , choose: function (obj) { obj.preview(function (index, file, result) { - $('#certificateBox').val(result); - form.render(null, 'LAY-app-CoreCmsWeChatPayConfig-createForm'); + var base64 = result.substring(result.indexOf(',') + 1) + $('#appPublicCertBox').val(base64); + form.render(null, 'LAY-app-CoreCmsAlipayConfig-createForm'); }); }, error: function () { //请求异常回调 } }); + upload.render({ + elem: '#doUploadAlipayPublicCert' //绑定元素 + , auto: false + , accept: 'file' + , exts: 'p12' + , choose: function (obj) { + obj.preview(function (index, file, result) { + var base64 = result.substring(result.indexOf(',') + 1) + $('#alipayPublicCertBox').val(base64); + form.render(null, 'LAY-app-CoreCmsAlipayConfig-createForm'); + }); + }, error: function () { + //请求异常回调 + } + }); + + upload.render({ + elem: '#doUploadAlipayRootCert' //绑定元素 + , auto: false + , accept: 'file' + , exts: 'p12' + , choose: function (obj) { + obj.preview(function (index, file, result) { + var base64 = result.substring(result.indexOf(',') + 1) + $('#alipayRootCertBox').val(base64); + form.render(null, 'LAY-app-CoreCmsAlipayConfig-createForm'); + }); + }, error: function () { + //请求异常回调 + } + }); form.verify({ diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/edit.html index c40f0a25..1c935e57 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/edit.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/edit.html @@ -176,6 +176,61 @@ , cropperImg = layui.cropperImg , coreHelper = layui.coreHelper; + + + var upload = layui.upload; + + //执行实例 + upload.render({ + elem: '#doUploadAppPublicCert' //绑定元素 + , auto: false + , accept: 'file' + , exts: 'p12' + , choose: function (obj) { + obj.preview(function (index, file, result) { + var base64 = result.substring(result.indexOf(',') + 1) + $('#appPublicCertBox').val(base64); + form.render(null, 'LAY-app-CoreCmsAlipayConfig-editForm'); + }); + }, error: function () { + //请求异常回调 + } + }); + + upload.render({ + elem: '#doUploadAlipayPublicCert' //绑定元素 + , auto: false + , accept: 'file' + , exts: 'p12' + , choose: function (obj) { + obj.preview(function (index, file, result) { + var base64 = result.substring(result.indexOf(',') + 1) + $('#alipayPublicCertBox').val(base64); + form.render(null, 'LAY-app-CoreCmsAlipayConfig-editForm'); + }); + }, error: function () { + //请求异常回调 + } + }); + + upload.render({ + elem: '#doUploadAlipayRootCert' //绑定元素 + , auto: false + , accept: 'file' + , exts: 'p12' + , choose: function (obj) { + obj.preview(function (index, file, result) { + var base64 = result.substring(result.indexOf(',') + 1) + $('#alipayRootCertBox').val(base64); + form.render(null, 'LAY-app-CoreCmsAlipayConfig-editForm'); + }); + }, error: function () { + //请求异常回调 + } + }); + + + form.verify({ }); diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/index.html index 521a7071..5200b254 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/index.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/alipayconfig/index.html @@ -157,10 +157,10 @@ { field: 'refundUrl', title: '支付宝退款回调', sort: false }, { field: 'jumpUrl', title: '支付跳转地址', sort: false }, { - field: 'appType', title: '应用类型', sort: false, width: 100, templet: function (data) { + field: 'appType', title: '应用类型', sort: false, width: 200, templet: function (data) { for (var i = 0; i < d.data.aliPayPayTradeType.length; i++) { if (d.data.aliPayPayTradeType[i].title === data.appType) { - return d.data.aliPayPayTradeType[i].description; + return d.data.aliPayPayTradeType[i].description + '【' + data.appType + '】'; } } return ""; diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/create.html index 98588058..a5d6105a 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/create.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/create.html @@ -144,7 +144,6 @@ , cropperImg = layui.cropperImg , coreHelper = layui.coreHelper; - var upload = layui.upload; //执行实例 @@ -155,7 +154,8 @@ , exts: 'p12' , choose: function (obj) { obj.preview(function (index, file, result) { - $('#certificateBox').val(result); + var base64 = result.substring(result.indexOf(',') + 1) + $('#certificateBox').val(base64); form.render(null, 'LAY-app-CoreCmsWeChatPayConfig-createForm'); }); }, error: function () { diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/edit.html index 919ccabe..36b53425 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/edit.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/edit.html @@ -144,6 +144,27 @@ , cropperImg = layui.cropperImg , coreHelper = layui.coreHelper; + + var upload = layui.upload; + + //执行实例 + upload.render({ + elem: '#doUpload' //绑定元素 + , auto: false + , accept: 'file' + , exts: 'p12' + , choose: function (obj) { + obj.preview(function (index, file, result) { + var base64 = result.substring(result.indexOf(',') + 1) + $('#certificateBox').val(base64); + form.render(null, 'LAY-app-CoreCmsWeChatPayConfig-editForm'); + }); + }, error: function () { + //请求异常回调 + } + }); + + form.verify({ }); diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/index.html index fee080c6..6f1f6cb5 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/index.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/shop/pay/wechatpayconfig/index.html @@ -156,10 +156,10 @@ { field: 'isDefault', title: '是否本类默认', width: 95, templet: '#switch_isDefault', sort: false, unresize: true }, //{ field: 'appType', title: '应用类型', sort: false, width: 105 }, { - field: 'appType', title: '应用类型', sort: false, width: 80, templet: function (data) { + field: 'appType', title: '应用类型', sort: false, width: 200, templet: function (data) { for (var i = 0; i < d.data.weiChatPayTradeType.length; i++) { if (d.data.weiChatPayTradeType[i].title === data.appType) { - return d.data.weiChatPayTradeType[i].description; + return d.data.weiChatPayTradeType[i].description + '【' + data.appType +'】'; } } return "";