3

我使用 BlueSnap API 来销售产品,使用 PayPal。在我的网站上,我将购物者发送到 PayPal,而无需他们填写任何运输详细信息——一旦他们登录 PayPal,我就会从他们的 BlueSnap 帐户中获取这些详细信息。

但问题是,在将购物者发送到 PayPal 之前,我不知道他们在哪里,因此可能需要在产品价格之上添加运费和税金问题。

有什么方法可以让购物者支付一定的金额(比如 50 美元)然后根据运输细节添加 7 美元的附加费,而无需购物者重新批准交易?

我通常使用这个支付 API 调用:

{
    "amount": 50,
    "softDescriptor": "My SD",
    "currency": "USD",
    "paypalTransaction": {
        "cancelUrl": "http://www.cancelURL.com",
        "returnUrl": "http://www.returnURL.com"
    },
    "transactionFraudInfo": {"fraudSessionId": 1234}
}

潜在的附加费没有明显的地方,所以我不确定这是否可能——有什么限制?我阅读了此文档,但无法获得清晰的图片。https://developers.bluesnap.com/v8976-JSON/docs/create-paypal-transaction

我会很感激任何帮助!

4

1 回答 1

6

BlueSnap 有一些流程来处理 PayPal 购买 - 根据您的描述,看起来分步 PayPal 流程应该适合您。当您通过 API 发送请求时,只需发送此(POST):

{
    "merchantTransactionId": "mysurchagetransaction",
    "softDescriptor": "SOFTDESC",
    "amount": "50.00",
    "currency": "USD",
    "payerInfo": {
        "firstName": "John",
        "lastName": "Doe"
     },
     "paypalTransaction": {
         "transactionType": "AUTH_ONLY",
         "returnUrl": "http://www.returnURL.com",
         "cancelUrl": "http://www.cancelURL.com",
         "maxAmount": "70.00"
    }
}

70 美元是您的限额——您最多可以超出金额的 40%,否则 BlueSnap 将不允许交易。这个想法是,此时,您希望将 Shopper 发送到 PayPal 进行 50 美元的购买 - 但一旦您知道他们来自哪里,您预计可能会收取额外费用,可能高达 70 美元。对此 API 调用的响应将包括订单 ID(留着以备后用!),以及指向 PayPal 的通常重定向链接。您的购物者将被重定向到那里,批准 50 美元,然后再次被重定向到您的 returnURL(您的网站)。

当购物者返回时,您会获得一个 BlueSnap 购物者 ID——它将包含从 PayPal 获取的所有运输数据。要查看数据,您可以按通常的方式检索购物者:https ://developers.bluesnap.com/v8976-JSON/docs/retrieve-vaulted-shopper 。

现在是第二步,建议在几个小时内进行(PayPal 有一个时间窗口)。您将购物者的送货地址考虑为税金/运费附加费,然后发送此捕获资金 API 调用 (PUT):

{
    "amount": "58.00",
    "currency": "USD",
    "paypalTransaction": {
        "orderId": "4006145",
       "transactionType": "CAPTURE"
    }
}

请注意,您选择收取 58 美元,因此您没有使用 70 美元的最高金额。没关系,购物者在 PayPal 中没有您考虑收取的 70 美元的记录——只有 58 美元。此外,购物者不必重新批准购买,或再次登录 PayPal。虽然这不是强制性的,但我建议您告诉购物者您计划在他们返回您的网站时收取的金额 - 如果它适用于您的网站流量。

我希望我有所帮助!

于 2017-09-19T11:18:27.437 回答