Python_微信支付(云开发)
2024-10-20 06:19:17
一、创建云开发小程序
1.初始化云开发环境
//app.js
App({
onLaunch: function () {
wx.cloud.init({
//初始化云开发环境
env: 'wxypay' //微信云的环境ID
})
}
})
2.同步云函数
二、创建支付云函数
1.新建云函数pay
2.在新建云函数pay的文件中,安装第三方依赖tenpay,安装成功会在该文件中生成package.json文件
npm i tenpay
3.编写云函数pay(index.js文件中)
// 云开发实现支付
const cloud = require('wx-server-sdk')
cloud.init()
//1.引入支付的第三方一来
const tenpay = require('tenpay');
//2.支付配置
const config = {
//appid:'小程序的appid',
appid:'wxc49d41bf015a06da',
mchid:'你的微信商户号',
partnerKey:'微信支付安全密钥',
notify_url:'支付后回调地址',
spbill_create_ip:'127.0.0.1'
}; exports.main = async(event,context) => {
const wxContext = cloud.getWXContext()
let {
orderid,
money
} = event;
//3.初始化支付
const api = tenpay.init(config);
let result = await api.getPayParams({
out_trade_no:orderid,
body:'商品简单描述',
total_fee:money,//订单金额
opendi:wxContext.opendi//付款用户的openid
});
return result;
}
4.将云函数上传并部署
三、提交页面,实现支付
1.在pages中新建支付pay
2.在pay.js文件中实现该功能
// pages/pay/pay.js
Page({
//提交订单
formSubmit: function(e) {
let that = this;
let formData = e.detail.value
console.log('form发生了submit事件,携带数据为:', formData)
wx.cloud.callFunction({
name: "pay",
data: {
orderid: "" + formData.orderid,
money: formData.money
},
success(res) {
console.log("提交成功", res.result)
that.pay(res.result)
},
fail(res) {
console.log("提交失败", res)
}
})
}, //实现小程序支付
pay(payData) {
//官方标准的支付方法
wx.requestPayment({
timeStamp: payData.timeStamp,
nonceStr: payData.nonceStr,
package: payData.package, //统一下单接口返回的 prepay_id 格式如:prepay_id=***
signType: 'MD5',
paySign: payData.paySign, //签名
success(res) {
console.log("支付成功", res)
},
fail(res) {
console.log("支付失败", res)
},
complete(res) {
console.log("支付完成", res)
}
})
}
})
最新文章
- 如何在IDEA 中使用Git
- c#如何使输入数据类型限制,C#如何添加限制
- 爬网页?--Chrome帮你计算XPath
- Linux之zsh
- Python 基础篇:字符编码、函数
- mac book air 装win7
- POJ1873 - Balance(01背包)
- Combinations ——LeetCode
- [Locked] Alien Dictionary
- ie浏览器提交参数和其它浏览器的区别
- easyui datagrid shift 多选
- windows中操作文件和目录的函数
- Iconfont 矢量图标库的应用
- Suneast &; Daxia (规律)
- GitHub学习笔记:本地操作
- python习题实例(上)_update18/07/03
- 51nod1185 威佐夫游戏 V2 (模拟乘法)
- Java读取键盘输入
- L271 操纵太空中航天器的几种方法
- Android Interpolator(插值器)