@byted-mp/pay

目前字节跳动小程序支付包含 API 模式(7.2.7 版本前,仅支持支付宝) 和收银台模式(7.2.7 版本及以后,支持银行卡,支付宝,微信),小程序支付 Client SDK 用于抹平两版本接口差异,帮助开发者快速接入支付。

Usage no npm install needed!

<script type="module">
  import bytedMpPay from 'https://cdn.skypack.dev/@byted-mp/pay';
</script>

README

字节跳动小程序收银台

目前字节跳动小程序支付包含 API 模式(7.2.7 版本前,仅支持支付宝) 和收银台模式(7.2.7 版本及以后,支持银行卡,支付宝,微信),小程序支付 Client SDK 用于抹平两版本接口差异,帮助开发者快速接入支付。

部署

npm 安装(推荐)

如果你使用类似 Tarompvue 等支持安装 npm 的小程序框架,你可以直接通过下面的方式安装

npm i @byted-mp/pay -S

原生安装

你也可以直接下载 mp-pay.js 然后引入你的项目中

下单

在使用前,请先在商户后端使用 Server SDK 预下单,预下单完成后会获得如下支付信息:

{
  '1.0': '...',
  '2.0': '...'
}

然后使用 Pay 即可发起支付下单流程

import Pay from "@byted-mp/pay";

Pay({
  "1.0": "...",
  "2.0": "..."
})
  .then(res => {
    console.log("ok", res);
  })
  .catch(err => {
    console.log("fail", err);
  });

查询微信支付结果

由于开发者不能将微信和支付宝的密钥交付给字节跳动,无法代为发起交易,所以从小程序发起支付跳转微信之后,微信支付订单可能处于支付成功,取消等状态;此时用户回到小程序后我们提供了一个接口查询商户侧微信支付状态信息:

Pay(
    {
      '1.0': '...',
      '2.0': '...'
    },
    ({ out_order_no }) => {
      return new Promise((resolve, reject) => {
        // 开发者根据 out_order_no 查询微信支付状态,获取微信支付状态
        resolve{ code: merchantWechatPayStatusCode };
      })
    }
  )

resolve 的参数为一个 Object,其中 code 是一个 number:

  • 0:支付成功
  • 1:支付超时
  • 2:支付失败
  • 3:支付关闭
  • 9:订单状态未知

支付结果

回调类型 errMsg data 描述
then requestPayment:ok 调用支付成功
catch requestPayment:fail cancel 用户取消支付
catch requestPayment:fail 1:支付超时 2:支付失败 3:支付关闭 调用支付失败

注意@byted-mp/pay 的客户端支付结果仅作参考,最终结果以商户后端结果为准