From 4a1af91da4a8bb156429f856f963d439a9e3e8b1 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 13 Oct 2022 12:51:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(tenpayv2):=20=E4=BF=AE=E5=A4=8D=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=AE=A2=E6=88=B7=E7=AB=AF=E8=B0=83=E8=B5=B7=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E4=BA=8C=E6=AC=A1=E7=AD=BE=E5=90=8D=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=8E=92=E5=BA=8F=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WechatTenpayClientParameterExtensions.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientParameterExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientParameterExtensions.cs index 1de0e2b9..4d24d32e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientParameterExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientParameterExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Web; @@ -19,9 +19,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2 /// REF: https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon_sl.php?chapter=18_3&index=4 /// /// + /// /// /// - public static IDictionary GenerateParametersForJsapiSendBusinessRedPack(this WechatTenpayClient client, string packageString) + public static IDictionary GenerateParametersForJsapiSendBusinessRedPack(this WechatTenpayClient client, string appId, string packageString) { if (client is null) throw new ArgumentNullException(nameof(client)); if (packageString is null) throw new ArgumentNullException(nameof(packageString)); @@ -29,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2 string timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds().ToString(); string nonce = Guid.NewGuid().ToString("N"); string signType = Constants.SignTypes.MD5; - string signData = $"timeStamp={timestamp}&nonceStr={nonce}&package={packageString}&signType={signType}"; + string signData = $"appId={appId}&nonceStr={nonce}&package={packageString}&timeStamp={timestamp}"; string sign = Utilities.RequestSigner.SignFromSortedQueryString(signData, client.Credentials.MerchantSecret, signType); return new ReadOnlyDictionary(new Dictionary() @@ -63,7 +64,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2 string timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds().ToString(); string nonce = Guid.NewGuid().ToString("N"); string package = $"prepay_id={prepayId}"; - string signData = $"appId={appId}&timeStamp={timestamp}&nonceStr={nonce}&package={package}&signType={signType}"; + string signData = $"appId={appId}&nonceStr={nonce}&package={package}&signType={signType}&timeStamp={timestamp}"; string sign = Utilities.RequestSigner.SignFromSortedQueryString(signData, client.Credentials.MerchantSecret, signType); return new ReadOnlyDictionary(new Dictionary() @@ -99,7 +100,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2 string nonce = Guid.NewGuid().ToString("N"); string partnerId = merchantId; string package = "Sign=WXPay"; - string signData = $"appid={appId}×tamp={timestamp}&noncestr={nonce}&package={package}&partnerid={partnerId}&prepayid={prepayId}&signType={signType}"; + string signData = $"appid={appId}&noncestr={nonce}&package={package}&partnerid={partnerId}&prepayid={prepayId}×tamp={timestamp}"; string sign = Utilities.RequestSigner.SignFromSortedQueryString(signData, client.Credentials.MerchantSecret, signType); return new ReadOnlyDictionary(new Dictionary() @@ -150,7 +151,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2 string timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds().ToString(); string nonce = Guid.NewGuid().ToString("N"); string package = $"prepay_id={prepayId}"; - string signData = $"appId={appId}&timeStamp={timestamp}&nonceStr={nonce}&package={package}&signType={signType}"; + string signData = $"appId={appId}&nonceStr={nonce}&package={package}&signType={signType}&timeStamp={timestamp}"; string sign = Utilities.RequestSigner.SignFromSortedQueryString(signData, client.Credentials.MerchantSecret, signType); return new ReadOnlyDictionary(new Dictionary()