小程序支付

说明
  • 目前 iOS 小程序(Android 小程序可以)暂时无法发起支付,原因是微信官方的政策原因,不是技术原因,可用时间需要等微信官方通知
  • 你可以自己用收银台接口 + 客服消息或者模板消息 实现小程序打开网页收款,如果想小程序跳转请看下面
  • 小程序代码 Demo 下载

  • 如果你开通的是「聚合A」支付通道,那么小程序可以直接拉起支付方法步骤
  • 如果你开通的是「聚合B」支付通道,那么小程序支付 可以跳转支付 也 可以直接拉起支付方法步骤

接口参数
名称 类型 必须 说明
aid string 账号aid
name string 商品名称
pay_type string jsapi
price string 如: 0.01
order_id string 你平台订单号,需要唯一
order_uid string 订单用户如: [email protected]
notify_url string 回调地址
more string 订单其他信息,回调时原样传回
sign string 将参数按
name + pay_type + price + order_id + notify_url + app secret
顺序拼接后MD5(纯 value 拼接,不要包含 + 号)

具体操作
  • 跳转 XorPay 收银台小程序 appid 为: wx455af826b1e7f2df 具体在 xorpay 后台查看
  • 小程序具体跳转代码:

      wx.navigateToMiniProgram({
          appId: 'wx455af826b1e7f2df',
          path: 'pages/index/index',
          extraData: {
              'aid': '1',  #aid
              'name': 'XorPay充值',
              'pay_type': 'jsapi',
              'price': '0.02',
              'order_id': 'm-5',
              'notify_url': 'https://abc.com/notify',
              'sign': md5.hexMD5('XorPay充值' + 'jsapi' + '0.02' + 'm-5' + 'https://abc.com/notify' + 'app secret'),
          },
          //envVersion: 'develop',
          fail(res) {
              wx.showToast({
                  title: res.errMsg,
                  icon: 'none',
              });
          },
          success(res) {
              wx.showToast({
                  title: 'ok',
                  icon: 'none',
              });
          },
      });
    
  • 支付成功或者取消,会跳回你的小程序,并携带参数:

    • 支付成功

      extraData: {
        status: 'success'
      }
      
    • 支付取消

      extraData: {
        status: 'cancel'
      }
      

小程序直接拉起支付
  • 先联系客服配置小程序 appid(小程序需要认证并且同一个主体才能绑定,也就是说只有企业小程序可以,个人小程序不行,因为个人小程序不能认证)
  • 直接调用 JSAPI 接口 获取 jsapi 支付参数(接口需要额外传递小程序 appid 参数,如 /api/pay/aid?appid=xxxxxxx&is_mini=true)
  • 在你小程序直接调用微信支付方法(无需跳转 xorpay 小程序)微信官方文档
  • 该方式可以自行决定是否支持 iOS 支付
    wx.requestPayment({
        timeStamp: '',
        nonceStr: '',
        package: '',
        signType: 'MD5',
        paySign: '',
        success (res) {
            //支付成功
        },
        fail (res) {
            //支付失败
        }
    })

results matching ""

    No results matching ""