2025年3月24日 星期一 甲辰(龙)年 月廿三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 小程序

小程序云开发实现微信支付注意事项

时间:12-19来源:作者:点击数:42

比较容易出错的是两个地方:

1. 订单号必须唯一,不能重复,重复就会创建失败

2. 金额必须是整数(以分为单位),小数会导致创建失败

小程序云开发实现微信支付的代码分为两部分:

1. 小程序端代码

2. 云函数代码

小程序端的代码首先调用云函数代码创建一个支付项目,如果创建成功,云函数将返回这个支付项目的相关数据(payment),小程序端用这个数据(payment)来调用微信支付界面,用户开始支付,用户的操作结束后,小程序获得支付结果,成功支付或者未支付。

小程序端

  • async onTapPay(e){
  • let paid=false; let This=this;
  • let order = new Date().Idealand_ToFileName(); // 订单号,每个订单必须不一样,如果重复会导致订单创建失败
  • let totalFee = 1000; // 这里是以分为单位,必须为整数,如果是小时,会导致订单创建失败
  • let data = { order, totalFee };
  • let res=await wx.cloud.callFunction({ name: 'pay', data });
  • const { payment } = res.result;
  • if(!payment || !payment.package){
  • // 订单创建失败
  • } else {
  • // 订单创建成功,调用支付界面
  • wx.requestPayment({
  • ...payment,
  • success (res) { paid=true; /* 支付成功 */ },
  • fail (err) { /* 支付失败 */ },
  • });
  • }
  • },

云函数 pay

  • exports.main = async (event, context) => {
  • let {order, totalFee}=event;
  • let ps={
  • "outTradeNo" : order, // 支付项目编号,必须唯一,不可重复
  • totalFee, // 以分为单位,必须为整数,不可为小数
  • "subMchId" : "1652990403", // 普通商户号
  • "envId": "juyipintest-4gx5k7wu2ab0d08f", // 云环境Id
  • "body" : "居意品创意餐厅", // 这个没有用,随便填
  • "spbillCreateIp" : "127.0.0.1", // 这个没有用,随便填
  • "functionName": "payCallBack", // 这个没有用,随便填
  • };
  • const res = await cloud.cloudPay.unifiedOrder(ps); return res;
  • };
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门