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()