Реализация бесплатного пробного периода с PayPal не возвращает никаких пользовательских параметров - PullRequest
1 голос
/ 04 августа 2011

Застрял в этой проблеме за последние 2 дня.

Сценарий

У нас есть веб-продукт, в котором пользователи могут бесплатно зарегистрироваться в течение 14 дней, а затем ежемесячная подписка, скажем, $ 60,00. После того, как пользователи нажали кнопку «Оплатить с помощью Paypal», пользователи перейдут на Paypal, а после совершения платежа они перенаправятся обратно на наш веб-сайт. Все переданные параметры выглядят хорошо, так как я тестировал с песочницей как продавец и пользователь. мы использовали свойство «Обратный URL» в настройках профиля продавца в разделе «Платежные настройки сайта».

Исследования

Большинство похожих вопросов Реализация бесплатного пробного периода с PayPal и Бесплатная пробная версия подписки Paypal не работает , но моя проблема немного другая. А также документ, указанный в первом вопросе, не является действительной ссылкой.

Выпуск

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

Наш код выглядит так,

<form name='paypal' action='https://www.sandbox.paypal.com/cgi-bin/webscr' method='post'>
<input type='hidden' name='business' value='xxx@xxxxx.com'>
<input type='hidden' name='no_shipping' value='1'>
<input type='hidden' name='cmd' value='_xclick-subscriptions'>
<input type='hidden' name='a3' value='60.00'>
<input type='hidden' name='item_name' value='Product A'>"
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='custom' value='parameter1|parameter2'>
<input type='hidden' name='item_number' value='PlanCode'>
<input type='hidden' name='p3' value='1'>"
<input type='hidden' name='t3' value='M'>"
<input type='hidden' name='a1' value='0'>" 
<input type='hidden' name='p1' value='14'>" 
<input type='hidden' name='t1' value='D'> 
</form>

Я пытался добавить,

<input type='hidden' name='rm' value='1'>

Но не повезло.

Вопросы

  1. почему я не могу получить параметры обратного вызова, когда "a1 = 0" в течение 14 дней? Но тот же код работает, если я установил «a1» больше 0?
  2. Мне не хватает какого-либо параметра? или я использую неправильный подход при перезвоне? (Я использую Обратный URL)
  3. А как насчет использования IPN? Я понял, с сайта PayPal IPN не в режиме реального времени. Поскольку наше приложение полагается на пользовательские данные для следующего потока регистрации, мне интересно, можно ли его использовать? Если да, то какой будет первоначальный документ для изучения?

1 Ответ

0 голосов
/ 05 августа 2011

Я получил ответ от форума PayPal на этот вопрос. Я добавляю это как ответ, поскольку это поможет другим разработчикам в будущем. Также хорошо отправная точка для IPN

Ответ был,

"Если вы используете PDT, то ничего не будет отправлено обратно, поскольку платеж не происходит. Информация будет отправлена ​​обратно только в том случае, если вы делаете платеж. Я бы рекомендовал использовать IPN. И переменная rm, и PDT зависят на покупателя, возвращающегося обратно на ваш сайт. Если покупатель не возвращается, например, его окно браузера неожиданно закрывается и закрывается, или они просто закрывают его, никакая информация не будет отправлена ​​обратно, и она будет потеряна. Поэтому переменная rm и PDT больше используются для создания динамических квитанций. IPN больше используется для обновления вашей системы, поскольку он не зависит от возврата покупателя на ваш сайт. "

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

см. Оригинальный вопрос

...