代扣结果通知
代扣单扣款成功或超时后,系统会给向开发者的服务发起请求,将扣款结果通知到开发者服务端。
使用限制
接入接口前请先查看接入前准备是否完成 。
接口说明
- •由于网络波动等原因,可能会产生重复的通知消息,接入方需要做好幂等,正确处理。
- •回调可能存在延时,开发者可以通过主动请求查询订单信息,确认支付结果。
- •在开发者服务端收到回调且处理成功后,需要按以下正常返回示例返回并且 HTTP 响应状态码设为 200,否则会认为通知失败进行重试。
- •代扣结果通知回调地址的配置参考解决方案配置文档。
- ◦注意: 无论是否使用 notify_url 都需要配置解决方案的扣款结果通知回调地址,否则即使下单传入 notify_url 也不会生效。
基本信息
基本信息 | ||||
HTTP URL | 在解决方案配置-消息通知中指定的回调地址,配置方式参考解决方案配置文档 | |||
HTTP Method | POST |
请求头
参考 通用参数
请求参数
Body
参数名称 | 类型 | 是否必填 | 描述 | 示例值 |
msg | string | 是 | 回调相关信息的 json 字符串,详情参见msg字段 | 见请求示例 |
type | string | 是 | 回调类型:
| "sign_pay_callback" |
version | string | 是 | 固定值:"1.0"。回调版本,用于开发者识别回调参数的变更 | "1.0" |
msg 字段
字段名 | 类型 | 是否必填 | 描述 | 示例值 |
app_id | string | 是 | 小程序 app_id | "tt312312313123" |
status | string | 是 | 扣款结果状态,状态枚举:
| "SUCCESS" |
auth_order_id | string | 是 | 平台侧签约单的单号,长度<=64byte | "ad7123123123123" |
pay_order_id | string | 是 | 平台侧代扣单的单号,长度<=64byte | "ad712312662434" |
out_pay_order_no | string | 是 | 开发者侧代扣单的单号,长度<=64byte | "out_pay_order_no_1" |
total_amount | int64 | 是 | 扣款金额,单位[分] | 100 |
pay_channel | int32 | 否 | 支付渠道枚举(扣款成功时才有):
| 10 |
channel_pay_id | string | 否 | 渠道支付单 | "TPeqw123123213" |
merchant_uid | string | 否 | 该笔交易卖家商户号 | "713123123132" |
event_time | int64 | 是 | 用户支付成功/支付取消时间戳,单位为毫秒 | 1698128528000 |
user_bill_pay_id | string | 否 | 用户抖音交易单号(账单号),和用户抖音钱包-账单中所展示的交易单号相同 | "2001022411190100375919192312" |
请求示例
curl --location --request POST 'https://xxxxxxx.net/api/v2/result_callback?timestamp=1345678901234&nonce=iuy987q4htafreqw' \ --header 'Content-Type: application/json' \ --data-raw='{ "version": "1.0", //本次固定为1.0, 通过版本信息识别,用不同的结构体去解析上述关键参数 "msg": "{\"app_id\":\"tt312312313123\",\"status\":\"SUCCESS\",\"auth_order_id\":\"ad7123123123123\",\"pay_order_id\":\"ad712312662434\",\"out_pay_order_no\":\"out_pay_order_no_1\",\"total_amount\":100,\"pay_channel\":10,\"channel_pay_id\":\"TPeqw123123213\",\"merchant_uid\":\"713123123132\",\"event_time\":1698128528000}", "type": "auth_pay_callback" }'
msg 字段内容示例:
//扣款成功回调示例 { "app_id": "tt312312313123", "status": "SUCCESS", "auth_order_id": "ad7123123123123", "pay_order_id": "ad712312662434", "out_pay_order_no": "out_pay_order_no_1", "total_amount": 100, "pay_channel": 10, "channel_pay_id": "TPeqw123123213", "merchant_uid": "713123123132", "event_time": 1698128528000, "user_bill_pay_id": "2001022411190100375919192312" } //超时未支付 | 超时未扣款成功 { "app_id": "tt312312313123", "status": "TIME_OUT", "auth_order_id": "ad7123123123123", "pay_order_id": "ad712312662434", "out_pay_order_no": "out_pay_order_no_1", "total_amount": 100, "merchant_uid": "713123123132", "event_time": 1698128528000 } //扣款失败 { "app_id": "tt312312313123", "status": "FAIL", "auth_order_id": "ad7123123123123", "pay_order_id": "ad712312662434", "out_pay_order_no": "out_pay_order_no_1", "total_amount": 100, "merchant_uid": "713123123132", "event_time": 1698128528000, "user_bill_pay_id": "2001022411190100375919192312" }
响应参数
参数名称 | 类型 | 描述 | 示例值 |
err_no | int64 | 错误码 | 0 |
err_tips | string | 错误提示 | success |
响应示例
正常示例
//正常返回响应且http状态码为200 //注意: //正常返回时一定要保证err_no和err_tips为下面标准返回方式,不然都认为失败,将会重试 { "err_no": 0, "err_tips": "success" }
异常示例
//异常响应或http状态码为非200, //抖音服务端会不断重试 { "err_no": 1, //非0 "err_tips": "system error" //非success }
错误码
HTTP 状态码 | 错误码 | 描述 | 排查建议 |
开发者自定义:成功返回200 | 成功返回0 | SUCCESS | 响应成功,无需处理 |
开发者自定义:不成功返回200或其他状态码 | 不成功返回非0 | 开发者自定义 | 抖音服务端会不断重试,但开发者需要自己排查响应失败原因 |