fix(wxapi): 修复某些场景下生成签名错误

This commit is contained in:
Fu Diwei
2021-08-12 20:23:57 +08:00
parent 5c988926c7
commit 733a3878ce
3 changed files with 3 additions and 3 deletions

View File

@@ -286,7 +286,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
if (callbackNonce == null) throw new ArgumentNullException(nameof(callbackNonce)); if (callbackNonce == null) throw new ArgumentNullException(nameof(callbackNonce));
if (callbackSignature == null) throw new ArgumentNullException(nameof(callbackSignature)); if (callbackSignature == null) throw new ArgumentNullException(nameof(callbackSignature));
ISet<string> set = new SortedSet<string>() { client.Credentials.PushToken!, callbackTimestamp, callbackNonce }; ISet<string> set = new SortedSet<string>(StringComparer.Ordinal) { client.Credentials.PushToken!, callbackTimestamp, callbackNonce };
string sign = Security.SHA1Utility.Hash(string.Concat(set)); string sign = Security.SHA1Utility.Hash(string.Concat(set));
return string.Equals(sign, callbackSignature, StringComparison.InvariantCultureIgnoreCase); return string.Equals(sign, callbackSignature, StringComparison.InvariantCultureIgnoreCase);
} }

View File

@@ -60,7 +60,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
string nonce = Guid.NewGuid().ToString("N"); string nonce = Guid.NewGuid().ToString("N");
string cardType = "INVOICE"; string cardType = "INVOICE";
SortedSet<string> sortedParams = new SortedSet<string>(); ISet<string> sortedParams = new SortedSet<string>(StringComparer.Ordinal);
sortedParams.Add(cardType); sortedParams.Add(cardType);
sortedParams.Add(timestamp); sortedParams.Add(timestamp);
sortedParams.Add(client.Credentials.AppId); sortedParams.Add(client.Credentials.AppId);

View File

@@ -231,7 +231,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities
if (sNonce == null) throw new ArgumentNullException(nameof(sNonce)); if (sNonce == null) throw new ArgumentNullException(nameof(sNonce));
if (sMsgEncrypt == null) throw new ArgumentNullException(nameof(sMsgEncrypt)); if (sMsgEncrypt == null) throw new ArgumentNullException(nameof(sMsgEncrypt));
ISet<string> set = new SortedSet<string>(); ISet<string> set = new SortedSet<string>(StringComparer.Ordinal);
set.Add(sToken); set.Add(sToken);
set.Add(sTimestamp); set.Add(sTimestamp);
set.Add(sNonce); set.Add(sNonce);