详细解读 PayPal 的授权与捕获支付机制
By
跨境经理产品经理 - Hannah in Design
on
Save this article
PayPal 授权与捕获支付机制详解
PayPal 的授权与捕获机制是一种两步支付流程,旨在提高安全性并为商家提供更大的灵活性。它将支付过程分为两个独立的步骤:授权和捕获。这与直接支付模式不同,直接支付模式下单后立即完成支付。
1. 授权 (Authorization)
授权步骤验证买家的支付信息,并预留资金。这并不意味着资金立即从买家的账户中扣除。授权类似于预订,确保资金可用,但商家尚未实际收到款项。
授权的好处:
- 风险降低:在正式捕获资金之前,商家可以验证订单信息,例如核实库存或发货地址。
- 资金管理:允许商家在处理订单后才实际收取款项,从而减少因订单取消或退款而造成的资金损失。
- 灵活处理:授权可以部分捕获或完全取消,给予商家更大的控制权。
授权流程:
- 客户下单:客户在商家网站上完成订单。
- 发送授权请求:商家通过 PayPal API 发送授权请求,包含订单金额、货币等信息。
- PayPal 验证:PayPal 验证买家的支付信息和账户余额。
- 授权成功/失败:PayPal 返回授权结果,包括授权 ID (Authorization ID)。授权成功则预留资金,授权失败则需要重新处理。
2. 捕获 (Capture)
捕获步骤是商家从买家账户中实际提取预留资金的步骤。只有在授权成功后才能进行捕获。
捕获的好处:
- 资金到账:商家最终收到付款。
- 订单确认:捕获代表订单完成。
捕获流程:
- 订单处理:商家完成订单处理,例如发货。
- 发送捕获请求:商家使用授权 ID 通过 PayPal API 发送捕获请求。
- PayPal 转账:PayPal 将预留资金转入商家账户。
- 捕获成功/失败:PayPal 返回捕获结果,如果成功,资金将进入商家账户。
3. 部分捕获和取消授权
在某些情况下,商家可能需要部分捕获或取消授权:
- 部分捕获:如果订单包含多个商品,并且部分商品已发货,商家可以仅对已发货的商品进行捕获。
- 取消授权:如果订单被取消,商家可以取消授权,释放预留的资金。
4. 实际操作步骤 (示例):
以下是一个简化的示例,展示如何使用 PayPal API 进行授权和捕获 (实际操作需要使用 PayPal 的 SDK 和 API 密钥):
注意: 以下代码仅为示意,并非可直接运行的代码。实际操作请参考 PayPal 官方文档。
4.1 授权请求 (伪代码):
java // ... 获取 access token 等步骤 ... // 构造授权请求 AuthorizationRequest request = new AuthorizationRequest(); request.setAmount(new Amount("USD", "10.00")); // 订单金额 // ... 其他参数 ... // 发送请求 AuthorizationResponse response = paypalClient.authorize(request); // 获取授权ID String authorizationId = response.getId();4.2 捕获请求 (伪代码):
java // ... 获取 access token 等步骤 ... // 构造捕获请求 CaptureRequest request = new CaptureRequest(); request.setAuthorizationId(authorizationId); // 使用之前的授权ID // 发送请求 CaptureResponse response = paypalClient.capture(request); // 检查捕获状态 if (response.getState().equals("COMPLETED")) { // 捕获成功 } else { // 捕获失败 }5. 常见问题
- 授权超时: 授权通常有有效期,超过有效期则需要重新授权。
- 捕获失败: 可能由于买家账户余额不足,或其他原因导致捕获失败。
- 退款: 授权和捕获后,如需退款,需要使用 PayPal 的退款 API。
请务必参考 PayPal 官方文档获取最新的 API 信息和最佳实践。 本文仅供参考,不构成任何商业建议。