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

本文详细介绍了如何在微信小程序中开发和调用插件,包括创建插件代码、处理支付请求参数、配置功能页以及在小程序中调用支付函数,确保插件与小程序的正确交互。
摘要由CSDN通过智能技术生成

创建插件

微信开放文档:开发插件篇
已创建插件可直接跳到第二节
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

支付功能页(wx.requestPluginPayment)

注意步骤!!

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

1、插件代码:plugin文件

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

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

handlePay(fee,paymentArgs,currencyType,version) { //参数是从小程序进来的
    console.log('下单事件,promise')
    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的一样),上传代码并发布!

插件成功调起,无法调起支付的解决方案:
1、确认一下宿主小程序的代码是否已发布
2、插件的支付商户号是否绑定(已绑定的最好在插件发布后重新绑定)

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值