Python_微信支付(云开发)
一、创建云开发小程序
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) } }) } })