diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs index 48863d34..8c92f778 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Xml.Linq; @@ -260,8 +260,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (callbackNonce == null) throw new ArgumentNullException(nameof(callbackNonce)); if (callbackSignature == null) throw new ArgumentNullException(nameof(callbackSignature)); - ISet set = new SortedSet(StringComparer.Ordinal) { client.Credentials.PushToken!, callbackTimestamp, callbackNonce }; - string sign = Utilities.SHA1Utility.Hash(string.Concat(set)); + List lstParams = new List() { client.Credentials.PushToken!, callbackTimestamp, callbackNonce }; + lstParams.Sort(StringComparer.Ordinal); + + string sign = Utilities.SHA1Utility.Hash(string.Concat(lstParams)); return string.Equals(sign, callbackSignature, StringComparison.OrdinalIgnoreCase); } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientParameterExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientParameterExtensions.cs index 9f6639c8..deb2e19b 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientParameterExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientParameterExtensions.cs @@ -54,13 +54,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Api string nonce = Guid.NewGuid().ToString("N"); string cardType = "INVOICE"; - ISet sortedParams = new SortedSet(StringComparer.Ordinal); - sortedParams.Add(cardType); - sortedParams.Add(timestamp); - sortedParams.Add(client.Credentials.AppId); - sortedParams.Add(nonce); - sortedParams.Add(wxcardTicket); - string cardSign = Utilities.SHA1Utility.Hash(string.Join(string.Empty, sortedParams)).ToLower(); + List lstParams = new List() { cardType, timestamp, client.Credentials.AppId, nonce, wxcardTicket }; + lstParams.Sort(StringComparer.Ordinal); + string cardSign = Utilities.SHA1Utility.Hash(string.Join(string.Empty, lstParams)).ToLower(); return new ReadOnlyDictionary(new Dictionary() {