百度支付

swan.BaaS.pay(OBJECT, bannedChannels)

参数说明

参数类型必填参数描述
OBJECTObjectY订单相关信息,具体参考下面 OBJECT 参数说明
bannedChannelsStringArrayN需要隐藏的支付方式

OBJECT 参数说明

参数类型必填参数描述
totalCostNumberY支付总额,单位:元
merchandiseDescriptionStringY百度支付凭证-商品详情的内容
merchandiseSchemaIDIntegerN商品数据表 ID,可用于定位用户购买的物品
merchandiseRecordIDStringN商品数据行 ID,可用于定位用户购买的物品
merchandiseSnapshotObjectN根据业务需求自定义的数据

举例:开发者有一个 Article 表, 里面有免费 / 付费的文章, 当用户对一篇付费文章进行支付时, 则可以将 Article 表的 ID 作为 merchandiseSchemaID, 文章记录的 ID 作为你 merchandiseRecordID 传入到 swan.BaaS.pay(object) 写进支付订单记录。当用户阅读此付费文章时, 则可以通过 merchandiseSchemaID, merchandiseRecordID 来查询用户是否付费。

bannedChannels 参数说明

channel说明
Alipay支付宝
BDWallet百度钱包
Wechat微信支付

支付成功返回参数说明

参数类型说明
transaction_noString百度支付流水号

示例代码

  1. // 支付示例代码
  2. let params = {
  3. totalCost: 0.1,
  4. merchandiseDescription: '深蓝色秋裤'
  5. }
  6. swan.BaaS.pay(params).then(res => {
  7. // success. 支付请求成功响应,可以在 res 中拿到 transaction_no 和支付结果信息
  8. }, err => {
  9. // 未完成用户授权或发生网络异常等
  10. console.log(err)
  11. })

支付成功返回示例

  1. {
  2. transaction_no: "MDUhtNmacdYBKokJbCXhvYuoJnHXzpeN",
  3. }

为了方便开发者清楚区分用户取消支付还是支付失败,我们为其增加了错误类型,你可以通过像以下操作,对支付状态进行判断:

  1. swan.BaaS.pay(params).then(res => {
  2. // success. 支付请求成功响应。
  3. }, err => {
  4. // HError 对象
  5. if (err.code === 608) {
  6. console.log(err.message)
  7. }
  8. })