【问题解决】微信支付:获取沙箱密钥失败,确认交易密钥是否正确

问题描述:

按照官网开发文档请求沙盒支付接口密钥

字段名 字段 必填 示例值 类型 说明
商户号 mch_id 1305638280 String(32) 微信支付分配的微信商户号
随机字符串 nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 随机字符串,不长于32位
签名 sign 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 签名值

发生错误:获取沙箱密钥失败,确认交易密钥是否正确

原因分析:

签名出错,参考安全规范
POST的数据里面没有商户相关的API_KEY, 但是凡是调用接口的签名, 在StringA按ASCII码拼接完请求参数之后,都需要在结尾加上key值,该值在微信商户平台可查到.
错误StringA:

stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA"; 

正确StringA:

stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA&key=xxxxxxxxxxxxxx"; 

然后再将StringA做MD5或sha256加密运算.
得到正确返回sandbox_signkey, 可以此做后续沙盒测试.

你可能感兴趣的:(错误解决,微信开发)