如何允许客户在PayPal中使用不同的货币付款?

问题描述

我试图了解如何在Java中集成PayPal Express Checkout,现在,我首先成功地应用了客户通过发送以下请求然后获得批准的HATEOAS ref链接批准付款的方案:

curl -v -X POST https://api.sandBox.paypal.com/v2/checkout/orders \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
  "intent": "AUTHORIZE","purchase_units": [
    {
      "amount": {
        "currency_code": "USD","value": "100.00"
      }
    }
  ]
}'

此后,我捕获了请求,发现客户和卖方的交易都可以。但是,当尝试使用另外一个currency_code(例如MAD)付款时,出现以下错误

{“名称”:“ UNPROCESSABLE_ENTITY”,“详细信息”:[{“位置”:“正文”,“问题”:“ CURRENCY_NOT_SUPPORTED”,“描述”:“当前不支持货币代码。请参考https: //developer.paypal.com/docs/integration/direct/rest/currency-codes/以获取支持的货币代码列表。“}],”消息“:”无法执行请求的操作,语义上不正确或业务失败验证。“,” debug_id“:”“,”链接“:[{” href“:” https://developer.paypal.com/docs/apI/Orders/v2/#error-CURRENCY_NOT_SUPPORTED“,”相关“: “ information_link”,“方法”:“ GET”}]}

是否有任何变通办法强制结帐时使用多种货币?还是如何实施货币换算?

解决方法

MAD不是受PayPal支持的货币

以下是完整列表:https://developer.paypal.com/docs/api/reference/currency-codes/

如果买方拥有以其他当地货币表示的资金来源(例如带有MAD的信用卡),则会在结帐时向他们显示转换。但是您的交易必须使用PayPal支持的一种货币进行计价,然后您将收到该货币。


最佳批准流程不是基于链接或重定向的,而是要让您的网站在后台加载并打开一个关联窗口。这是该前端的用户界面:https://developer.paypal.com/demo/checkout/#/pattern/server

确实需要在页面加载时(或以后的async load)知道币种。

您将在服务器上需要两条相应的路由,一条用于您问题中的“设置交易”,另一条用于“捕获交易”。这里有针对他们的指南:https://developer.paypal.com/docs/checkout/reference/server-integration/