Alipay, China's leading third-party online payment solutionAlipay, China's leading third-party online payment solution

接收通知

了解 APO 所支持的通知接口及如何集成 APO 的通知接口。

功能

各通知接口的功能及所支持的产品如下表所示:

通知接口

收银台

代扣

反扫支付

订单码支付

聚合码支付

     APO

说明

支付通知

✔️

✔️

✔️

✔️

✔️

✔️

在支付或卡授权支付处理达到成功或失败终态时,APO 使用该接口向您发送支付结果信息。result.resultStatus 字段表明支付或卡授权支付的结果:

  • notifyType PAYMENT_RESULT,表示支付成功;当 notifyType PAYMENT_PENDING,表示支付处理中。
  • 值为 F 表示支付失败。

请款通知

✔️

✔️

在请款处理达到成功或失败终态时,APO 使用该接口向您发送请款结果信息。result.resultStatus 字段表明请款的结果:

  • 值为 S 即请款成功
  • 值为 F 即请款失败

资产绑定通知

✔️

在资产绑定达到成功或失败终态时,APO 使用该接口向您发送资产绑定结果信息。result.resultStatus 字段表明资产绑定的结果:

  • 值为 S 即资产绑定成功
  • 值为 F 即资产绑定失败

表 1. 通知接口功能及支持产品

配置通知地址

您可以通过接口或开发者中心来配置通知地址。如果您同时使用了这两种方式进行配置,通知地址以 API 配置的为准。

通知接口

接口中配置

开发者中心配置

notifyPayment

支付 支付会话创建 接口中为paymentNotifyUrl 赋值

在 Antom 开发者中心 Integration Settings 标签页下,编辑 Notification URL。

image.png

图 1. 在 Antom 开发者中心配置通知地址

notifyCapture

支付 支付会话创建 接口中为paymentNotifyUrl 赋值

notifyVaultingResult

资产绑定会话创建 接口中为 vaultingNotificationUrl 赋值

-

表 2. 通知地址配置方法

处理通知结果

1. 验签

APO 发送的通知结果由 APO 加签,故建议您验证签名以确认通知由 APO 发送。您可以自行验签或使用 APO SDK 验签。

如您选择自行验签,请参考签名与验签。如您使用 APO SDK, 请在 SignatureTool.verify 方法中为对应参数赋值:

copy
boolean isSuccess = SignatureTool.verify(httpMethod, path, clientId, rspTimeStr, rspBody, signature, alipayPublicKey);

signature 的值来自通知头,如下例所示:

copy
"Content-Type": "application/json", "Request-Time": "2019-07-12T12:08:56+05:30", "client-id": "T_111222333", "Signature": "algorithm=RSA256,keyVersion=1,signature=jTOHqknjk%2fnDjEn8lfg%2beNODdoh2eHGJV%2blvrKaDwP782WxJ7ro49giqUu23MUM8sFVVNvhg32qHS3sd4O6uf5kAVLqztqNOPJFZcjw141EVi1vrs%2bIB4vU0%2fK%2f8z2GyWUByh2lHOWFsp%2b5QKCclXp%2bjacYqWYUur5IVbuebR1LoD5IiJ7u7J9qYriFxodkxmIAJYJyJs7mks2FWHh2YePLj3K%2f4B65idy7RBKqY1NN1XcvqnbQmlfCH8CIv75bg%2fr9sGmPE5a%2bYgL8N9Q41buGwMSq1IcNsbceMbyPhw5Z5HnJ7tPz12fvdSi0cEicPikDthQ2EQFmtpntXcAc%2fHA%3d%3d"

2. 返回收到确认信息

在您验签确认通知由 APO 发送后,您需要向 APO 返回一条收到确认信息以告知 APO 您收到了通知。收到确认信息无需数字签名。

您发送给 APO 的消息头如下例所示:

copy
"Content-Type": "application/json", "response-time": "2019-07-12T12:08:56+05:30", "client-id": "T_111222333",

您发送给 APO 的消息体如下例所示:

copy
{
  "result": {
    "resultCode": "SUCCESS",
    "resultStatus": "S",
    "resultMessage": "Success"
  }
}

如您未向 APO 发送收到确认信息或因网络原因 APO 未收到此信息,APO 会在 24 小时内自动重发通知,最多重发7次或直至收到正确响应。发送间隔时间为:0 秒、2 分钟、10 分钟、10 分钟、1 小时、2 小时、6 小时和 15 小时。

注意:对于重复收到的 APO 通知,记录下已处理的通知并做好幂等,防止同一请求多次处理。