其实微信支付有很多种形式刷臉,扫码APP支付,小程序支付等这边只说明小程序支付的实现,不过原理上都大同小异
首先,需要注册微信公众号平台并且开通微信支付功能,随后将你的小程序关联一个微信商户:这一系列申请下来之后,你手中需要有微信小程序appid微信小程序秘钥,商户号以忣商户秘钥,这四个关键的支付配置变量
1 在自己的后台服务器上访问微信提供的接口,拿到预支付交易会话标识prepay_id、微信返回的随机字符串nonce_str这两个参数是要返回给自己的小程序的,小程序在调起微信支付接口时需要这两个参数
先构造后台接口,这里我们使用Python如何调用djangoo作為后台服务:
#拿到封装好的xml数据 #回复数据为xml,将其转为字典 # 7. 传给前端的签名后的参数剩下的就简单了在前端mpvue写支付请求逻辑,由前端请求後端的Python如何调用djangoo统一支付接口获取关键的五个变量,随后利用这五个变量请求微信官网支付接口,完成支付逻辑
需要注意的是请求後台接口时,openid和price是必须要传递的openid是微信小程序当前用户的唯一标识,而price是价格单位是分
最后,完成了支付没什么难的,有一些地方需要提醒:后台接口如果需要在本地调试的话只能用127.0.0.1这种ip的形式,微信不支持localhost,另外需要xmltodict这个三方库将微信统一支付接口返回的xml转成dict话說都什么年代了,微信接口居然还在使用xml
使用框架命令工具
Python如何调用djangoo-admin
创建项目目录骨架
进入项目目录以下三条命令皆可以開启web服务
第一条命令,默认web服务访问的端口是8000
第二条则指定是更改端口为8080通常是在端口冲突的情况下使用
第三条意味着是可以通过局域網其他终端访问本机的web服务,其0 是 0.0.0.0 广播
view
若匹配正则会调用一个视图函数,该视图函数默认的第一个参数是一个 HttpRequest
对象
path() argument: name
命名参数方便在其怹的地方引用,类似于其他同类框架中的命名路由
本作品采用转载必须注明作者和本文链接