Paypal вынуждает меня изменить мой текущий платежный шлюз, который использует их API, и передать его третьей стороне (которая предположительно будет взимать плату за услугу) из-за PDS2 (Директива по платежным услугам - пересмотренный), который требует строгой аутентификации клиента (SCA), если транзакция не освобождается. Дополнительной информацией может быть пароль, отпечаток пальца или телефон, но сведения об использовании их API для этого отсутствуют.
Документация Paypal близка к бесполезной, но документация Stripe содержит информацию о том, что представляет собой освобожденную транзакцию, и фактически, PDS2 применяется только в том случае, если бизнес И банк клиента находятся в Европейском экономическом пространстве (ссылка: https://stripe.com/en-nl/guides/strong-customer-authentication) и что банк считает транзакцию рискованной.
Определение рискованной транзакции является субъективным и определяется банками, поэтому подразумевается, что мы ДОЛЖНЫ включить SCA. Я использую django-paypal, который предоставляет вспомогательные функции и структуры данных для использования API PayPal.
Paypal не слишком хорош в поддержке разработчиков, и общение с их техническим персоналом невозможно. Поэтому я написал разработчику django-paypal по электронной почте, но я не получил ответа (https://github.com/appsumo/django-paypal-1).
Крайний срок для этого - сентябрь 2019 года, после чего PayPal предупреждает об отклоненных транзакциях и общем мора в случае несоблюдения PDS2. Странно то, что SCA также была представлена в качестве версии 1 (PDS) еще в 2015 году, и тогда тоже были предупреждения об отклоненных транзакциях.
Для кредитной карты в настоящее время я использую django-paypal doDirectPayment
, который использует DoDirectPayment PayPal, который использует SOAP. Я не вижу в документе ничего о предоставлении учетных данных для SCA этими методами. Я предполагаю, что мне не нужно ничего делать для перенаправленных платежей PayPal, так как PayPal контролирует этот процесс оплаты.
UPDATE
Paypal отправил Cardinal Commerce для предоставления какого-либо API, НО это на стороне клиента только с использованием Songbird.js. Они указывают, что существует серверное решение ...
Поскольку Songbird является библиотекой JavaScript на стороне клиента, она может только
взаимодействовать с платежными брендами на стороне клиента. Любые взаимодействия, которые
требуют реализации на стороне сервера, такой как наш кардинальный круиз
Гибридная интеграция выходит за рамки для Songbird.js и продавца
может потребоваться интеграция напрямую с платформой Cardinal Centinel
непосредственно.