小程序通过小程序云实现微信支付功能实例

 更新时间:2021年07月22日 16:25:35   作者:小康师兄  
本文主要介绍了小程序通过小程序云实现微信支付功能实例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、开通微信支付

 1.1 关联商户号

\微信公众号平台\功能\微信支付\商户号管理\关联商户号

在这里插入图片描述

1.2 添加商户号

\云开发平台\设置\其他设置\微信支付配置\添加商户号

在这里插入图片描述

1.3 管理员授权

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

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

二、云函数开发

2.1 新建云函数

在这里插入图片描述

在这里插入图片描述

2.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
}

2.3 云函数上传并部署

在这里插入图片描述

在这里插入图片描述

三、小程序调用

3.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)
      }
    })
  },

3.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)
      }
    })
  },

3.2 支付成功回调

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

到此这篇关于小程序通过小程序云实现微信支付功能实例的文章就介绍到这了,更多相关小程序 微信支付内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Js如何使用ffmpeg进行视频剪辑和画面截取等功能

    Js如何使用ffmpeg进行视频剪辑和画面截取等功能

    在日常处理视频文件时常常会用到视频片段的截取功能,FFmpeg支持该功能,下面这篇文章主要给大家介绍了关于Js如何使用ffmpeg进行视频剪辑和画面截取等功能的相关资料,需要的朋友可以参考下
    2024-04-04
  • js跨域请求数据的3种常用的方法

    js跨域请求数据的3种常用的方法

    这篇文章主要介绍了js跨域请求数据的3种常用的方法,需要的朋友可以参考下
    2015-12-12
  • 按钮JS复制文本框和表格的代码

    按钮JS复制文本框和表格的代码

    有时候我们需要复制一个框的内容或者整个表格,一般的操作很可能造成一些不方便,一是操作步骤较为复制,一是复制表格的时候容易复制不完整或者格式出错。
    2011-04-04
  • JavaScript实现英语单词题库

    JavaScript实现英语单词题库

    这篇文章主要为大家详细介绍了JavaScript实现英语单词题库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • JS使用setInterval计时器实现挑战10秒

    JS使用setInterval计时器实现挑战10秒

    这篇文章主要为大家详细介绍了JS使用setInterval计时器实现挑战10秒,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 微信小程序自定义支持图片的弹窗

    微信小程序自定义支持图片的弹窗

    这篇文章主要为大家详细介绍了微信小程序自定义支持图片的弹窗,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 一个JS函数搞定网页标题(title)闪动效果

    一个JS函数搞定网页标题(title)闪动效果

    这篇文章主要介绍了使用JS函数实现网页标题(title)闪动效果的代码,需要的朋友可以参考下
    2014-05-05
  • 捕获键盘事件(且兼容各浏览器)

    捕获键盘事件(且兼容各浏览器)

    本篇文章是对捕获键盘事件(且兼容各浏览器)的实现进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • 原生JS实现文件上传

    原生JS实现文件上传

    这篇文章主要为大家详细介绍了原生JS实现文件上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 微信小程序调用腾讯地图API文档JavaScript SDK和WebService API详细解读

    微信小程序调用腾讯地图API文档JavaScript SDK和WebService API详细解读

    本文介绍了如何使用腾讯位置服务,包括申请开发者密钥、获取小程序APPID、下载地图SDK、设置服务器域名白名单等步骤,详细说明了如何在微信小程序中集成腾讯位置服务,进行地图展示和周边搜索等功能的实现,同时提醒注意API的调用次数和权限限制,需要的朋友可以参考下
    2024-09-09

最新评论