微信小程序云开发微信支付功能的前提假设一切条件
2023-11-25 11:01:30 欢乐点

微信小程序云开发微信支付

使用云开发微信支付功能的前提

假定一切条件早已布置好,我们正是步入开发者工具操作

统一下单

此功能在小程序文档中有较为仔细的说明,甚至官方也贴上了代码,那我也不多说,先创建云函数,并起名为pay

// 云函数代码
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" : "吃键盘的侠客",//商品名称货商品描述
    "outTradeNo" : "1217752501201407033233368018",//订单号-唯一性
    "spbillCreateIp" : "127.0.0.1",//回调IP地址,如果没有就这样随意放
    "subMchId" : "1900009231",//微信支付商户号
    "totalFee" : 1,//支付金额 单位分
    "envId": "test-f0b102",//云开发环境
    "functionName": "pay_cb"//回调云函数--没有可以乱填
  })
  return res
}

接着为页面编撰一个按键我就一次写了三个按键:统一支付、订单查询、申请退票

小程序端代码

  /**
   * 页面的初始数据
   */
  data: {
    timeStamp: "",//存放支付单号
    tk:"" //存放退款单号
  },
 //支付
  paygo() {
    var timeStamp = "1999" + new Date().getTime()
    //这里使用时间戳精确到毫秒的方式保证单号的唯一性,前面的1999也是为了保证唯一性的确保 
    console.log(timeStamp)
    this.setData({
      timeStamp: timeStamp
    })
    wx.cloud.callFunction({
      name: 'pay',//函数名
      data: {
        orderid: timeStamp,//传递单号
      },
      success: res => {
        console.log("获取支付参数成功", res)
        const payment = res.result.payment
        //调起支付
        wx.requestPayment({
          ...payment,
          success(res) {
            console.log('支付成功', res)
          },
          fail(res) {
            console.error('支付失败', res)
          }
        
        })
       
      },
      fail: res => {
        console.log("获取支付参数失败", res)
      },
    })
   
  },

疗效图:

这就是一个坑,所以我们须要特殊加一个查询订单处理

微信订货系统软件_微信下单系统_微信订单系统

查询订单

先创建云函数,并起名为

代码十分少

// 云函数代码
const cloud = require('wx-server-sdk')
cloud.init({
  env: 'yuelnn-corporation-vu94n'
})
exports.main = async (event, context) => {
  const res = await cloud.cloudPay.queryOrder({
    "out_trade_no" :event.trade,//商户订单号
    "nonce_str" : "" +new Date().getTime(),//随机字符串,这里也是采用时间戳精确到毫秒,人家要我们传随机字符串,我们就这么给他一个吧
    "sub_mch_id" : "1562576291",//子商户号,也就是商户号啦,没区别的
  })
  return res
}

小程序端:

//订单查询
  queryOrder() {
    wx.cloud.callFunction({
      name: 'queryOrder',
      data: {
        trade: this.data.timeStamp//订单号,就是刚才支付的时候我们自己生成的订单号,注意联系上下文理解
      },
      success: res => {
        console.log("获取查询参数成功", res)
      },
      fail: res => {
        console.log("获取查询参数失败", res)
      },
    })
  },

疗效图:

如须要晓得更多数组所表示的意思请移步官方文档,我猜大家也用不到

申请退票

在贴代码前,我再指出一次,申请退票必须在控制嘉义的设置,全局变量里获得了退货API权限

如何做我在文中都有说到,over

假定你已然授权了,那我们开始吧

先创建云函数,并起名为

微信下单系统_微信订货系统软件_微信订单系统

这儿出现了一个新的数组,俺们不看文档了,直接听我的解释,就是跟支付的时侯一样生成一个惟一的单号(都是俺们自己生成的,我都是采用时间戳来保证惟一),这儿的就是退货单号,这个()退货单号对应你所申请退票时侯的一个金额,假定我的数值

“”:“”,//商户退货单号惟一的

“”:,//商户订单号,刚刚支付时侯的对应那笔单号

“”:“”+newDate().(),//随机字符串

“”:“”,//子商户号

“”:100,//订单金额

“”:50,//申请退票金额

从上数值可以发觉,我申请退票的金额可以大于所支付的总金额,也就彰显了分批退货的可行性

这么那次退货单号就代表了当退货的信息ID,可以通过查询订单查询到退货信息。额…可能我讲的也不乍地,那你们还是lookalook文档吧

贴代码:

// 云函数代码
//申请退款
const cloud = require('wx-server-sdk')
cloud.init({
  env: 'yuelnn-corporation-vu94n'
})
exports.main = async (event, context) => {
  const res = await cloud.cloudPay.refund({
    "out_refund_no" : event.refund,//商户退款单号
    "out_trade_no" : event.trade,//商户订单号
    "nonce_str" : ""+new Date().getTime(),//随机字符串
    "sub_mch_id" : "1562576291",//子商户号
    "total_fee" : 1,//订单金额
    "refund_fee":  1,//申请退款金额	
  })
  return res
}

小程序端:

//退款
  refund() {
    var tk = "T1999" + new Date().getTime()
    this.setData({
      tk:tk
    })
    console.log("退款单号",tk)
    wx.cloud.callFunction({
      name: 'refund',
      data: {
        refund: tk ,//商户退款单号
        trade: this.data.timeStamp,//商户订单号
      },
      success: res => {
        console.log("获取退款参数成功", res)
      },
      fail: res => {
        console.log("获取退款参数失败", res)
      },
    })
  },

疗效图:

马上退货到账的微信下单系统微信下单系统,十分快。

常见问题总结:没有填写正确商户号数组的和int弄错,会报参数格式错误退货API没授权也去搞云开发退货、长得没我好看不会还不加我微信的:

免责声明:部分文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快为您处理。

欢乐点

留言咨询

×