SDK-支付
接入必要条件
- 后端接收支付成功的回调 URL
接入步骤
客户端调用 xgSDK.pay 接口
发起支付,支付成功给贵方服务器 push 回调
支付参数
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
userId | string | '' | Y | 用户ID |
orderId | string | "" | Y | 贵方生成的订单 ID |
payMoney | number | '' | Y | 充值金额(单位元) |
payDesc | number | '' | Y | 商品信息,100钻石 |
buyRate | number | '' | Y | 兑换比例 |
userName | string | '' | Y | 用户昵称,会显示在收银台 |
exValue | string | '' | N | 兼容的额外参数 (用于保存贵方需要保存的额外数据),后端通知的时候会带上 |
success | function | null | Y | 支付成功的回调函数,没有返回值 一般用来处理小游戏前端请求服务器判定是否充值已到账 |
fail | function | null | N | 支付成功的失败函数,有返回值 返回数据结构根据系统类型不一样,安卓为米大师原生的失败数据,ios为我方后台的失败数据 |
示例
//示例,1元购买100钻石
xgSDK.pay({
userId: "12312312",
orderId: +new Date(),
payMoney: 1,
buyRate: 100, // 后台设置的兑换比例
exvalue: "xxx",
payDesc: "100钻石",
userName: "我是测试",
success(res) {
console.log(res)
// 成功回调,客户端可在这里请求游戏服务端检查是否到账发货
},
fail(res) {
console.log(res)
// 失败回调
}
})
后端通知到账
为了尽量减少的丢单的情况(支付跳转后小游戏重启,微信重启等等),寻光支付已加入后端通知到账功能,主动给贵方服务器 push 订单信息。
此通知回调链接和微信小游戏是共用的,微信小游戏填过的话,同一appid不用再做接入
通知格式: https://[your payback URL]?platformOrderId=xxxxx&orderId=498812&userId=1a3ec64fbd4c360c9ba61cbab7827333&paymoney=100&value=1&deviceType=1&sign=AAAA
请求类型:POST
参数 | 说明 |
---|---|
platformOrderId | 平台订单号 |
orderId | cp方订单号 |
userId | 用户id |
paymoney | 支付金额 |
deviceType | 设备类型,0为小游戏安卓,1为小游戏iOS,2为安卓微端 |
exValue | 兼容的额外参数 (前端生成订单的时候填写的exValue内容); |
sign | 签名,见下方签名规则 |
sign 签名规则
- 签名的三个参数分别是:orderId(对方的订单ID),paymoney(支付金额,单位是分),deviceType(设备类型)
- 签名规则:STEP 1, 对key进行升序排序;STEP2, 对key=value的键值对用&连接起来,略过空值;STEP3, 在键值对的最后加上key=appId,STEP4, 进行MD5签名并且将所有字符转为大写
- 以上的签名规则,就是腾讯支付的签名规则
示例:
// 加密前,拼接好的字符串
deviceType=1&orderId=1&paymoney=100&key=wx41efa19737d03831
//加密后结果
A34BD35D45610AA1A65B3873B6185A8E
加密完成后替换回调URL中的sign字段