支付

业务场景

游戏内购买商品、月卡等游戏资源的时候需要调用本支付接口。用户支付成功后,由 SDK 服务端通知 CP 服务端进行发货处理。

流程图

接口介绍

SDKManager.pay(OrderInfo orderInfo)

调用示例

var orderInfo = {
  amount: '1', // 充值金额 单位元
  productId: '100', //道具id
  productName: '测试道具', //道具名称
  productCount: 10, // 购买道具数量,如:100、1等等
  orderNo: 'XXXXXXXXXXX',
  sign: 'XXXXXXXXXXXXXXXX',
  roleInfo: {
    serverId: '600', //登录所属的服务器Id
    serverName: '600', //登录所属的服务器名称
    roleId: '100', //角色Id
    roleName: '100', //角色名称
    roleLevel: '100', //角色等级
  },
  extend: new Date().getTime().toString(),
  onSuccess: () => {
    //支付成功
  },
  onFailed: (errorInfo) => {
    // 支付失败
    // 游戏提示玩家支付失败,让玩家自行重试
  },
};
SDKManager.pay(orderInfo);

参数说明

入参:OrderInfo orderInfo

参数名称类型说明必传/可选
amountString价格,单位:元(小游戏中,受平台限制,只能支付规定的价格)必传
orderNoStringCP 订单号,与服务端接入文档-支付回调中的"orderNo"对应,100 字符内,不能为空必传
productIdStringCP 商品 Id必传
productNameString游戏道具名称,如元宝/月卡/钻石等必传
productCountlong商品数量(小游戏中按比例处理,例如:比例是 1:10 ,比如金额 1 元,数量就是 10(钻石或元宝))必传
roleInfoRoleInfo角色信息必传
signString支付验签参数,具体规则请查看服务端接入文档-下单签名必传
extendString自定义扩展字段(透传),与服务端接入文档-支付回调中的"extend"对应,100 字符内,不能为空必传
currencyString当前使用币种,如: USD可选
taskNumNumber小游戏使用的标识,默认传 0,如果需要使用,SDK 侧运营会强调说明可选
extstrString支付额外参数 json 串,如无特殊说明,可不传可选

错误码

暂无说明

FAQ

Q: 能不能根据支付完成回调判断用户已支付?

A: 不能,不是所有平台的支付流程都一致,例如跳转客服支付,离开小游戏后,不能判断用户是否真实支付了。

Q: 支付验签失败

A: 注意服务端验签规则,平台类型选择 H5,可自行使用在线验签工具检测一遍

pay_sign_tools