django 开发微信退款功能

  1. 云栖社区>
  2. 博客>
  3. 正文

django 开发微信退款功能

code_sky 2018-08-07 17:38:00 浏览1590
展开阅读全文

        最近一直在加班做项目,好久没有更新文章了,这段时间也遇到了不少问题,今天要分享的主要是django开发微信退款功能。做过微信支付开发的人都知道,微信支付开发文档里边很多都是基于java、php、.net等的demo,很少有python,所以在开发的时候经常遇坑。django微信支付的话网上也有很多博客写了,但是唯独有微信退款,少之又少,甚至没有。因为微信退款需要证书的双向认证,这个被坑得一匹,网上搜出来大多数都是教怎么绕过https证书验证,当然也有教怎么配置,因为我看了微信文档说除了php以外,其它均用p12这个文件(◆ apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。)害我一直用p12这个在弄结果一直认证不了,搞了两天,后来连猜带想的做出来了,其实很简单,就是证书的问题,接下来开始实现。

一、准备环境: 1.django2.0及以上项目;2.requests网络请求模块; 3.在微信支付平台下载证书


img_a589c28dc9e12e7db95ae613e50959d3.png


下载下来后有有这几个问题,在这里我们用的只有(apiclient_cert.pem和apiclient_key.pem)这两个文件,我们将这些文件拷贝到项目目录中


img_118cb863bfd8ebf0e7f8e327c7689c82.png




效果如下:


img_edfc15ec836e5e1196c8bc2131eedf55.png



二、开发微信退款

1.在app项目的views中写一个函数并配置路由,保证能够访问这个函数,运行


img_4ef4f3b0dc673dc5c944f22be0238482.png

2.运行效果:保证能正常运行
img_32cd90bb1387de1b05cededa7e4cc8d7.png










3.配置微信退款请求接口证书:这里说明一下证书路径即是你证书所在目录,根据自己的目录来配置,能访问到证书文件就行,settings我用的是django自带的那个settings里面有个BASE_DIR这个就是项目的根目录,配置好了之后,在resquests中加上cert这个参数就可以了,这里需要注意的是顺序不能放错了,key文件是放在后面的,配置好了之后在次运行就返回200了,说明证书验证就ok了,接下来就是配置退款请求参数解析请求结果就可以了。


img_41df6e92a4f0b2f0daddc6b843320721.png


运行效果:

img_6695dd5e1e7950207bff7b63dea5c674.png


4. 微信退款参数配置(微信支付开发文档:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_4&index=6)


img_90300cd7121b5cc4d7c2cd484a3e7101.png


配置好之后就可以刷新就可以看返回结果了

img_0b2fd9fc0c739a106f846f63d589c776.png

return_code 为SUCCESS就表示成功了,这里我没有配置参数所以报错了。

三、总结

自此django开发微信退款功能就基本完成了,如果有问题基本就是参数签名可能会出问题了,至少证书的双向验证我们是ok了的,当然还有结果需要处理,解析返回的xml就可以了。思路大概就是这样,有什么问题欢迎留言,喜欢我的文章记得关注我哦!



网友评论

登录后评论
0/500
评论
code_sky
+ 关注