From a77165bc333359a29835622825c9b88df86a97e1 Mon Sep 17 00:00:00 2001 From: yzp Date: Sun, 2 Mar 2025 11:24:42 +0800 Subject: [PATCH] =?UTF-8?q?GenerateParametersForJsapiPay=20=E8=A6=81?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=BC=BA=E7=B1=BB=E5=9E=8B=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=EF=BC=8Cdynamic=E6=98=AFdiction=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=87=AA=E5=8A=A8=E8=BD=AC=E4=B8=BA=20WechatPayParaOu?= =?UTF-8?q?tput?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Wechat/SysWechatPayService.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Admin.NET/Admin.NET.Core/Service/Wechat/SysWechatPayService.cs b/Admin.NET/Admin.NET.Core/Service/Wechat/SysWechatPayService.cs index 04423fc0..af365498 100644 --- a/Admin.NET/Admin.NET.Core/Service/Wechat/SysWechatPayService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Wechat/SysWechatPayService.cs @@ -5,6 +5,7 @@ // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Furion.Logging.Extensions; +using NewLife; using Newtonsoft.Json; namespace Admin.NET.Core.Service; @@ -77,9 +78,10 @@ public class SysWechatPayService : IDynamicApiController, ITransient /// /// [DisplayName("生成JSAPI调起支付所需参数")] - public dynamic GenerateParametersForJsapiPay(WechatPayParaInput input) + public WechatPayParaOutput GenerateParametersForJsapiPay(WechatPayParaInput input) { - return _wechatTenpayClient.GenerateParametersForJsapiPayRequest(_wechatPayOptions.AppId, input.PrepayId); + var result = _wechatTenpayClient.GenerateParametersForJsapiPayRequest(_wechatPayOptions.AppId, input.PrepayId); + return result.Adapt(); } /// @@ -91,10 +93,14 @@ public class SysWechatPayService : IDynamicApiController, ITransient string outTradeNumber = DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff") + (new Random()).Next(100, 1000); // 微信需要的订单号(唯一) // 检查订单信息是否已存在(使用“商户交易单号+状态”唯一性判断) - var wechatPay = await _sysWechatPayRep.GetFirstAsync(u => u.OrderId == input.OrderId && u.OrderStatus == input.OrderStatus); - if (wechatPay != null) + SysWechatPay wechatPay = null; + if (!string.IsNullOrEmpty(input.OrderId)) { - outTradeNumber = wechatPay.OutTradeNumber; + wechatPay = await _sysWechatPayRep.GetFirstAsync(u => u.OrderId == input.OrderId && u.OrderStatus == input.OrderStatus); + if (wechatPay != null) + { + outTradeNumber = wechatPay.OutTradeNumber; + } } var request = new CreatePayTransactionJsapiRequest()