订单推送通知

订单支付或者退款成功后,如果有推送链接notifyUrl,则会请求该链接进行订单状态的推送。推送为POST请求。

双重保障检验订单支付成功

  1. 主动查询:商户服务器主动查询订单查询接口退款查询接口来获得订单状态。商户需持续查询直到订单状态变为失败或成功。
  2. 异步通知:当客人支付或退款成功,AlphaPay服务器会异步通知数据至商户服务器。

推送规则

支付订单:

  • 订单完成支付后会立即进行推送(尝试3次
  • 推送失败的订单会在支付后的24小时内不停进行推送(每次间隔30分钟
  • 推送成功或者支付完成时间超过24小时后则不再进行推送

退款单:

  • 退款成功后会立即进行推送(尝试1次
  • 退款推送只有一次,无论是否推送成功,都不会再次尝试

注意:商户系统应当能够处理收到的重复请求

推送请求

订单推送请求的结构如下,商家需对请求签名进行验证后再进行业务处理。

  • Http Method: POST(仅支持POST方式的推送请求)
  • Http Headers: 推送请求时会包含如下请求头:
    • Merchant-Code: 商户编码
    • Request-Time: 推送请求时间,格式为ISO 8601,精确到秒,例如:2019-05-28T12:12:12+08:00
    • Nonce: 随机字符串,长度为32
    • Signature: 签名信息,推送请求和其他的接口的响应消息一样会使用AlphaPay的私钥生成签名信息并添加到请求头中。商户在收到请求后需要用AlphaPay的公钥进行验签。签名内容的格式与商户请求AlphaPay的签名一样,详情请参考签名算法-处理响应
  • Http Body:推送请求的内容,为JSON格式;推送的内容与订单查询或退款单查询接口的响应内容是一致的(没有result字段),可以参考订单查询退款单查询接口。

推送响应

商户端应用在接收到推送内容后,需要发送接收成功的消息作为响应给到AlphaPay。

响应内容无需加签。响应内容为包含一个result字段的JSON body,result字段为一个JSON对象,包含resultCoderesultStatusresultMessage三个字段,其中resultCode必须为SUCCESSresultStatus必须为S,这两个字段标识了推送结果的成功。

如果resultCode没有填写为SUCCESS或者resultStatus没有填写为S,则AlphaPay会认为没有推送成功,并且在订单完成的24小时内会一直进行推送。

推送响应的具体示例如下:

推送响应的内容
{
 "result": {
    "resultCode":"SUCCESS",
    "resultStatus":"S",
    "resultMessage":"success"
   }
}