Как разрешить клиентам оплачивать в PayPal разными валютами?

Я пытаюсь понять, как интегрировать PayPal Express Checkout в Java, теперь мне сначала удалось применить сценарий, в котором клиент утверждает платеж, отправив запрос ниже, а затем получив ссылку для утверждения 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, я получаю следующую ошибку:

{name: UNPROCESSABLE_ENTITY, подробности: [{location: body, issue: 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,rel: information_link, method: GET}]}

Есть ли обходной путь для принудительного использования нескольких валют при оформлении заказа? Или как осуществить конвертацию валюты?


person 0x01Brain    schedule 25.08.2020    source источник


Ответы (1)


MAD не является валютой, поддерживаемой PayPal

Вот полный список: https://developer.paypal.com/docs/api/reference/currency-codes/

Если у покупателя есть источник финансирования в другой местной валюте (например, кредитная карта с MAD), конверсия будет показана ему на кассе. Но ваша транзакция должна быть выражена в одной из поддерживаемых PayPal валют, и вы получите эту валюту.


Лучший процесс утверждения - это не ссылка или перенаправление, а скорее загрузка вашего сайта в фоновом режиме и открытие контекстного окна. Вот интерфейсный интерфейс для этого: https://developer.paypal.com/demo/checkout/#/pattern/server

Требуется, чтобы валюта была известна во время загрузки страницы (или позже асинхронная загрузка).

Вам понадобятся два соответствующих маршрута на вашем сервере: один для «Настроить транзакцию», как в вашем вопросе, и один для «Захват транзакции». Здесь есть руководство для них: https://developer.paypal.com/docs/checkout/reference/server-integration/

person Preston PHX    schedule 25.08.2020
comment
Я интегрировал PayPal на сервер в качестве серверной части для мобильного приложения, поэтому в моем случае перенаправление мне действительно нужно. - person 0x01Brain; 25.08.2020
comment
Будет ли отображаться общая сумма клиента в долларах США или MAD? Я не возражаю против того, чтобы он конвертировал, но я хочу показать это клиентам MAD. - person 0x01Brain; 26.08.2020
comment
Ваш вопрос не имеет смысла. Он покажет конверсию только в том случае, если они выберут источник финансирования MAD, и в этом случае он должен показать оба, потому что это конверсия. - person Preston PHX; 26.08.2020
comment
Я имел в виду, отвечая на вопрос, покажет ли он это покупателю при оформлении заказа? - person 0x01Brain; 26.08.2020
comment
Что касается конвертации, вы рекомендуете ее, если у меня 2 нескольких пользователя получают комиссию от транзакции? - person 0x01Brain; 26.08.2020
comment
Если клиент выберет источник финансирования MAD, он увидит преобразование в MAD. Если они не выберут такой источник финансирования, они ничего не увидят о MAD, потому что у них нет причин видеть что-либо о MAD. - person Preston PHX; 26.08.2020
comment
2, получающие комиссию, не имеют ничего общего с конверсией на стороне покупателя. - person Preston PHX; 26.08.2020
comment
Я имел в виду, что у некоторых клиентов или пользователей в моем районе нет карты Visa для покупок за доллары США, только в местной валюте, которая является сумасшедшей, так что мне нужно конвертировать валюту из MAD в доллары с моей стороны ?? и подойдет ли это для моего случая? - person 0x01Brain; 15.11.2020
comment
Конверсия финансирования покупателя происходит на стороне покупателя, вам не нужно ничего делать. - person Preston PHX; 15.11.2020
comment
Спасибо, сэр, это то, что мне нужно было знать, я думал, что должен сделать преобразование со своей стороны. Но я думаю, что мне все равно нужно конвертировать MAD в доллары при указании суммы в запросе, отправленном в Paypal, верно? Потому что сумма на платформе отображается как MAD, а не в долларах США. - person 0x01Brain; 16.11.2020
comment
Сумма, которую вы отправляете в PayPal, должна быть в валюте, поддерживаемой PayPal, например в долларах США, да developer.paypal.com/docs/api/reference/currency-codes - person Preston PHX; 16.11.2020