网上找了很多教程,但是很乱很杂,并且教程资源很少且说的详细。这里就记录一下分享给大家
共分为以下几个步骤:
目录
一、开始前准备信息
二、使用前端code获取用户的openid
三、对接小程序v3接口下单
四、小程序支付的回调
五、安装并启动uwsgi
六、安装并启动nginx
七、配置nginx的nginx.conf文件,让部署的项目以https访问
八、后端代码:
九、常见问题及小技巧
代码将在最后一起贴出,先开始流程步骤,弄明白流程,代码读起来自然简单
下面一步步的开始:
一、开始前准备信息
-
需要在注册小程序和在微信支付平台开始微信支付,并将在小程序后台和商户关联绑定。
-
接入前准备,直接参考微信支付官方文档:接入前准备
3. 操作完成之后获取到appid,appsecret,pay_key,serial_num
appid:小程序里获取的appid
appsecret:小程序里获取的appsecret
pay_key:API密钥。需要登录微信商户平台,进入【账户中心 > API安全 】目录,设置APIV3密钥。这个密钥确保32位,自定义设置
serial_num:API证书序列号。登录微信商户平台,进入【账户中心 > API安全 】目录,申请API证书,完成申请后会有API证书序列号,完成微信支付后台配置证书后并下载该证书文件,有一个apiclient_key.pem密钥文件,之后对接支付会用到。
二、使用前端code获取用户的openid
参考官方文档: 小程序登录流程
-
前端使用wx.login()获取临时登录凭证code,传给后端,后端接收code并请求auth.code2Session接口获取openid
三、对接小程序v3接口下单
参考官方文档: 开发指引、v3接口JSAPI下单
-
调用JSAPI下单接口,传递接口必要参数,获取prepay_id,并再次加密验证签名,将timeStamp,nonceStr,package,signType,paySign参数交由前端并由前端拉起支付页面。
四、小程序支付的回调
-
支付完成之后,微信支付会自动调用在下单配置的回调地址(这个地址必须是https的),解密并验证应答签名中的序列号是否和平台证书序列号一致,一致时就可以做项目相关的操作,比如修改订单支付状态
五、安装并启动uwsgi
-
直接在服务器上使用pip3 install -i https://pypi.douban.com/simple uwsgi 快速安装uwsgi,并将django的项目代码上传至服务器,创建一个uwsgi.ini文件,添加以下内容:
socket=0.0.0.0:8000 # 使用https方式,这里地址必须与nginx配置里的uwsgi_pass一致 chdir = /home/foobar/myproject/ # django项目的根目录路径 wsgi-file = myproject/wsgi.py # django项目下的wsgi.py文件,也可以写成绝对路径 processes = 4 # 进程数 threads = 2 # 线程数 pidfile=uwsgi.pid daemonize=uwsgi.log master=True
-
运行和停止uwsgi
在同uwsgi.ini文件的路径下运行uwsgi --ini uwsgi.ini 运行后会在uwsgi.ini生成uwsgi.pid文件,使用uwsgi --stop uwsgi.pid可停止运行。如在停止时报进程号的错误,可使用ps -ef | grep uwsgi查看uwsgi运行的进程号,复制并替换uwsgi.pid里的进程号后重新运行停止命令即可
六、安装并启动nginx
1,请到nginx官方下载nginx安装包(tar.gz格式),并上传至服务器
使用以下命令解压安装:
sudo tar -xvf nginx-1.13.7.tar.gz
cd nginx-1.13.7
sudo ./configure
sudo make
sudo make install文章来源:https://www.toymoban.com/news/detail-526714.html
默认安装到/usr/local/nginx下,需要配置nginx.conf文件(文章来源地址https://www.toymoban.com/news/detail-526714.html
到了这里,关于Python对接微信小程序V3接口进行支付,并使用uwsgi+nginx+django进行https部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!