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. Однако, если вы это сделаете, ваш сайт будет получать два подтверждения заказа для каждой продажи. В результате вы должны быть осторожны, чтобы принять меры (например, отправить продукт) только с одной копией данного подтверждающего сообщения.
здесь
person
Mr. Shiny and New 安宇
schedule
14.05.2010
My selling preferences > Website preferences
есть параметрPayPal Account Optional
, который вы можете включить, чтобы не заставлять клиентов создавать / иметь учетную запись PayPal, т. Е. оплатить кредитной / дебетовой картой. - person kaiyaq   schedule 17.12.2014