Я надеюсь, что кто-то здесь может мне помочь, так как я обращался в службу технической поддержки PayPal, которая не очень помогла.
Я интегрирую оплату PayPal, следуя инструкциям здесь: https://developer.paypal.com/docs/checkout/standard/integrate/
Я хочу собрать идентификатор транзакции PayPal в моей базе данных, отправить электронные письма с подтверждением заказа и т. д., поэтому мне нужно реализовать необязательный шаг 5, описанный в этом руководстве по интеграции, что по существу означает создание двух маршрутов на моем сервере, один для вызова "создать заказ" и один для вызова "захвата заказа" - в соответствии с примером кода здесь: https://developer.paypal.com/demo/checkout/#/шаблон/сервер
У меня это работает успешно, однако я хочу знать 2 вещи:
Как я могу увидеть поток 3D Secure - PayPal говорит мне, что я должен беспокоиться об этом, поскольку они обрабатывают его во всплывающем окне, но я хотел бы увидеть поток. Я пробовал тестовые карты, которые должны вызывать поток 3DS, но они не показывают никакого потока 3DS, просто завершайте платеж.
Ответ на конечную точку заказа захвата может возвращать несколько статусов (ЗАВЕРШЕНО, УТВЕРЖДЕНО, аннулировано, PAYER_ACTION_REQUIRED и т. д.). Только ли статус "ЗАВЕРШЕН" означает полностью выполненный платеж (и, следовательно, я должен завершить заказ)? Что произойдет, если он вернет «PAYER_ACTION_REQUIRED» — что означает необходимость проверки 3DS — обработает ли PayPal это, а затем повторно выполнит мой маршрут?
Любая помощь или совет будут очень признательны.
Для обычной, «стандартной» интеграции вам не нужно тестировать 3DS. Страница/iframe PayPal уже позаботится обо всем.
[Только для «Расширенной» интеграции — когда вы реализуете отдельные поля размещенных карточек с собственным стилем — вам нужно внедрять и тестировать 3DS самостоятельно]
PAYER_ACTION_REQUIRED происходит только в расширенном режиме. Все, что вам нужно сделать на сервере после захвата, — это проверить ЗАВЕРШЕННОСТЬ и наличие идентификатора захвата, который вы собираетесь сохранить для целей учета.
Нет необходимости тестировать его в песочнице, так как он уже реализован и не имеет ничего общего с тем, что вы будете интегрировать. Вы можете использовать карту с поддержкой 3DS в производстве, если вам так интересно ее увидеть.
Привет @Preston, спасибо за всю вашу помощь. Последний вопрос - это для французского сайта, и когда открывается окно для входа пользователя, оно на английском языке (хотя я перехожу на французский язык после того, как я вхожу в систему как пользователь своей французской песочницы). Я попытался добавить locale=fr_FR (как указано здесь: developer.paypal.com/sdk/js/configuration/#locale) в тег сценария JS, как указано в документах, но это ничего не изменило. Вы знаете, как заставить язык в этой начальной загрузке окна входа в систему?
locale=fr_FR изменит только язык кнопок на вашем сайте (в противном случае определяется язык браузера пользователя). Язык страницы оформления заказа PayPal.com по умолчанию определяется браузером, файлами cookie или входом в систему, а не какой-либо локалью, которую вы могли передать (это касается только кнопок на вашем сайте).
Привет @Preston, спасибо за ваш ответ. Я знаю, что стандартная интеграция имеет дело с самой 3DS, но мы хотели бы на самом деле увидеть поток, и, похоже, нет никакого способа вызвать этот поток в песочнице, PayPal даже прислал мне список номеров карт, но ни один из них не работает, когда используя их в демоверсии: developer.paypal.com/demo/checkout/#/шаблон/сервер