README
字节跳动小程序收银台
目前字节跳动小程序支付包含 API 模式(7.2.7 版本前,仅支持支付宝) 和收银台模式(7.2.7 版本及以后,支持银行卡,支付宝,微信),小程序支付 Client SDK 用于抹平两版本接口差异,帮助开发者快速接入支付。
部署
npm 安装(推荐)
如果你使用类似 Taro 或 mpvue 等支持安装 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 的客户端支付结果仅作参考,最终结果以商户后端结果为准