微信退款申请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参数不能不传哦!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 博客原文传送门:支付网关接入中的ssl连接和签名调试tips 支付平台网关接入是个费力不讨好的活。做过的人都明白,...
    willheng阅读 969评论 0 0
  • 最近一直在加班做项目,好久没有更新文章了,这段时间也遇到了不少问题,今天要分享的主要是django开发微信...
    Code人生阅读 2,961评论 2 8
  • /** * @Author: 小尤 * @Date: 2017-08-30 * @note: 公众号发红包,企...
    M_cd13阅读 908评论 0 0
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 6,366评论 0 6
  • 《我和鱼》——木 你看着我,我看着你, 不敢眨眼一下——记忆短暂 同在一处,却又天各一方。 你摇曳身姿,欢畅自由;...
    qwood123阅读 285评论 0 0