博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django 开发微信退款功能
阅读量:6495 次
发布时间:2019-06-24

本文共 1019 字,大约阅读时间需要 3 分钟。

        最近一直在加班做项目,好久没有更新文章了,这段时间也遇到了不少问题,今天要分享的主要是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. 微信退款参数配置(微信支付开发文档:)

img_90300cd7121b5cc4d7c2cd484a3e7101.png

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

img_0b2fd9fc0c739a106f846f63d589c776.png

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

三、总结

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

转载地址:http://qeuyo.baihongyu.com/

你可能感兴趣的文章
bootstrap弹窗居中处理
查看>>
DOM学习笔记二
查看>>
[Array]189. Rotate Array
查看>>
iuap
查看>>
inkscape
查看>>
关于C语言中单双引号的问题
查看>>
I00003 贝尔三角形
查看>>
HDU1200 POJ2039 ZOJ2208 UVALive3084 To and Fro【密码】
查看>>
CCF201403-1 相反数(100分)
查看>>
表单通过连接数据库数据进行验证
查看>>
redis hash操作 list列表操作
查看>>
利用Hibernate 框架,实现对数据库的增删改查
查看>>
mysql开启远程连接权限
查看>>
关于商米D1S,USB默认权限在关机后丢失的FAQ
查看>>
css3 text-transform变形动画
查看>>
scikit-learn中文api
查看>>
一个完整的大作业--广州市社会保障(市民)卡服务网
查看>>
迭代器和生成器
查看>>
STM32 内存管理实验
查看>>
python注释、脚本参数、字节码
查看>>