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> ...
随机推荐
- Sass 教程
什么是Sass 什么是css预处理语言 css预处理语言可以理解为: 开发一种特殊的编程语言, 把css文件作为编译否的结果, 我们在这个编程语言三增加了很多程序的特性, 使开发变得的更加简单 当前流 ...
- Java知识系统回顾整理01基础05控制流程08综合练习
一.练习--黄金分割点 题目: 寻找某两个数相除,其结果 离黄金分割点 0.618最近 分母和分子不能同时为偶数 分母和分子 取值范围在[1,20] (即1到20) 要求效果: public clas ...
- PropertySheet外壳扩展AppWizard
下载source files - 39 Kb 下载Wizard - 17 Kb 本文旨在简化属性表外壳扩展的实现.它紧接我的第一篇文章 处理上下文菜单壳扩展和灵感 由Michael Dunn最优秀的系 ...
- Windows7 提示“无法访问 xxxx,您没有权限访问,请与网络管理员联系请求访问权限”的解决办法
Windows7 客户端访问提示"无法访问 xxxx,您没有权限访问,请与网络管理员联系请求访问权限"的解决办法
- git 上传文件到 gitee 码云远程仓库
一 , 想将码云仓库里面的代码,抓取下来 1.git remote add origin 地址 2. git remote -v 3. it pull origin master 二 , 将自己创建 ...
- JVM 第五篇:命令行 JVM 故障处理工具
本文内容过于硬核,建议有 Java 相关经验人士阅读. 1. 引言 虽然我们前面介绍了各种图形化 JVM 故障处理工具,但是很多情况下,我们在处理问题的时候并没有图形化的操作环境可以使用,这时候,就需 ...
- docker容器命令1
docker容器命令 新建并启动容器命令 docker run INAME(镜像名字) 语法:docker run [OPTIONS] INAME [COMMAND] 例子:docker run -i ...
- Cesium.Viewer
<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8" ...
- linux centos 02
1.PS1变量,命令提示符的修改 PS1="[\u@\h \W]\$" \u 代表 用户 @ 占位符 \h 主机名 \W 工作路径的最后一位 \t \w 工作路径 ...
- ORM查询相关的操作
必知必会13条 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "orm_practice.setti ...