用户发起商品购买监听

业务场景

监听用户发起商品购买的回调,用来处理不同渠道侧推送给用户礼包后,用户点击了购买之后,CP 侧需要在回调里面发起支付流程。

适用范围:微信 | 抖音

流程图

接口介绍

SDKManager.onBuyProduct(function listener)

调用示例

// 用户点击商品购买的监听
const onBuyProductCallback = (result) => {
  if (result.payType === 4) {
    const { amount, productId, productName } = result.data;
    // 服务端下单...to do somethings
    // 客户端下单
    SDKManager.pay({
      amount: amount, // 充值金额 单位:分
      productId: productId, // CP商品ID,在联运后台配置后下发回来
      productName: productName, //道具名称
      productCount: 1, // 按照之前约定那样写即可
      orderNo: 'XXXXXXXXXXX',
      sign: 'XXXXXXXXXXXXXXXX',
      extstr: JSON.stringify(result), // 回传结果
      roleInfo: {
        serverId: '600', //登录所属的服务器Id
        serverName: '600', //登录所属的服务器名称
        roleId: '100', //角色Id
        roleName: '100', //角色名称
        roleLevel: '100', //角色等级
      },
      extend: new Date().getTime().toString(),
      onSuccess: (res) => {
        //支付成功
      },
      onFailed: (errorInfo) => {
        // 支付失败
      },
    });
  }
};
SDKManager.canIUse('onBuyProduct') && SDKManager.onBuyProduct(onBuyProductCallback);

参数说明

入参

BuyProductInfo buyInfo

参数名称类型说明最低版本
payTypeint支付类型,回传给支付 API 即可
dataBuyProductDataInfo需要支付的商品信息

int payType

枚举值说明
1虚拟支付(默认)
2小额/直接支付【抖音】
3礼包支付【抖音】
4商业组件【微信】

BuyProductDataInfo data

参数名称类型说明最低版本
amountint价格,单位:分
productIdstringCP 商品 ID
productNamestring商品名
giftIdstring礼包 ID(礼包支付的时候返回)

错误码

FAQ

Q: 微信小游戏会在什么情况下触发该回调?

A: 目前仅商业组件的购买会触发,即payType=4