我在BlueSnap有一个账户,我可以让我的购物者使用PayPal购买。我在发送信用卡订单时使用支付API,并且我可以将授权和捕获分开,如下所示:
{
"amount": 100,
"vaultedShopperId": xxxx1240,
"recurringTransaction": "ECOMMERCE",
"softDescriptor": "MYSOFT",
"currency": "USD",
"cardTransactionType": "AUTH_ONLY"
}
稍后用此捕获:
{
"cardTransactionType": "CAPTURE",
"transactionId": xxxxx77363
}
但我不知道如何为PayPal交易做这件事。我需要延迟捕获的原因是因为我想卖掉预订的商品,我不想在PayPal中向购物者收费,直到我准备好发货。
我正在使用Payment API,我不确定如何将购买分为两个阶段/阶段。我查看了文档,但找不到简单的答案。有没有办法做到这一点?
答案 0 :(得分:3)
BlueSnap有几种与PayPal互动的方式。通过Payment API,他们有三个流程,每个流程用于特定的场景:
对于您正在描述的问题,听起来延迟捕获流是最合适的。
完整的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步中发送的更多资金 - 因此,在您创建待处理订单时,请考虑潜在的附加费!
希望它有所帮助:)