这是一个Python语言通过fastapi框架搭建服务端,实现微信小程序端进行微信支付案例项目。
详细教程地址:https://blog.csdn.net/qq_47452807/article/details/145083251
pip install -r requirements.txt -i [镜像地址]
腾讯案例私钥(需要调整配置自己的私钥)
点击 launch.bat 执行启动服务器程序
uvicorn app:app --host 0.0.0.0 --port 5000
封装微信 wx.request 请求:./utils/request.js
class Request {
constructor(host, port) {
this.host = host;
this.port = port;
}
get(url, data) {
return this.request('GET', url, data)
}
post(url, data) {
return this.request('POST', url, data)
}
request(method, url, data) {
const URL = this.host + ":" + this.port + url;
return new Promise((resolve, reject) => {
wx.request({
url: URL,
data,
method,
success: res => {
if (res.statusCode == 200) {
resolve(res)
} else {
reject(res)
}
},
fail: res => {
reject({
message: res.errMsg,
url: URL,
method,
data,
statusCode: res.statusCode,
result: res.data
})
}
})
})
}
}
const request = new Request("http://127.0.0.1", 5000)
module.exports = request
统一管理接口:./utils/api.js
import request from './request.js'
class Http {
Login(data) {
return request.post('/login', data)
}
WechatPay(data) {
return request.post('/wechat/pay', data)
}
}
const api = new Http()
export default api
测试页面:./pages/index/index.js
import api from '../../utils/api.js'
Page({
WechatPay() {
api.WechatPay({
description: "付费会员",
amount_total: 100 // 100 分 = 1 元
}).then(res => {
if (res.data.code == 200) {
console.log(res.data)
let payment = res.data.data
wx.requestPayment({
"timeStamp": payment.timeStamp,
"nonceStr": payment.nonceStr,
"package": payment.package,
"signType": "RSA",
"paySign": payment.paySign,
"success": res => {
console.log(res)
},
"fail": err => {
console.log(err)
},
"complete": res => {
console.log(res)
}
})
}
})
},
data: {
},
onLoad(options) {
}
})
<view class="contain">
<view>微信支付测试</view>
<button bind:tap="WechatPay">支付 1 元</button>
</view>