支付结果回调
订单支付成功/取消时,抖音开平交易系统会给向开发者的服务发起请求,将支付结果通知到开发者服务端。
使用限制
接入接口前请先查看接入前准备是否完成,否则会出现收不到支付回调的问题
订单支付成功/取消时,抖音开平交易系统会给向开发者的服务发起请求,将支付结果通知到开发者服务端。
接口说明
-
由于网络波动等原因,可能会产生重复的通知消息,接入方需要做好幂等,正确处理。
-
回调可能存在延时,开发者可以通过主动请求查询订单信息,确认支付结果。
-
在开发者服务端收到回调且处理成功后,需要按以下正常返回示例返回并且 HTTP 响应状态码设为 200,否则会认为通知失败进行重试。
-
支付结果回调地址的配置参考解决方案配置文档。
-
JS API 下单 有 payNotifyUrl 字段,如果在下单传了该字段,则会优先使用下单的 payNotifyUrl 回调地址,否则使用解决方案配置的回调地址。
-
注意: 无论是否使用 payNotifyUrl 都需要配置解决方案的支付回调地址,否则即使下单传入 payNotifyUrl 也不会生效,详见接入前准备
msg 字段
字段名 | 类型 | 是否必填 | 描述 | 示例值 |
---|---|---|---|---|
app_id | string | 是 | 小程序 app_id | ttcfdbb96650e33350 |
out_order_no | string | 是 | 开发者系统生成的订单号,与抖音开平交易单号 order_id 唯一关联,长度 <= 64byte | "motb52726742593307630520652" |
order_id | string | 是 | 抖音开平侧订单id,长度 <= 64byte | "ext_order_123" |
status | string | 是 | 支付结果状态,目前有两种状态: "SUCCESS" (支付成功 ) "CANCEL" (支付取消) | "SUCCESS" |
total_amount | int64 | 是 | 订单总金额,单位分支付金额为 = total_amount - discount_amount | 1000 |
discount_amount | int64 | 否 | 订单优惠金额,单位分,接入营销时请关注这个字段 | 0 |
pay_channel | int32 | 否 | 支付渠道枚举(支付成功时才有):1:微信2:支付宝10:抖音支付 | 1 |
channel_pay_id | string | 否 | 渠道支付单号,如微信的支付单号,可能为空,可通过查询订单信息重新获取,长度 <= 64byte | "2iu2082897r9hflquf" |
merchant_uid | string | 否 | 该笔交易卖家商户号,可能为空,可通过查询订单信息重新获取,实际存储的是int64类型的值 | "1231123" |
message | string | 否 | 该笔交易取消原因,如:"USER_CANCEL":用户取消"TIME_OUT":超时取消 | "USER_CANCEL" |
event_time | int64 | 是 | 用户支付成功/支付取消时间戳,单位为毫秒 | 1692775192000 |
msg 字段内容示例
//支付成功回调示例
{
"app_id": "tt07e371xxxxxxx",
"out_order_no": "motb52726742593307630520652",
"order_id": "ext_order_123",
"status": "SUCCESS",
"total_amount": 1,
"discount_amount": 0,
"pay_channel": 1,
"channel_pay_id": "2iu2082897r9hflquf",
"merchant_uid": "1231123",
"message": "",
"cp_extra": "data",
"event_time": 1692775192000
}
//支付取消回调示例
{
"app_id": "tt07e371xxxxxxx",
"out_order_no": "motb52726742593307630520652",
"order_id": "ext_order_123",
"status": "CANCEL",
"total_amount": 1,
"discount_amount": 0,
"merchant_uid": "1231123",
"message": "",
"cp_extra": "data",
"event_time": 1692775192000
}
curl --location --request POST 'http://dev-cn.your-api-server.com/api/v2/result_callback?timestamp=1345678901234&nonce=iuy987q4htafreqw' \
--header 'Content-Type: application/json' \
--data-raw '{
"version": "3.0", //本次固定为3.0, 通过版本信息识别,用不同的结构体去解析上述关键参数
"msg": "{\"app_id\":\"tt07e371xxxxxxx\",\"status\":\"SUCCESS\",\"order_id\":\"ot7057422956397414686\",\"cp_extra\":\"xxx\",\"item_id\":\"xxxxx\",\"seller_uid\":\"xxxxxx\",\"pay_channel\":1,\"message\":\"\",\"extra\":\"{\\\"cps_info\\\":\\\"poi\\\",\\\"share_amount\\\":\\\"299\\\"}\",\"event_time\":1643185090000,\"out_order_no\":\"ext_order_no_1643185079529\",\"total_amount\":1}",
"type": "payment"
}'
{
"err_no": 0,
"err_tips": "success"
}