BlueSnap 有几种与 PayPal 交互的方式。通过支付 API,他们有三个流程,每个流程用于特定场景:
- 标准流程用于基本的 PayPal 购买。
- 分步流程是您首先将购物者发送到 PayPal 并在当天晚些时候授权付款和捕获。
- 延迟捕获是您将购物者发送到 PayPal,然后在 PayPal 中创建待处理订单 - 您可以在几个月后捕获资金。
对于您描述的问题,听起来延迟捕获流程是最合适的。
完整的 API 在这里:https://developers.bluesnap.com/v8976-JSON/docs/update-paypal-transaction和https://developers.bluesnap.com/v8976-JSON/docs/create-paypal-transaction .
您可以通过发送创建订单请求(通过 POST)开始:
{
"merchantTransactionId": "testtransaction1",
"softDescriptor": "ABC COMPANY",
"amount": "100.00",
"currency": "USD",
"payer-info": {
"firstName": "John",
"lastName": "Doe"
},
"paypalTransaction": {
"transactionType": "SET_ORDER",
"returnUrl": "http://www.returnURL.com",
"cancelUrl": "http://www.cancelURL.com",
"maxAmount": "120.00"
}
}
发送此信息后,响应将包括一个 PayPal 重定向 URL 和 BlueSnap 订单 ID(稍后保存)。把你的购物者送到那里。
在购物者从 PayPal 返回后,您确定要设置挂单(以及多少)发送此请求(通过 PUT):
{
"amount": "105.00",
"currency": "USD",
"paypalTransaction": {
"orderId": "4006145",
"transactionType": "DO_ORDER"
}
}
此请求中的订单 ID 是在第一步中提供的。现在您可以等到您的产品到达并准备好发货。发货后(可能是第 2 步之后的几周),您可以发送捕获请求以获取资金(通过 PUT):
{
"amount": "104.00",
"currency": "USD",
"paypalTransaction": {
"orderId": "4006145",
"transactionType": "CAPTURE"
}
}
注意:您无法捕获比您在第 2 步中发送的更多的钱 - 所以在您创建挂单时要考虑潜在的附加费!
希望它有所帮助:)