收藏
回答

服务商付款码支付,报签名错误?

# 签名参数
data = {
    "appid": "*******",  # 服务商的APPID
    "mch_id": "****",  # 商户号
    "device_info": "******",  # 设备号
    "body": "*****".encode("unicode_escape"),  # 商品描述
    "nonce_str": random_str(),  # 随机字符串
}
# 签名串
appid=*****&body=b'\\u6c90\\u6d74\\u4e73'&device_info=******&mch_id=******&nonce_str=C9kIATeeCeocvsDU&key=*******

# 生成的签名为已在签名校验中校验正确 
D1E1D6B************B12A367j

# 调用的接口
url = "https://api.mch.weixin.qq.com/pay/micropay"
xml_data = '<xml>%s</xml>' % dicttoxml.dicttoxml(data, root=False)  # 将参数转换为xml格式
headers = {'Content-Type': 'application/xml'}  # 指定浏览器将以什么形式、什么编码读取这个文件
res = requests.post(url, data=xml_data, headers=headers)  # 发起请求

# 返回的结果是:
{
    "xml": {
        "return_code": "FAIL",
        "return_msg": "签名错误"
    }
}
我现在就是不知道为什么是签名错误,问题出在哪里呀 校验过的计算没问题

回答关注问题邀请回答
收藏
登录 后发表内容