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

接收通知

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

功能

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

通知接口

收银台

代扣

反扫支付

订单码支付

聚合码支付

说明

notifyAuthorization

✔️

授权成功或授权取消时,Alipay 使用该接口向您发送授权结果信息。authorizationNotifyType 字段表明授权通知的类型:

  • 在API集成场景下:
    • 值为 AUTHCODE_CREATED 即授权成功
    • 值为 TOKEN_CANCELED 即授权取消
  • 在SDK集成场景下:
    • 值为 TOKEN_CREATED 即授权成功
    • 值为 TOKEN_CANCELED 即授权取消

notifyPayment

✔️

✔️

✔️

✔️

✔️

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

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

notifyCapture

✔️

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

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

notifyDispute

✔️

✔️

Alipay 使用该接口向您发送拒付信息。disputeNotificationType字段表明拒付通知的类型:

  • 值为 DISPUTE_CREATED 即拒付已发起
  • 值为 DISPUTE_JUDGED 即拒付责任已判定

notifyRefund

✔️

✔️

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

  • 值为 SUCCESS 即退款成功
  • 值为 FAIL 即退款失败

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

配置通知地址

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

通知接口

接口中配置

开发者中心配置

notifyAuthorization

-

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

image

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

notifyPayment

pay 接口中为paymentNotifyUrl 赋值

notifyCapture

pay 接口中为paymentNotifyUrl 赋值

notifyDispute

-

notifyRefund

refund 接口中为refundNotifyUrl 赋值

表 2. 通知地址配置方法

处理通知结果

1. 验签

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

如您选择自行验签,请参考 加验签。如您使用 Alipay 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. 返回收到确认信息

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

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

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

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

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

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

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