用python实现的微信支付sdk在调用支付成功后的回调url时遇到400错误?

用的是 flask,使用 github 的一个第三方用 python 实现的 微信支付sdk,完全按照 sdk 里的 demo 来使用。

回调 url 的视图函数如下:

@mod.route('/notify', methods=['GET', 'POST'])
def notify():
    xml_str = request.data
    ret, ret_dict = qr_wxpay.verify_notify(xml_str)

    # 在这里添加订单更新逻辑
    if ret:
        ret_dict = {
            'return_code': 'SUCCESS',
            'return_msg': 'OK',
        }
        ret_xml = qr_wxpay.generate_notify_resp(ret_dict)
    else:
        ret_dict = {
            'return_code': 'FAIL',
            'return_msg': 'verify error',
        }
        ret_xml = qr_wxpay.generate_notify_resp(ret_dict)
    return ret_xml

以下是相关的 apache 日志:

[08/Jan/2018:07:15:33 -0500] "POST /pay/notify HTTP/1.1" 400 142 "-" "Mozilla/4.0"
阅读 3.9k
1 个回答

你确定 generate_notify_resp 这个函数可以直接传入字典,而不是 json 字符串?

import json
ret_xml = qr_wxpay.generate_notify_resp(json.dumps(ret_dict))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题