订单推送通知
订单支付或者退款成功后,如果有推送链接notifyUrl
,则会请求该链接进行订单状态的推送。推送为POST
请求。
双重保障检验订单支付成功
推送规则
支付订单:
- 订单完成支付后会立即进行推送(尝试3次)
- 推送失败的订单会在支付后的24小时内不停进行推送(每次间隔30分钟)
- 推送成功或者支付完成时间超过24小时后则不再进行推送
退款单:
- 退款成功后会立即进行推送(尝试1次)
- 退款推送只有一次,无论是否推送成功,都不会再次尝试
注意:商户系统应当能够处理收到的重复请求
推送请求
订单推送请求的结构如下,商家需对请求签名进行验证后再进行业务处理。
Http Method
:POST
(仅支持POST方式的推送请求)Http Headers
: 推送请求时会包含如下请求头:Merchant-Code
: 商户编码Request-Time
: 推送请求时间,格式为ISO 8601,精确到秒,例如:2019-05-28T12:12:12+08:00Nonce
: 随机字符串,长度为32Signature
: 签名信息,推送请求和其他的接口的响应消息一样会使用AlphaPay的私钥生成签名信息并添加到请求头中。商户在收到请求后需要用AlphaPay的公钥进行验签。签名内容的格式与商户请求AlphaPay的签名一样,详情请参考签名算法-处理响应。
Http Body
:推送请求的内容,为JSON
格式;推送的内容与订单查询或退款单查询接口的响应内容是一致的(没有result
字段),可以参考订单查询和退款单查询接口。
推送响应
商户端应用在接收到推送内容后,需要发送接收成功的消息作为响应给到AlphaPay。
响应内容无需加签。响应内容为包含一个result
字段的JSON body,result
字段为一个JSON对象,包含resultCode
,resultStatus
,resultMessage
三个字段,其中resultCode
必须为SUCCESS
,resultStatus
必须为S
,这两个字段标识了推送结果的成功。
如果resultCode
没有填写为SUCCESS
或者resultStatus
没有填写为S
,则AlphaPay会认为没有推送成功,并且在订单完成的24小时内会一直进行推送。
推送响应的具体示例如下:
推送响应的内容
{ "result": { "resultCode":"SUCCESS", "resultStatus":"S", "resultMessage":"success" } }