微信退款申请python

搞了好几天,终于搞定了,分享出来一样希望有缘人少走弯路,少踩坑!

之前开发过微信支付成功的小伙伴适合看本文档,没开发过得可能看不懂,那就抱歉了!我不计划在这里分享微信支付的代码!

一、首先申请退款和企业付款都是需要证书的。从商户后台拿到,具体操作百度里很多不多说了。

二、我用的python 3.6中的requests模块,在用post方法时我用下面的方法指定证书和密钥,别急看完再说!

apiclient_cert = "{}/cert/apiclient_cert.pem".format(BASE_DIR)

        apiclient_key = "{}/cert/apiclient_key.pem".format(BASE_DIR)


        res = requests.post(pre_url, cert=(apiclient_cert, apiclient_key), data=xml.encode('utf-8'), headers={'Content-Type': 'text/xml'})

其中data是接口中要求传入的参数,需要转xml后提交,特别说下out_trade_no,是支付成功后微信返回的,你可以对比商户后台交易单确认这点,所以在支付时要缓存下来,最好写在订单里面去!data里签名的计算就不说了如果你做过支付,方法是完全一样的。

看到这里可能你会说你试过了我的方法,提示证书验证失败,那就对了,下面才是重点!在代码中打印一下这个路径,

requests.certs.where()

路径下有个cacerts.pem。去打开你的apiclient_cert.pem,复制begin到end部分文本,记得begin和end也要,具体可参考现在cacerts.pem里面的样式,把复制好的代码贴在开头部分,然后再去试试,你应该已经成功了!

我试过后发现,cert参数不能不传哦!

你可能感兴趣的:(微信退款申请python)