微信小程序支付插件开发注意事项

543 阅读2分钟

原文在CSDN也有,是同个账号

创建插件

[微信开放文档:开发插件篇], 已创建插件可直接跳到第二节

image.png

image.png

image.png

支付功能页(wx.requestPluginPayment)

注意步骤!!

1.插件的代码 2.使用者的小程序调起插件 3.配置线上测试

1、插件代码:plugin文件

关于参数说明:
在这里插入图片描述

以下是代码片段,handlePay是主要“调起”支付的函数,写在plugin插件目录的index.js文件内

handlePay(fee,paymentArgs,currencyType,version) {//参数是从小程序进来的
    return new Promise((resolve,reject) => {
      wx.requestPluginPayment({
          fee,
          paymentArgs,
          currencyType,
          version,
          success(r) { //wx.requestPluginPayment方法必须使用callback回调
            resolve(r)
          },
          fail(e) {
            reject(e)
          },
      })
    })
  }
  }

2、使用者小程序:在“插件中”是miniprogram文件中的代码

1、配置
配置
2、调用函数(使用插件的页面中调用,俺是goods.js)

//在文件顶部声明插件
const plugin = requirePlugin('tx-plugin')
wx.request({
      url: 下单接口地址,
      method:'POST',
      header: {
        'content-type': 'application/x-www-form-urlencoded',
        'token': token,
      },
      data:obj,//下单参数
      success: function(res) {
        let fee = 0.01 //下单价格,仅用于展示
		let paymentArgs = res.data.data //后端返回的下单参数
		let currencyType = 'CNY'
        let version = 'trial' //版本号
        //handlePay是在插件中定义的函数
        plugin.handlePay(fee,paymentArgs,currencyType,version).then(res=>{
          console.log(res)
        }).catch(err=>{
          console.log(err)
        })
      },
      fail: function (err) {
        console.log(err)
      }
    })

3、调起 配置功能页函数,注意文件的位置!! 前面有提到,miniprogram是模拟调用插件的小程序文件。这个配置功能页是需要在miniprogram的根目录下创建functional-pages文件夹,在此文件夹下创建request-payment.js文件。

该文件的目的是将微信支付的下单参数返回给wx.requestPluginPayment方法(仅个人用法)

exports.beforeRequestPayment = function (paymentArgs, callback) {
	console.log(paymentArgs)
 	// 自定义的参数,此处应为从插件传递过来的 paymentArgs
 	var customArgument = paymentArgs.customArgument;
  	console.log(paymentArgs)
  	var error = null;
	var requestPaymentArgs = { //该对象为下单所需参数,以后端接口返回的为准!!
		timeStamp: paymentArgs.timeStamp,
		nonceStr: paymentArgs.nonce,
		package: paymentArgs.prepay_id,
		signType: 'MD5',
   		paySign: paymentArgs.sign,
	};
	callback(error, requestPaymentArgs); //重点:返回requestPaymentArgs
	console.log(requestPaymentArgs)
}

注意

插件同appid的小程序必须在根目录下创建functional-pages文件(跟上述插件中的miniprogram的一样),上传代码并发布!

原文链接:blog.csdn.net/weixin_4721…