服务端开发指南
tip
服务通用规则请参考 请求规则和签算
主查服务
请求域名:
https://cloud-payment.tapapis.cn
接口地址 | Method | 描述 |
---|---|---|
/order/v1/info?client_id={{client_id}}&order_id={{order_id}} | GET | 查询订单信息 |
/order/v1/unconfirmed?client_id={{client_id}} | GET | 查询未核销的订单列表 |
/order/v1/verify?client_id={{client_id}} | POST | 核销订单 |
查询订单信息
服务 URL
https://{{domain}}/order/v1/info?client_id={{client_id}}&order_id={{order_id}}
请求方式
- GET
请求签算
- 详见 请求规则和签算
通过订单 ID 查询订单详细信息和支付状态
curl -X GET \
-H 'X-Tap-Sign: {{signature}}' \
-H 'X-Tap-Ts: {{unix timestamp}}' \
-H 'X-Tap-Nonce: {{random nonce}}' \
https://{{domain}}/order/v1/info?client_id={{client_id}}&order_id={{order_id}}
data.order
对象结构见 订单信息
{
"data": {
"order": {}
},
"success": true
}
查询未核销的订单列表
服务 URL
https://{{domain}}/order/v1/unconfirmed?client_id={{client_id}}
请求方式
- GET
请求签算
- 详见 请求规则和签算
查询当前未核销的订单列表,正常情况下在用户支付成功后,应通过 verify 接口核销订单并同时保证对用户发货成功。如果因异常原因没有完成核销,可以通过此接口查询,重新 verify 并完成发货。
curl -X GET \
-H 'X-Tap-Sign: {{signature}}' \
-H 'X-Tap-Ts: {{unix timestamp}}' \
-H 'X-Tap-Nonce: {{random nonce}}' \
https://{{domain}}/order/v1/unconfirmed?client_id={{client_id}}
data.list
数组内对象结构见 订单信息
{
"data": {
"list": [
{}
]
},
"success": true
}
核销订单
服务 URL
https://{{domain}}/order/v1/verify?client_id={{client_id}}
请求方式
- POST[application/json; charset=utf-8]
请求正文信息
参数名称 | 必填 | 格式 | 描述 |
---|---|---|---|
order_id | Y | string | 订单唯一 ID |
purchase_token | Y | string | 用于订单核销的 token |
请求签算
- 详见 请求规则和签算
当支付成功后,核销订单表示已经确认支付结果并已对买家完成发货,订单状态也会从 charge.succeeded
变为 charge.confirmed
curl -X POST \
-H 'X-Tap-Sign: {{signature}}' \
-H 'X-Tap-Ts: {{unix timestamp}}' \
-H 'X-Tap-Nonce: {{random nonce}}' \
-H 'Content-Type: application/json; charset=utf-8'
-d '{"order_id":"{{order_id}}","purchase_token":"{{purchase_token}}"}'
https://{{domain}}/order/v1/verify?client_id={{client_id}}
data.order
对象结构见 订单信息
{
"data": {
"order": {}
},
"success": true
}
Webhook 回调
tip
同样的通知可能会多次发送,商户系统必须正确处理重复通知。
推荐做法是:当商户系统收到通知时,首先进行签名验证,然后检查对应业务数据的状态,如未处理,则进行处理;如已处理,则直接返回成功。
在处理业务数据时建议采用数据锁进行并发控制,以避免可能出现的数据异常。
Webhook 说明
目前 Webhook 支持监听「充值成功」「退款成功」「退款失败」事件。对于「充值成功」建议采取 主动核销订单,根据订单状态完成发货。
- 需要依次进入 TapTap 开发者中心 > 你的游戏 > 游戏服务 > TapPayment > 商品与订单 > API 密钥,检查是否有已生效的密钥,没有则需要 添加新的密钥
- 需要依次进入 TapTap 开发者中心 > 你的游戏 > 游戏服务 > TapPayment > 商品与订单 > Webhooks 设置 > 添加,添加有效的 充值成功 URL。
Webhook 请求
服务 URL
- 由开发者提供,在 Webhooks 设置中添加
请求方式
- POST[application/json; charset=utf-8]
请求正文信息
参数名称 | 必填 | 格式 | 描述 |
---|---|---|---|
order | Y | object | 对象结构见 订单信息 |
event_type | Y | string | 事件枚举见 Webhook 的事件枚举 |
请求签算
- 详见 请求规则和签算
curl -X POST \
-H 'X-Tap-Sign: {{signature}}' \
-H 'X-Tap-Ts: {{unix timestamp}}' \
-H 'X-Tap-Nonce: {{random nonce}}' \
-H 'Content-Type: application/json; charset=utf-8'
-d '{"order":{},"event_type":"charge.succeeded"}'
{{your webhook url}}
Webhook 响应
{
"code": "SUCCESS",
"msg": ""
}
字段描述
字段 | 类型 | 是否必须 | 描述 |
---|---|---|---|
code | string | Y | 状态码,SUCCESS 为接收成功,FAIL 或其他均认为失败 |
msg | string | N | 当接收失败时需返回失败原因 |
请求规则和签算
请求 Headers
Header | 是否必须 | 描述 |
---|---|---|
X-Tap-Sign | Y | 接口签算,详见 签算 |
X-Tap-Ts | Y | 请求方当前时间 unix timestamp |
X-Tap-Nonce | Y | 随机数,需要大于等于 6 字节,小于等于 60 字节,每次请求需重新生成 |
请求 Request
保留参数
所有 HTTP METHOD 必传,需要作为查询参数的一部分
Key |
---|