IPN по сравнению с PDT в PayPal

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

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

Однако документация PDT PayPal содержит эту загадочную строку: "PDT не предназначено, чтобы использоваться с кредитной картой или транзакциями Контроля Экспресса"...., но я ничего не могу найти далее безотносительно по теме.

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

  2. Это означает, что пользователь должен/создать счет PayPal плате?

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

Мог кто-либо, кто прошел, это любезно пролило некоторый свет?

96
задан yairchu 25 March 2014 в 23:09
поделиться

1 ответ

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

110
ответ дан 24 November 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: