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> ...
随机推荐
- 064 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 无参带返回值方法
064 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 无参带返回值方法 本文知识点:无参带返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...
- nessus 本地扫描(一)
第一次使用nessus ,so 适合小白看看 1.新建扫描.配置策略:起个名字,description是详细记录,类似于说明:targets是要访问的主机ip地址或者网段,必填项 选择好之后sav ...
- Linux中的硬链接和软连接
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...
- @FeignClient注解详解
Spring Cloud 是目前最火的微服务框架,Feign 作为基础组件之一,在 Spring Cloud 体系中发挥了重要的作用. 一.FeignClient注解 FeignClient注解被@T ...
- Git操作常用的命令都在这里了。
创建仓库 git init 在当前目录执行,会生成 .git目录文件,这个和SVN一致. 提交到仓库 git commit -m "first commit" -m:表示提交描述, ...
- C# 用IrisSkin4.dll美化你的WinForm
如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! --------------------------- ...
- Node.js安装及环境配置 for winer
Node.js安装及环境for Windows 一.安装环境 1.本机系统:Windows 10 Pro(64位) 2.Node.js:v6.9.2LTS(64位) 二.安装Node.js步骤 1.下 ...
- 多测师讲解selenium_alert弹框定位_高级讲师肖sir
from selenium import webdriverfrom time import sleepdrvier=webdriver.Chrome()url=r'F:\dcs\DCS课程安排\se ...
- SpringBoot常见注解
0.前言 这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使用 SpringBoot 来开发项目基本没 ...
- 第4天 | 12天搞定Python,基础语法(下)
为了方便你的学习,减轻负重,我特意将基础语法分成上下两部分.希望你喜欢这种方式,如果不喜欢,你可以跟我说,反正我是不会改的,哈哈~~. 如果上部分,你还没看的话,先去看<第4天 | 12天搞定P ...