3

我有一个 BlueSnap 帐户,我可以让我的购物者使用 PayPal 进行购买。我在发送信用卡订单时使用支付 API,这样我可以像这样分离授权和捕获:

{
    "amount": 100,
    "vaultedShopperId": xxxx1240,
    "recurringTransaction": "ECOMMERCE",
    "softDescriptor": "MYSOFT",
    "currency": "USD",
    "cardTransactionType": "AUTH_ONLY"
}

稍后用这个捕获:

{
    "cardTransactionType": "CAPTURE",
    "transactionId": xxxxx77363
}

但我不知道如何为 PayPal 交易执行此操作。我需要延迟捕获的原因是因为我想出售预购商品,并且我不想在产品准备好发货之前在 PayPal 中向购物者收费。

我正在使用支付 API,但我不确定如何将购买分为两个阶段/阶段。我查看了文档,但找不到简单的答案。有没有办法做到这一点?

4

1 回答 1

3

BlueSnap 有几种与 PayPal 交互的方式。通过支付 API,他们有三个流程,每个流程用于特定场景:

  • 标准流程用于基本的 PayPal 购买。
  • 分步流程是您首先将购物者发送到 PayPal 并在当天晚些时候授​​权付款和捕获。
  • 延迟捕获是您将购物者发送到 PayPal,然后在 PayPal 中创建待处理订单 - 您可以在几个月后捕获资金。

对于您描述的问题,听起来延迟捕获流程是最合适的。

完整的 API 在这里:https://developers.bluesnap.com/v8976-JSON/docs/update-paypal-transactionhttps://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 步中发送的更多的钱 - 所以在您创建挂单时要考虑潜在的附加费!

希望它有所帮助:)

于 2017-09-17T19:42:58.233 回答