当用户付款后,统一平台会向客户端系统发送异步通知,异步通知的地址客户端系统应在下单时传入,如果没有传入则不会进行通知,通知采用POST请求方式,数据采用JSON格式,客户端系统判断用户是否付款成功,应该仅以异步通知或主动查询的结果为准,异步通知时,必须要进行签名验证。
付款异步通知参数如下:
参数名 | 类型 | 是否必选 | 限制 | 描述 | 示例 |
---|---|---|---|---|---|
user_id | int | 是 | 系统分配 | 用户id:商家在平台注册时获得的用户ID | 4 |
order_number | string | 是 | 长度:string[6,32] 仅限大小写字母、数字、下划线 |
商户订单号:在商家系统中全局唯一 | 20210530_R060524 |
system_number | string | 是 | 目前暂定长度:24位数字 前12位表示时间,8位随机数,4位产品类别 |
在统一平台中的系统订单号,全局唯一 将来可能会升位,用户应预留32位储存 |
210602150849375331066319 |
description | string | 是 | 长度string[1,127] 仅限汉字、大小写字母、数字、下划线 不可使用特殊字符,如 /,=,& 等。 |
描述:商品或服务的描述 | 小米11手机 |
total | float | 是 | 可带小数点精确到分 取值范围为 0.01~100000000.00 |
订单总金额:单位元 | 18.6 |
amount | float | 是 | 可带小数点精确到分 取值范围为 0.01~100000000.00 |
订单实收金额:单位元,用户完成付款时和订单金额相同 | 18.6 |
timeout_express | int | 是 | Unix时间戳( 1970年1月1日 00:00:00 到当前时间的秒数) 与下单时间差值范围在1分钟到15天 |
交易关闭时间:时间戳,超过该时间将无法付款 |
1622341093 |
order_state | int | 是 |
一个数字 |
付款状态 |
1 |
order_time | int | 是 | Unix时间戳( 1970年1月1日 00:00:00 到当前时间的秒数) | 付款用户实际付款时间 | 1622341093 |
attach | string | 是 | 长度string[1,128]或空字符串 任意数据,推荐为json字符串 |
用户随订单传递的自定义附加数据:在查询API和支付通知中原样返回,可作为自定义参数使用 | 云客:user:drupal |
sign | string | 是 | 长度string[64] 哈希值 |
签名字符串:用于保证请求真实、不被篡改、防止重放攻击,签名验证失败时必须拒绝处理,通讯必须签名,点击查看签名算法 |
- |
提示:当签名验证失败时,必须放弃处理,避免冒用攻击
客户端系统收到异步通知后,简单返回“success”即可(不带引号),状态码200
当签名验证通过,客户端系统应更新本地订单状态,并做相应业务处理(业务处理也可在用户付款完成返回客户端系统后进行,或通过其他机制触发执行,如任务队列等)