跳到主要内容

内购

前言

在阅读下文之前,请先阅读基本功能概述,了解后端回调接口的基本流程与签名规则。

完整支付流程

支付成功回调

对应流程图第 16、17 步,消息类型为 PAY_CALLBACK

在用户支付完成之后,平台会请求该回调接口,游戏方此时可以认为商品支付成功,开始商品发货。

失败重试机制

如果此接口响应失败或超时(超时时间为 1 分钟),则会重试调用接口,且不保证幂等性(即可能会重复发送相同的请求)。

游戏方需要自己保证接口的幂等性,防止重复发货。因为用户可能对一笔订单重复扫码支付,导致一笔订单发起多笔支付,所以建议用接口返回的 order_idpay_id 来保证接口幂等性。

请求示例

{
"notify_type": "PAY_CALLBACK",
"timestamp": 1624529209,
"version": "v2",
"sign_type": "MD5",
"sign": "20386d447256c1b3310d7274b74c0f25",
"body": {
"order_id": 1407310309329157760,
"user_id": 700098915,
"product_id": 2321334,
"pay_platform": "gamebox",
"pay_type": "W3",
"price": 1000,
"pay_price": 1000,
"num": 1,
"pay_status": "PAY_SUCCESS",
"pay_id": "123123123123",
"ext1": "",
"ext2": "cpOrderId=xxx&gameid=xxx&gameName=xxx&coopid=xxx",
"ext3": "",
"other": "",
"order_time": "2021-12-08 12:59:59",
"pay_time": "2021-12-08 13:01:59"
}
}

请求参数说明

参数类型长度限制示例说明
order_iduint641407310309329157760平台的订单号
user_iduint64700098915平台的用户 ID
product_idstring2552321334平台提供的 product_id
pay_platformstring255gamebox支付平台
pay_typestring255W3支付类型
priceint1000商品价格人民币,单位“分”, VERIFY_PRICE 通知响应的结果
pay_priceint1000已废弃,但仍需参与签名
numint1商品数量, VERIFY_PRICE 通知响应的结果
pay_statusstringPAY_SUCCESS支付状态
pay_idstring30支付号,只有支付成功才有
ext1string255额外信息 1
ext2string1024额外信息 2,调起支付时携带的额外信息
ext3string2048额外信息 3,标准 JSON 格式的字符串
otherstring1024额外信息
order_timestring20下单时间,时间格式 YYYY-MM-DD HH:mm:ss,默认为东八区
pay_timestring20支付时间,时间格式 YYYY-MM-DD HH:mm:ss,默认为东八区

响应示例

{
"code": 0,
"message": "success",
"data": null
}

响应参数说明