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】

公众号:

Python使用JsAPI发起微信支付 Demo的更多相关文章
- C#开发微信门户及应用(40)--使用微信JSAPI实现微信支付功能
在我前面的几篇博客,有介绍了微信支付.微信红包.企业付款等各种和支付相关的操作,不过上面都是基于微信普通API的封装,本篇随笔继续微信支付这一主题,继续介绍基于微信网页JSAPI的方式发起的微信支付功 ...
- Java 后端微信支付demo
Java 后端微信支付demo 一.导入微信SDK 二.在微信商户平台下载证书放在项目的resources目录下的cert文件夹下(cert文件夹需要自己建) 三.实现微信的WXPayConfig接口 ...
- Django1.11配合uni-app发起微信支付!
Django1.11配合uni-app发起微信支付! 经过三天的断断续续的奋战,我终于是干动了微信支付.为了以后不忘记,现在来一篇教程,来来来,开干!!! 一.准备阶段 1.准备阶段我们需要去微信官网 ...
- 微信公众号发起微信支付 c#
tenpay.dll: MD5Util.cs using System; using System.Collections.Generic; using System.Linq; using Syst ...
- 微信小程序之wx.requestPayment 发起微信支付
wx.requestPayment 发起微信支付 timeStamp 时间戳 nonceStr 随机字符串 package 统一下单接口返回的 prepay_id 参数值 signType 签名算法 ...
- 两种js方法发起微信支付:WeixinJSBridge,wx.chooseWXPay区别
原文链接:https://www.2cto.com/weixin/201507/412752.html 1.为什么会有两种JS方法可以发起微信支付? 当你登陆微信公众号之后,左边有两个菜单栏,一个是微 ...
- iOS微信支付demo运行报错解决如下
要接入微信支付的小伙伴,首先要下载一份官方demo(APP微信支付官方Demo下载),然后打开工程,准备大干一场. 1.编译报错 编译的时候居然直接报错了(orz) 错误提示: APP微信支付官方De ...
- 运行微信支付demo
首先要说说写这篇文章的初衷:集成支付宝支付运行demo都是可以正常运行的,但是我下载下来微信支付的demo,却发现一大堆报错,而且相关文章几乎没有,可能大家觉得没必要,也许你觉得很简单:但是技术大牛都 ...
- H5发起微信支付
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- RT Thread的SPI设备驱动框架的使用以及内部机制分析
注释:这是19年初的博客,写得很一般,理解不到位也不全面.19年末得空时又重新看了RTThread的SPI和GPIO,这次理解得比较深刻.有时间时再整理上传. -------------------- ...
- 1个LED的亮度自动控制
控制任务和要求 通过程序控制LED的亮度按照要求变化 电路设计 程序设计 1 int bright_number = 0; //此变量用来表示LED的亮度 2 int bright_gap = 5; ...
- java的string方法使用
1.将list转换为","隔开的字符串 //videoIdList值转换成 1,2,3 String videoIds = StringUtils.join(videoIdList ...
- 踩坑系列:MySql only_full_group_by配置,竟导致所有应用报错?
1. 踩坑经历 一个很平常的下午,大家都在埋头认真写bug呢,突然企业微信群里炸锅了,好多应用都出现大量的Error日志,而且都报同一个错误,就是下面这个: Caused by: com.mysql. ...
- golang执行exec命令
创建对象: cmd, err := exec.Command("echo", "show me") 执行命令: cmd.Run() //Run 阻塞进程, ...
- 通过MapReduce降低服务响应时间
在微服务中开发中,api网关扮演对外提供restful api的角色,而api的数据往往会依赖其他服务,复杂的api更是会依赖多个甚至数十个服务.虽然单个被依赖服务的耗时一般都比较低,但如果多个服务串 ...
- 真的有这么丝滑吗?近日国外一小哥深入研究了KMP算法……
近日被朋友问到了字符串匹配算法,让我想起了大二上学期在一次校级编程竞赛中我碰到同样的问题时,为自己写出了暴力匹配算法而沾沾自喜的经历. 现在想来,着实有点羞愧,于是埋头去学习了一下KMP算法,为了让自 ...
- MeteoInfoLab脚本示例:TRMM 2A12 HDF数据
TRMM 2A12 HDF数据是卫星观测的SWATH数据(轨道数据),比格点数据处理起来要麻烦一些.数据的经纬度保存在geolocation变量中,需要先将经纬度数据读出来(均为2维数组),然后读取云 ...
- C语言从1打印到100再打印到1该如何编写?我只服最后一种写法!
我觉得这是一个送分题,奈何人才太多了,给出了各种古怪的写法,如果是做项目的话,我比骄建议一些正常的写法,就是大家都能看得懂的,不要搞什么花里胡哨,不过你要是交流的话,既然是交流,我不觉得要多正规,即使 ...
- redhat系统服务器重启后提示An error occurred during the file system check.
问题描述 浪潮一台NF8480M3外观红灯报警,鉴于无法登陆带外,只能对服务器进行断电重启操作 问题现象 重启后进入开机过程并报错,报错如下内容及图片如下所示,正常来说进入此界面后直接输入root密码 ...