专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

[微信支付]C# .net 微信扫码支付Body含有中文导致出现“签名错误”

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:32:24       共计:3660 浏览
1.微信支付坑多多,签名Body竟出错

经过近期对微信支付的开发,走过太多的坑,真怕以后再做微信支付,特将小问题逐步整理.

此为微信支付中的native支付第二种支付方式,在请求参数时出现问题:body(商品描述)为中文时,签名失败,为英文时签名成功。

系统为考试系统,测试报名考试是否能正常生成二维码
测试1:考试名称为 wwwsdnh (全英文) [我将考试名称作为微信支付的body信息传入]
在这里插入图片描述
微信扫码后成功显示,妈呀好激动,终于完成了
在这里插入图片描述
结果测试2:考试名称为 测试点击报名考试时是否修改状态(中文)
前段vue报错:
在这里插入图片描述
后端vs中出现
在这里插入图片描述
查看
在这里插入图片描述
签名错误,纳尼,肿么可能!我刚刚明明成功了呀!好吧 我服!谁让微信是爸爸呢!
2.解决方案

通过我的一顿搜索,搞定
原因就是在于body是中文,转换出了问题导致签名的算法在转换时出错!
解决措施:
找到API的Data类的CalcHMACSHA256Hash方法

在这里插入图片描述
在这里插入图片描述
将var enc = Encoding.Default;
改为var enc = Encoding.UTF8; //修改Default为UTF8**

修改后
在这里插入图片描述
在这里插入图片描述
3.虽然解决了中文问题,但是还存在一点小问题,比如 数据中存在 冒号,暂时博主没找出解决方案,坐等大神补充~之后找到后会及时补充.

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:将webApp或者H5页面打包成App | ·下一条:C# http请求带请求头部分

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有