Python使用JsAPI发起微信支付 Demo
Python使用JsAPI发起微信支付 Demo
这个是基于Django框架。
了解更多,可以关注公众号“轻松学编程”
1、公众号设置、微信商户号设置
这些都可以在官网查得到,
左边找到“开发”->“基本配置”在公众号配置域名、ip白名单,获取必须参数(AppID,AppSecret))等
商户号 需要在商户号配置域名,获取必须参数(商户号mchID)等。
登录https://pay.weixin.qq.com/core/home/login
商户平台,找到:
需要的主要信息有:
APPID = '你的公众号appid'
APPSECRET = '你的公众号appsecret'
GZH_TOKEN = '公众号token' # 如果公众号开启使用服务器来推送信息需要设置这个
# 商户id
MCH_ID = '你的商户id'
# 微信商户平台(pay.weixin.qq.com)-->账户设置 -->API安全 -->密钥设置,设置完成后把密钥复制到这里
API_KEY = '你的商户key'
还需要https域名、服务器ip,然后在wechatPayDemo\wx_pay_settings.py中设置好这些必需的参数。
2、在linux下安装部署项目
我使用的是ubuntu18.04,其他的命令类似。
具体操作可以参考我写的这篇博客
在wechatPayDemo\settings.py中把 数据库信息改为你的,并Linux下创建数据库
在这个项目中我也提供了uwsgi.ini,和一个nginx参考文件,wechatPayDemo_nginx
3、说下微信支付流程
这个在官网也讲得很详细。
用户从公众号、扫码进入商城,先调用
https://xxx/pay/get_wx_code/
接口从微信系统获取code,通过code和全局access_token来获取用户信息获取到用户信息后可以保存到数据库,然后返回商城页面给用户
用户选择商品后会点击支付按钮,这时会调用
https://xxx/pay/gzhwxpayparams/
获取调起微信支付接口的必要参数,比如签名等用户支付成功后,后端:微信会回调你设置的url(
https://xxx/pay/wxpayresult/
),把支付结果返回给你,你可以获取到用户信息,订单信息,然后进行支付结果逻辑处理。前端:支付成功或者失败,会跳转到https://xxx/pay/payresultpage/
,把支付结果展示给用户。
4、自定义公众号菜单
在公众号的基本配置中可以开启服务器配置,然后自定义回复用户发来的信息。
方式一:可以在公众号后台自定义菜单:
方式二:也可以通过代码来自定义公众号菜单,在wechatPayDemo\pay\wechat_utils.py中的函数define_menu_button定义好菜单后,可以在浏览器中输入https://xxx/define_menu/
来创建公众号菜单,创建成功,需要重新打开公众号才能看到效果。
需要demo的可以加我微信【1257309054】
公众号:
最新文章
- 打印IP 来源
- btrfs-snapper 实现Linux 文件系统快照回滚
- css中伪元素before或after中content的特殊用法attr
- 怎么学习AOPR使用方法
- mac使用指南:brew的安装
- (七)学习MVC之CodeFirst迁移更新数据库
- Oracle DB优化
- Mac系统下安装PIL
- QML中多样化的ListModel(MultiDelegate)
- switch case语句里面不能定义对象,有语法错误,除非加一个花括号
- Vue学习之路8-v-on指令学习简单事件绑定之属性
- Python爬虫【四】Scrapy+Cookies池抓取新浪微博
- curd——5
- ubuntu增加工作分区命令
- 编译开源C或者C++项目最好像执行如下命令,否则可能会有这种奇葩问题
- 【面试虐菜】—— JAVA面试题(2)
- redash docker 运行
- elasticdump
- BZOJ3261:最大异或和——题解
- Java Mail(一):telnet实现发送收取邮件
热门文章
- 【CF1425A】 Arena of Greed题解
- Python练习题 042:Project Euler 014:最长的考拉兹序列
- js简单数据类型和复杂数据类型
- C++ 异常处理 catch(...)介绍
- IntelliJ IDEA 调试 Java 8 Stream,实在太香了!
- CyclicBarrier原来是这样的
- mysql DISTINCT选取多个字段,获取distinct后的行信息
- 经验分享:Windows10值得推荐的软件,总有一款是你的菜
- go 参数传递的是值还是引用 (转)
- centos8平台redis5的主从同步搭建及sentinel哨兵配置