微信小程序开发笔记 支付篇②——微信小程序通过小程序云实现微信支付功能

一、前言

微信小程序开发笔记——导读

二、开通微信支付

2.1 关联商户号

\微信公众号平台\功能\微信支付\商户号管理\关联商户号
在这里插入图片描述

2.2 添加商户号

\云开发平台\设置\其他设置\微信支付配置\添加商户号
在这里插入图片描述

2.3 管理员授权

1.2那张图上,点击授权。管理员的微信就会跳出提示,点击确定授权即可。

否则使用的时候,会出现sub_mch_id与sub_appid不匹配的报错!

三、云函数开发

3.1 新建云函数

在这里插入图片描述

在这里插入图片描述

3.2 云函数代码

\pay\index.js

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

exports.main = async (event, context) => {    
const res = await cloud.cloudPay.unifiedOrder({
    "body" : event.body,
    "outTradeNo" : event.outTradeNo,
    "spbillCreateIp" : "127.0.0.1",
    "subMchId" : "0000000000",               //这里要注意:虽然key是子商户id,实际上就是普通商户id
    "totalFee" : parseInt(event.totalFee),   //第二个坑:注意必须是数字,如果不是数字,则会报错unifiedOrder:fail wx api error: -202
    "envId": "ooo-xxxxxxxxxxxxxxxx",                //这里是回调函数所属的的云环境id
    "functionName": "payCallBack",        //这个是回调函数名
    "nonceStr":event.nonceStr,            //第三个坑:官方文档中相关云函数代码没有nonceStr和tradeType,测试的时候会报nonceStr不存在的错,翻看文档才发现这个是必填项,直接粘过来以后还需要加上这两个参数
    "tradeType":"JSAPI"
  })
  return res
}

3.3 云函数上传并部署

在这里插入图片描述
在这里插入图片描述

四、小程序调用

4.1 统一下单

  • 微信下单后获得的数据,最好先保存到数据库,留底
  • 再去调起微信支付界面
//调用云函数,微信统一下单
  cloudPay(){
    var _this = this
    this.setData({
      body: "账单支付-xxxxx",
      outTradeNo: this.data.id+"-"+util.uuid(16),
      totalFee: this.data.totalCost*100 //支付单位:分
    })
    app.showLoading(true)
    wx.cloud.callFunction({
      name: "pay",
      data: {
        body: _this.data.body,
        outTradeNo: _this.data.outTradeNo,
        totalFee: _this.data.totalFee,
        nonceStr:util.uuid(32)//调用自己的uuid函数
      },
      success(res) {
        // errCode: 0
        // errMsg: "cloudPay.unifiedOrder:ok"
        // returnCode: "FAIL"
        // returnMsg: "total_fee is empty. "
        console.log("提交成功", res.result)
        if(res.result.returnCode!="SUCCESS"){
          app.showToast(res.result.returnMsg)
          return
        }
        _this.unifiedOrder(res.result)
        // _this.requestPayment(res.result)
      },
      fail(res) {
        console.log("提交失败", res)
      }
    })
  },

4.2 调起微信支付界面

  //官方标准的支付方法,调起支付界面
  requestPayment(payData) {
    var _this = this;
    const payment = payData.payment//这里注意,上一个函数的result中直接整合了这里要用的参数,直接展开即可使用
    wx.requestPayment({
      ...payment,   //...是展开变量的语法 
      success(res) {
        console.log("支付成功", res)
        _this.paySuccess()
      },
      fail(res) {
        console.log("支付失败", res)
      }
    })
  },

4.3 支付成功回调

  • 不太建议直接在requestPaymentsuccess回调函数中,执行支付成功的操作
  • 最好在另外建一个云函数payCallBack
  • 这个云函数payCallBack,调用我们自建服务器的接口,执行支付成功的操作
  • 这边涉及到如何在云函数中调用http接口,卖个关子,后续讲

觉得好,就一键三连呗(点赞+收藏+关注)

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
学习计划:1, 为便于学习,建议先申请一个属于自己的小程序号并开通开发服务,个人认证是不需要费用的; 2, 将视频课程通读一遍,视频中讲到的知识点,最好是能及时动手练习,检验学习效果; 3, 根据自己对所学内容的理解,尝试动手还原课程中的项目案例; 4, 遇到问题时再看对应的章节讲解,这样有效提升学习效果;课程目标:学会开发方式下微信支付的对接方法课程简介:1, 为什么要学习微信支付开发近几年微信小程序以其良好的用户体验在移动端用户中占据越来越多的市场份额,这一现象加剧了企业为在小程序端为用户开展服务的需求,这个需求量一直在攀升,做为前端开发人员如果不懂小程序开发,自己的竞争优势已经明显趋于弱势。另外很多小程序项目中,微信支付几乎是必备的功能。2, 课程特点虽然免费但质量不减,每一次公开课都将结合一些实际场景中的应用来展开,让大家学完后可以立即投入到实战中去使用,大家只要坚持跟着学习,通过点滴的积累学会微信小程序开发将不再是难事儿。3, 主体大纲第一章1.1 课程简介;1.2 效果演示;1.3 前置知识;1.4 功能技术分析;1.5 课程重点难点;1.6 课程安排;1.7 学习建议;第二章2.1 准备工作;2.2 生成订单;2.3 统一下单接口;2.4 调起支付;2.5 支付回调;第三章3.1 课程总结;3.2 要点总结;4, 配套福利(1)精讲微信开发微信支付的详细的流程;(2)老师在线解答;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小康师兄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值