Вопрос

У меня возникли проблемы с выбором между мгновенным уведомлением о платежах PayPal (IPN) и передачей данных платежей (PDT).

В принципе, пользователи покупают односторонний продукт на моем сайте, оплатите PayPal и вернуться на мой сайт. Я понимаю, как работает IPN, но теперь я вижу, что я смогу вызвать различные действия, которые происходят после успешной покупки более легко с PDT, поскольку данные возвращаются туда, а затем (в отличие от необходимости отдельного слушателя) Отказ

Тем не менее, документация PYPAL PDT содержит эту загадочную строку: «PDT не предназначен для использования с кредитными картами или экспресс-описаниями.» ... но я не могу найти ничего дальше на тему.

  1. Кредитные карты действительно не предназначены для использования с PDT? Я хотел бы больше, чем предложение.

  2. Значит ли это, что пользователь должен иметь / создать учетную запись PayPal для оплаты?

  3. Значит ли это, что если я хочу позволить пользователям оплачивать свои учетные записи PayPal и / или с помощью кредитных карт напрямую, я должен реализовать IPN?

Может кто-нибудь, кто прошел этот любезно пролить свет?

Это было полезно?

Решение

API для PDT и IPN похожи. Основное отличие заключается в том, когда вы получаете уведомление. По этой причине я бы порекомендовал реализовать оба.

  • При PDT вы получаете уведомление мгновенно и можете выполнять любую дополнительную обработку, необходимую и показать пользовательскую страницу подтверждения.
  • С IPN вам гарантировано, что оплата была получена, даже если компьютер пользователя взрывается, прежде чем он сможет отправить вам PDT.

Внедрить оба и получить лучшее из обоих миров. Но если вы только делаете один, IPN является надежным.

Один улов: если вы реализуете обои, то есть вероятность, что ваши платежи могут быть обработаны дважды. Берегите себя, чтобы убедиться, что это не происходит. Приложение, которое я писал обрабатывает PDT и IPN практически одинаково (часть бэкэнд одинакова) и этот код приобретает блокировку для каждого пользователя в базе данных, так что если тот же пользователь пытается отправить точно такой же платеж несколько раз можно обработать только один раз. После обработки результат этого процесса повторно используется для любых последующих попыток ее обработки.

РедактироватьЕще одна вещь: IPN несет дополнительную информацию, чем PDT. Есть много разных сообщений, которые вы можете получить от IPN, такие как уведомление поручений и т. Д., И, таким образом, вы действительно должны его реализовать.


Система PDT PayPal отправляет подтверждения заказа на Merchant Sites, которые используют стандарт платежей PayPal и позволяет им аутентифицировать эту информацию. Такие сайты могут затем отображать эти данные локально в странице «Подтверждение заказа».

Когда использовать PDT?

IPN предоставляет те же возможности, описанные выше. Итак, когда вы должны выбрать PDT вместо IPN?

С PDT ваш сайт немедленно уведомлен, когда клиент завершает оплату. С IPN, однако, существует материальная лаза между временем, когда клиент завершает оплату, и время вашего сайта получает уведомление об этом событии.

Итак, используйте PDT, если ваш сайт содержит функцию, которая требует немедленного уведомления об оплате.

Например, рассмотрите цифровой музыкальный магазин. С PDT этот магазин может позволить клиентам загружать свои покупки сразу, так как PDT немедленно отправляет подтверждения заказа. С IPN такое немедленное выполнение заказа невозможно.

Преимущества IPN.

PDT имеет серьезную слабость AA: он отправляет подтверждения заказа один раз и только один раз. В результате, когда PDT отправляет подтверждение, ваш сайт должен работать; В противном случае он никогда не получит сообщение.

С помощью IPN, напротив, доставка подтверждений заказа практически гарантируется, поскольку IPN отправляет подтверждение до тех пор, пока ваш сайт не признает квитанцию. По этой причине PayPal рекомендует использовать IPN, а не PDT.

Еще одним преимуществом IPN является то, что он отправляет множество типов уведомлений, в то время как PDT отправляет только подтверждения заказа. Таким образом, используя IPN, ваш сайт может получить, например, уведомления CHARGBACK, а также подтверждения заказа. Примечание. Если ваш сайт немедленно должен быть уведомлен об платежах, вы можете реализовать как IPN, так и PDT. Однако, если вы сделаете, ваш сайт получит два подтверждения заказа для каждой продажи. В результате вы должны быть осторожны, чтобы принять меры (скажем, доставить продукт) только на одной копии данного сообщения подтверждения.

Документация здесь

Другие советы

Re 1. PDT предназначен для использования с автоматическим возвратом для функции веб-сайта. Автоматическое возвращение перенаправления на сайт PDT после оплаты денег продавцу. К сожалению, невозможно использовать эту функцию вместе с учетной записью PayPal, необязательно - используется для обеспечения оплаты кредитной карты. Вот отметка от PayPal: «Если вы включили Авто возврата И решили включить учетную запись PayPal, необязательно для новых пользователей, новый пользователь не будет автоматически направлен на ваш сайт, но будет предоставлен возможность вернуться. '. Пользователь будет иметь возможность вернуться на свой сайт (PDT Step) или остаться на сайте PayPal. Суммируйте его при оплате пользователем кредитной карты, могут пропустить шаг PDT, если пользователь не будет нажать «Вернуться к ссылке на хранение».

Re 2. Это зависит от вас, какие варианты оплаты вы хотите разрешить. Если вы хотите позволить оплату без учетной записи PayPal вы можете включить Аккаунт необязательно. Отказ Если вы хотите разрешить только пользователям с учетными записями PayPal отключить эту функцию. Там могут быть больше вариантов.

Re 3. В вашем случае вам нужно, чтобы вызвать действие после успешной покупки. Рекомендуемый путь будет реализовать IPN. PDT не работает для всех случаев и не гарантирует доставку сообщений. Вот ссылка на док, охватывающий эту тему PDT VS IPN..

Это старый вопрос, но мой простой ответ будет - почему бы не использовать PDT, так и IPN? Они будут работать нормально для карт.

PDT может предоставить немедленный статус транзакции на ваш сайт, где вы можете быстро проверить состояние успеха оплаты или отказов и предоставить пользователю соответствующее сообщение.

Между тем, вы можете ждать полной проверки от IPN на заднем плане. После получения, вы можете использовать это, чтобы дополнительно обновить свою БД и обработать заказ.

Вы можете следить за этим пошаговым руководством, который я нашел, чтобы быть очень четким и полезным - и все еще действует в 2018 году.

https://www.codexworld.com/paypal-standard-payment-gateway-integration-php/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top