2017-02-03 9 views
0

В настоящее время я тестирую кнопку «Купить сейчас» на веб-сайте PHP. Вот код, у меня есть (более или менее):Получаю ли я ответный звонок от кнопки покупки Paypal для всех событий?

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="encrypted" value="........" 
<input type="image" src="https://www.paypalobjects.com/fr_CA/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !"> 
<img alt="" border="0" src="https://www.sandbox.paypalobjects.com/fr_CA/i/scr/pixel.gif" width="1" height="1"> 
<input name="notify_url" value="https://www.example.com/paypal_notifications.php" type="hidden"> 
</form> 

Сделка песочница работает (отправка в комплекте), но я не знаю, если я буду получать только одноразовое сообщение или обновление.

Получать ли я событие, если платеж отменен, скажем, через неделю? (Есть ли способ немедленно отменить платеж из учетной записи песочницы?)

Я использую только notify_url, а не настройку IPN в учетной записи, поскольку учетная запись используется с несколькими веб-сайтами (и я не мог найти его ...: P).

ответ

1

notify_url установка в виде веба-Checkout переопределяет профиль IPN URI, так что, если форма не определяет notify_url того значения профиля будет использоваться, но если форма действительно указать адрес затем значение профиля не будет использоваться. Я признателен, что это путает, потому что страница профиля PayPal (где вы указываете адрес IPN по умолчанию) не упоминает об этом, также не имеет собственной документации PayPal.

(Чтобы еще больше расстроить, документация PayPal по-прежнему имеет скриншоты и текст, описывающие старые страницы управления учетными записями (2005-2015), они все еще не обновили их).

Обратите внимание, что, несмотря на название «Мгновенные Notifications оплаты», сообщения не на самом деле Мгновение - в моем опыте есть временной лаг между 15 секунд и (редко) до 2-х минут до моего кода получает IPN сообщение. По этой причине, если вам действительно нужно мгновенное уведомление, вы также должны использовать PDT для увеличения вашего обработчика IPN. PDT - это процесс веб-проверки PayPal, который перенаправляет ваших клиентов на собственный URL-адрес с непрозрачным идентификатором транзакции в строке запроса, которую вы можете использовать для извлечения фактических данных транзакции в свой собственный код при обработке входящего запроса от возвращающегося клиента.

Система IPN теперь многолетняя, начиная с конца 1990-х годов - следовательно, ее дизайн немного странный, и вы фактически получите несколько уведомлений для одной и той же транзакции, но это зависит от типа сделки. Это задокументировано в документации IPN PayPal, но опять же, они не дают вам всех подробностей, и во многих случаях вам приходится учиться через пробную версию.

Например, если это прямая веб-проверка с использованием собственных страниц проверки PayPal, и клиент платит с помощью кредитной карты или остатка на счете PayPal, вы получите одно уведомление, информирующее вас, что сделка прошла успешно, и это все , Однако, если клиент оплачивает US ACH (aka), вы получите несколько уведомлений, потому что процесс клиринга занимает некоторое время: сначала вы получите первоначальное уведомление о том, что платеж был сделан, но он еще не очищен, затем вы получите другое уведомление через 2-3 дня, сообщив вам, если платеж будет удален успешно (и ваш счет PayPal фактически имеет средства), или если он не прошел.

Я лично не рекомендую использовать Песочницу PayPal для более чем тривиальных упражнений, потому что не может имитировать все возможные сценарии в реальной жизни, и это боль для настройки. Насколько серьезно вы принимаете тестирование, зависит от того, насколько критичен этот код для вашего бизнеса.

Короче говоря, для PayPal, в частности, не бойтесь тестировать в процессе производства и убедитесь, что ваш код изящно обрабатывает необычные сообщения, и я настоятельно рекомендую записывать и сохранять каждое входящее сообщение IPN, чтобы вы могли получить лучше «почувствовать» данные, которые вы можете обработать - опять же, потому что документации PayPal не хватает во многих областях.

+0

Ничего себе, спасибо. Вы были очень исчерпывающими! – beppe9000

+0

Отличное объяснение @Dai – Sol