JeffreySu / WeiXinMPSDK

微信全平台 .NET SDK, Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 8.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 WeChat SDK for C#.
https://weixin.senparc.com
Apache License 2.0
8.43k stars 4.35k forks source link

JSSDKHelper.CreateNonekeySha1这个方法进行值排序时与官方的测试工具排序结果有时不一致 #731

Closed pandaban closed 7 years ago

pandaban commented 7 years ago

( 此版块专为反馈bug及提交需求服务,不负责解答开发问题,请勿发表开发问题, 如果您需要这方面的帮助,请移步问答社区https://weixin.senparc.com/QA )

问题描述

在开发卡券功能时,在H5页面添加卡卷有时候会出现签名错误的情况,最终发现问题是JSSDKHelper.CreateNonekeySha1和官方测试工具https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=cardsign 计算出来的签名有时候一致有时候又不一致,发现是值排序的问题,测试数据: code:1 timestamp:1502361405 api_ticket:IpK_1T69hDhZkLQTlwsAX5obXn0E5uq_TynOijBuCBBI6VJSWxNWD7AlvetXO4OCf_GuMkLBePEArCKFXjZfCw nonce_str:f2b54bb143ae41b5afe70437506b0555 card_id:p_BzXw2OeMnlDbAcT6i5Mz5WRMmU 官方计算出来是d7498efca6dc0307529ac4c5983d51dc644f1bce 但是JSSDKHelper.GetcardExtSign得到的却不一样,求帮助

微信官方文档 URL
发现问题的模块
模块对应的.net版本
开发环境
缓存环境
JeffreySu commented 7 years ago

是不是你用的版本不是最新的?最新的已经修改了排序规则: https://github.com/JeffreySu/WeiXinMPSDK/blob/d53eb560f973a6ed94fab874b549602db3aefc76/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Helpers/JSSDK/JSSDKHelper.cs#L146