问题描述
我试图了解如何在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/