直充
前言
在阅读下文之前,请先阅读基本功能概述,了解后端回调接口的基本流程与签名规则。
平台限制
仅 PC 页游支持直充,请确认接入的游戏是 PC 页游且需要接入直充支付。
完整支付流程
一、创建直充订单
对应流程图第 7、8 步,消息类型为 CREATE_CHARGE_ORDER
。
当第三方支付平台下单完成则会回调该消息(有且只会通知一次)。
提示
如果游戏方认为不需要处理该回调消息,可以按照下方的响应示例返回 "code": 0
的结果,该接口不能不响应或报错。
请求示例
{
"notify_type": "CREATE_CHARGE_ORDER",
"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,
"ext1": "",
"ext2": "cpOrderId=xxx&gameid=xxx&gameName=xxx&coopid=xxx",
"ext3": "",
"order_time": "2021-12-08 12:59:59"
}
}
请求参数说明
提示
用户游戏区服和角色信息在 ext2
字段中。
参数 | 类型 | 长度限制 | 示例 | 说明 |
---|---|---|---|---|
order_id | uint64 | 1407310309329157760 | 平台的订单号 | |
user_id | uint64 | 700098915 | 平台的用户 ID | |
product_id | string | 255 | 2321334 | 平台提供的 product_id |
pay_platform | string | 255 | gamebox | 支付平台 |
pay_type | string | 255 | W3 | 支付类型 |
price | int | 1000 | 商品价格人民币,单位“分”,源自 VERIFY_PRICE 通知响应的结果 | |
pay_price | int | 1000 | 已废弃,但仍需参与签名 | |
num | int | 1 | 商品数量,源自 VERIFY_PRICE 通知响应的结果 | |
ext1 | string | 255 | 额外信息 1 | |
ext2 | string | 1024 | 额外信息 2,调起支付时携带的额外信息 | |
ext3 | string | 2048 | 额外信息 3,标准 JSON 格式的字符串 | |
order_time | string | 20 | 下单时间,时间格式 YYYY-MM-DD HH:mm:ss ,默认为东八区 |
响应示例
{
"code": 0,
"message": "success",
"data": null
}
响应参数说明
参数 | 类型 | 长度限制 | 示例 | 说明 |
---|---|---|---|---|
无 |
二、直充支付成功回调
对应流程图第 11、12 步,消息类型为 CHARGE_PAY_CALLBACK
。
当用户直充支付完成之后,将会发起该回调消息通知,游戏 CP 方此时可以进行发货。
请求示例
{
"notify_type": "CHARGE_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"
}
}
请求参数说明
提示
用户游戏区服和角色信息在 ext2
字段中。
参数 | 类型 | 长度限制 | 示例 | 说明 |
---|---|---|---|---|
order_id | uint64 | 1407310309329157760 | 平台的订单号 | |
user_id | uint64 | 700098915 | 平台的用户 ID | |
product_id | string | 255 | 2321334 | 平台提供的 product_id |
pay_platform | string | 255 | gamebox | 支付平台 |
pay_type | string | 255 | W3 | 支付类型 |
price | int | 1000 | 商品价格 RMB,单位分,VERIFY_PRICE 通知响应的结果 | |
pay_price | int | 1000 | 已废弃,但仍需参与签名 | |
num | int | 1 | 商品数量,VERIFY_PRICE 通知响应的结果 | |
pay_status | string | PAY_SUCCESS | 支付状态 | |
pay_id | string | 30 | 支付号,只有支付成功才有 | |
ext1 | string | 255 | 额外信息 1 | |
ext2 | string | 1024 | 额外信息 2,调起支付时携带的额外信息 | |
ext3 | string | 2048 | 额外信息 3,标准 json 格式 | |
other | string | 1024 | 额外信息 | |
order_time | string | 20 | 下单时间,时间格式 YYYY-mm-dd HH:ii:ss,默认为东八区 | |
pay_time | string | 20 | 支付时间,时间格式 YYYY-mm-dd HH:ii:ss,默认为东八区 |
响应示例
{
"code": 0,
"message": "success",
"data": null
}
响应参数说明
无