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

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

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

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

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

  1. 小程序端代码

  2. 云函数代码

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

小程序端

javascript 复制代码
  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

javascript 复制代码
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;
};
相关推荐
CRMEB系统商城13 小时前
家电零售的供应商协同与物流提效
java·开发语言·人工智能·小程序·1024程序员节
CRMEB系统商城13 小时前
Redis + 消息队列 + 连接池:CRMEB PRO 性能优化的三驾马车
大数据·数据库·人工智能·小程序·php·1024程序员节
CRMEB系统商城15 小时前
服装连锁的导购分销与企微私域
java·大数据·开发语言·人工智能·小程序·php·1024程序员节
随性而行3602 天前
企业微信 Webhook 接收不到消息?网络连通性、URL 签名验签与 API 返回错误码排查指南
java·网络·人工智能·后端·微信·企业微信
00后程序员张2 天前
无需 Mac 的 iOS App 上架工具,开心上架Appuploader 负责哪些环节
android·ios·小程序·https·uni-app·iphone·webview
2501_915909062 天前
Ipa Guard 防护上架,混淆、重签名和回归测试怎么做
android·ios·小程序·https·uni-app·iphone·webview
济南壹软网络科技有限公司3 天前
盲盒源码系统小程序V6MAX底层架构解析,PHP+Uniapp高性能商用底座发布
小程序·架构·uni-app
2501_915918413 天前
iOS 上架注意事项有哪些?Appuploader 的四个阶段自查清单
android·ios·小程序·https·uni-app·iphone·webview
Autumn_ing3 天前
AI原型设计工具怎么选?可编辑原型与可运行前端适合什么场景
前端·小程序·产品经理·代码·codex·墨刀ai客户端·ai原型
fengGer的bugs3 天前
微信小程序实战:本地存储的新生儿喂养记录(原生 + 四套主题 + 疫苗日程)
微信小程序·小程序