首页 > 技术文章 > Python使用JsAPI发起微信支付 Demo

qsxbc 2020-09-13 22:43 原文

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】
在这里插入图片描述
公众号:
在这里插入图片描述

推荐阅读