请求https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/接口时报错,但是我获取了签名,不知道为啥提示错误的签名?
获取数据失败,请重试!https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/System.Net.WebException: 远程服务器返回错误: (401) 未经授权。
在 System.Net.HttpWebRequest.GetResponse()
返回数据{“code”:“SIGN_ERROR”,“detail”:{“detail”:{“issue”:“sign not match”},“field”:“signature”,“location”:“authorization”,“sign_information”:{“method”:“POST”,“sign_message_length”:4556,“truncated_sign_message”:“POST\n/v3/applyment4sub/applyment/\n1633768376\nph12vkda.xdy\n{\“busine\n”,“url”:”/v3/applyment4sub/applyment/"}},“message”:“错误的签名,验签失败”}
可以使用V3签名验证工具来验证计算是否正确https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/download/Product_5.zip
请注意以下几点:
1) 签名与生成Authorization用的同一个时间戳跟随机串。
2) 构造签名串时,里面的url不需要ToLowCase(),不用UrlEncode(),商户请求的url后缀是什么,签名用的url后缀就是什么。
3) 查询订单使用的是GET,构建签名串时,里面用的请求报文为空(但是那个换行符还是要有哈)。
4)检查证书和商户号是否正确,如是服务商模式,需使用服务商的相关证书。