diff --git a/CoreCms.Net.Services/Pay/WeChatPayServices.cs b/CoreCms.Net.Services/Pay/WeChatPayServices.cs index dae8cd63..e805d046 100644 --- a/CoreCms.Net.Services/Pay/WeChatPayServices.cs +++ b/CoreCms.Net.Services/Pay/WeChatPayServices.cs @@ -130,9 +130,14 @@ namespace CoreCms.Net.Services SpBillCreateIp = entity.ip, NotifyUrl = weChatPayUrl, TradeType = tradeType, - OpenId = openId + //OpenId = openId }; + if (tradeType == GlobalEnumVars.WeiChatPayTradeType.JSAPI.ToString()) + { + orderRequest.OpenId = openId; + } + var response = await _client.ExecuteAsync(orderRequest, _optionsAccessor.Value); if (response.ReturnCode == WeChatPayCode.Success && response.ResultCode == WeChatPayCode.Success) { @@ -140,8 +145,19 @@ namespace CoreCms.Net.Services { Package = "prepay_id=" + response.PrepayId }; - - var parameter = await _client.ExecuteAsync(req, _optionsAccessor.Value); + WeChatPayDictionary parameter; + if (tradeType == GlobalEnumVars.WeiChatPayTradeType.APP.ToString()) + { + var reqApp = new WeChatPayAppSdkRequest() + { + PrepayId = response.PrepayId + }; + parameter = await _client.ExecuteAsync(reqApp, _optionsAccessor.Value); + } + else + { + parameter = await _client.ExecuteAsync(req, _optionsAccessor.Value); + } // 将参数(parameter)给 公众号前端 让他在微信内H5调起支付(https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6) parameter.Add("paymentId", entity.paymentId);