一、创建云开发小程序

  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)
}
})
}
})

最新文章

  1. 如何在IDEA 中使用Git
  2. c#如何使输入数据类型限制,C#如何添加限制
  3. 爬网页?--Chrome帮你计算XPath
  4. Linux之zsh
  5. Python 基础篇:字符编码、函数
  6. mac book air 装win7
  7. POJ1873 - Balance(01背包)
  8. Combinations ——LeetCode
  9. [Locked] Alien Dictionary
  10. ie浏览器提交参数和其它浏览器的区别
  11. easyui datagrid shift 多选
  12. windows中操作文件和目录的函数
  13. Iconfont 矢量图标库的应用
  14. Suneast & Daxia (规律)
  15. GitHub学习笔记:本地操作
  16. python习题实例(上)_update18/07/03
  17. 51nod1185 威佐夫游戏 V2 (模拟乘法)
  18. Java读取键盘输入
  19. L271 操纵太空中航天器的几种方法
  20. Android Interpolator(插值器)

热门文章

  1. YYDS: Webpack Plugin开发
  2. Java异常处理场景中不同位置的返回值详细解析
  3. linux Jumpserver跳板机 /堡垒机详细部署
  4. TCP为什么要三次握手与四次分手?
  5. no-referrer-when-downgrade
  6. DevOps运动的缘起 将DevOps想象为一种编程语言里面的一个接口,而SRE类实现了这个接口
  7. (004)每日SQL学习:物化视图之二
  8. 为什么要使用 do while(0)?
  9. memory ordering 内存排序
  10. 洛谷 P1401 城市