用的是 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"
你确定
generate_notify_resp
这个函数可以直接传入字典,而不是 json 字符串?