django 开发微信退款功能

简介:         最近一直在加班做项目,好久没有更新文章了,这段时间也遇到了不少问题,今天要分享的主要是django开发微信退款功能。做过微信支付开发的人都知道,微信支付开发文档里边很多都是基于java、php、.net等的demo,很少有python,所以在开发的时候经常遇坑。

        最近一直在加班做项目,好久没有更新文章了,这段时间也遇到了不少问题,今天要分享的主要是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就可以了。思路大概就是这样,有什么问题欢迎留言,喜欢我的文章记得关注我哦!



目录
相关文章
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
682 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
742 1
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
173 45
|
28天前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
2月前
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
103 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
1月前
|
程序员 API 数据库
Django/Flask深度揭秘:揭秘那些让程序员爱不释手的神奇功能!
在Web开发领域,Django与Flask凭借其独特魅力和强大功能深受程序员喜爱。Django作为全能型框架,以其ORM、模板引擎和丰富的内置功能著称;Flask则以轻量级、灵活的路由系统和强大的扩展生态见长。两者各具特色,为开发者提供了高效、灵活的开发工具。
40 4
|
1月前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
59 2
|
2月前
|
存储 自然语言处理 小程序
微信小程序多语言切换神器:简繁体切换功能完全指南
随着全球化的发展,支持多种语言的应用程序愈发重要。本文介绍了如何在微信小程序中实现简体与繁体字体之间的切换功能,以满足不同地区用户的需求。通过创建utils文件夹并编写相应的转换函数,开发者可以方便地实现语言切换,从而提升用户体验。文章中还附带了示例代码和效果图,帮助读者更好地理解和应用这一功能。
112 0
微信小程序多语言切换神器:简繁体切换功能完全指南
|
2月前
|
存储 小程序 安全
微信的开发管理都需要配置什么?
【10月更文挑战第17天】微信的开发管理都需要配置什么?
36 0
|
2月前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
456 0