请款
默认情况下 APO 会为您自动完成请款。如果您在调用 支付 或 支付会话创建 接口发起授权时指定 paymentFactor.captureMode 字段值为 MANUAL
,此时需要您主动调用 请款 接口来完成请款。
- 自动请款:买家授权完成后 APO 会自动立即发起请款。请款成功后,APO 会向您发送请款结果通知。请款模式在如下情况下均为自动请款:
- 手动请款:买家授权完成后,您需要自己通过 请款 接口发起请款请求。需注意的是,请款的总金额需等于买家授权的金额。
【注意】卡支付场景下,建议您以请款成功作为发货依据。
手动发起请款
调用 请款 接口(POST/v1/payments/capture)时注意以下关键参数:
字段名 | 注意点 |
captureRequestId | 在商户侧唯一的请款ID |
paymentId | 授权返回的蚂蚁侧订单ID |
captureAmount | 请款金额,应等于授权的金额 |
表 1. 请款接口请求关键参数
获取请款结果
在 请款 请求的响应中, resultStatus 参数的值为请款结果:
S
:请款成功。F
:请款失败。U
,需通过接收异步通知(notifyCapture)或者发起主动查询获取请款结果。
您可以根据下图的逻辑对请款响应进行处理:
图 1. 请款响应中 resultStatus 的参数值含义
异步通知
通过接收 APO 发送给您的 请款通知 接口 可以获取请款结果。当请款到达终态后(即请款成功或失败时),APO 会利用 请款通知 向该地址发送异步通知;未达终态,则不会发送异步通知。收到异步通知后,请按接口响应要求进行回应,否则 APO 会重发异步通知。
异步通知关键字段:
字段名 | 注意点 |
notifyType | 值为 CAPTURE_RESULT |
paymentId | 授权支付阶段返回的 APO 侧订单 ID |
result | 请款结果 |
acquirerInfo | 处理该笔交易的收单机构的相关信息,包含机构名、机构侧的交易单号等。 |
表 2. 异步通知返回的关键字段说明
配置异步通知接收地址:
为收到 请款通知 ,您需要提前通过以下两种方式之一配置异步通知的接收地址:
- 通过 支付 接口中的参数 paymentNotifyUrl 设定异步通知地址。
- 在开发者中心 Integration Settings 标签页下,编辑 Notification URL进行配置。
主动查询
请款 请求的响应及异步通知均有无法触达或延迟的可能性;建议您在服务端通过 支付结果查询 接口主动查询请款状态,该接口响应中的 transactions 字段的值为请款状态:
字段名 | 注意点 |
transactions.transationType | 值为 |
transactions.transactionResult | 请款结果 |
表 3. 主动查询响应中 transaction 字段关键信息说明
以下示例展示了 支付结果查询 接口的响应中,transactions 字段在不同情况下的返回值:
{
"transactions": [
{
"transactionType": "CAPTURE",
"transactionStatus": "SUCCESS",
"transactionRequestId": "test_test_test_XXXX",
"transactionAmount": {
"currency": "BRL",
"value": "110"
},
"transactionId": "2022XXXXXXXX",
"transactionResult": {
"resultStatus": "S",
"resultCode": "SUCCESS",
"resultMessage": "success"
}
}
]
}