Paypal IPN не получает переменные - PullRequest
0 голосов
/ 22 апреля 2019

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

  • форма работает
  • подписка сохранена на Paypal
  • покупатель правильно перенаправлен на страницу получения

но переменная не извлекается.

вот что я пробовал до сих пор:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_xclick-subscriptions">
<input type="hidden" name="business" value="mybusinessname">
<input type="hidden" name="lc" value="IE">
<input type="hidden" name="item_name" value="Monthly Subscription">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="a1" value="0.00">
<input type="hidden" name="p1" value="1">
<input type="hidden" name="t1" value="M">
<input type="hidden" name="src" value="1">
<input type="hidden" name="a3" value="1.50">
<input type="hidden" name="p3" value="1">
<input type="hidden" name="t3" value="M">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="bn" value="PP-SubscriptionsBF:btn_subscribeCC_LG.gif:NonHosted">
<input type="hidden" name="custom" value="test_value">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

Сведения о мгновенном платеже (IPN) на Paypal включены и указывают на:

https://www.mydomain/payments/

История IPN показывает, что уведомления от Paypal правильно отправляются на URL-адрес для уведомлений (см. Выше)

Однако на странице квитанции отображается

Error
Undefined index: custom

чтобы получить пользовательскую переменную, я попробовал GET, POST и даже метод REQUEST, используя что-то вроде

test 1: <?php echo $_GET["custom"]; ?>
test 2: <?php echo $_POST["custom"]; ?>

Тогда я попробовал

<?php
if (isset($_POST['custom'])) {
    $custom_display = $_POST['custom'];
}
?>  

но это приводит к: Undefined variable: custom_display

Все, что мне нужно, это получить пользовательскую переменную.

Я предполагаю, что я делаю что-то не так, но после многих часов поиска ответа и пробования различных настроек (например, динамическая отправка URL-адреса уведомления в форме, изменение настроек в PayPal, использование разных URL-адресов и т. Д.), Похоже, ничего не происходит работает на меня, и я застрял

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 30 апреля 2019

Я столкнулся с той же проблемой (?) несколько месяцев назад.Кажется, ответ таков: PayPal больше не передает custom в IPN (и при этом не учитывает значение return).Оба из них перестали работать в прошлом году.

Мой обходной путь - использовать значение subscr_id для поиска профиля клиента.YMMV.

...