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