Вопрос

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

Однако я бы предпочел не ждать месяц или день, чтобы получить второй IPN.Есть ли способ ускорить отправку IPN, например ежечасно, с помощью PayPal или их песочницы?

В документации сказано, что в качестве периода подписки можно указать только годы, месяцы, дни и недели.

Это было полезно?

Решение

Раньше период, указанный в днях, воспринимался тестовым сервером как минуты, поэтому при указании «d3» вам звонили каждые 3 минуты.Я думаю, что они удалили это, и я не знаю какой-либо функции замены для тестирования подписок.

Другие советы

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

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

Если у вас есть бесплатная пробная версия, вы получите по сути ту же пару сообщений, только с пробным периодом между ними.:)

Первое сообщение («создать подписку») будет выглядеть примерно так.Обратите внимание на «txn_type» — это ключевой бит информации для устранения неоднозначности двух сообщений:

{
  "txn_type"=>"subscr_signup",
  "subscr_id"=>"unique_id",
  "verify_sign"=>"random_gibberish",

  "item_number"=>"your_subscription_name"
  "subscr_date"=>"14:32:23 Feb 15, 2010 PST",
  "btn_id"=>"1111111",
  "item_name"=>"Your Subscription Description",
  "recurring"=>"1",
  "period1"=>"1 M",

  # This example is from a "free trial" IPN notification-- if you don't have a 
  # free trial defined, there will only be 'period1' fields, and they'll
  # have the data that appears here in the 'period3' fields.
  "amount1"=>"0.00",
  "mc_amount1"=>"0.00",
  "period3"=>"1 M",
  "amount3"=>"34.95",
  "mc_amount3"=>"34.95",
  "mc_currency"=>"USD",

  "payer_status"=>"verified",
  "payer_id"=>"payer_unique_id",
  "first_name"=>"Test",
  "last_name"=>"User",
  "payer_email"=>"test_xxxx@example.com",
  "residence_country"=>"US",

  "business"=>"seller_xxxxxxx@example.com",
  "receiver_email"=>"seller_xxxxxxx@example.com",

  "reattempt"=>"1",

  "charset"=>"windows-1252","notify_version"=>"2.9","test_ipn"=>"1",
}

Второе сообщение в данном случае более интересное.По сути, это будет то же самое сообщение, которое вы получите позже, когда будет применен регулярный платеж.Это выглядит примерно так:

{
  "txn_type"=>"subscr_payment",
  "subscr_id"=>"unique_id",
  "verify_sign"=>"random_gibberish",

  "txn_id"=>"payment_unique_id",
  "payment_status"=>"Completed",
  "payment_date"=>"12:45:33 Feb 16, 2010 PST",

  "item_number"=>"your_subscription_name"
  "subscr_date"=>"14:32:23 Feb 15, 2010 PST",
  "custom"=>"data-you-sent-in-a-custom-field",

  "id"=>"1",
  "payment_gross"=>"34.95",
  "mc_currency"=>"USD",
  "payment_type"=>"instant",
  "payment_fee"=>"1.31",
  "payer_status"=>"verified",
  "mc_fee"=>"1.31",
  "mc_gross"=>"34.95",
  "btn_id"=>"1111111",

  "payer_id"=>"payer_unique_id",
  "first_name"=>"Test",
  "last_name"=>"User",
  "payer_email"=>"test_xxxx@example.com",
  "residence_country"=>"US",

  "receiver_id"=>"your_merchant_id",
  "business"=>"seller_xxxxxxx@example.com",
  "receiver_email"=>"seller_xxxxxxx@example.com",

  "protection_eligibility"=>"Ineligible",
  "transaction_subject"=>"",
  "charset"=>"windows-1252","notify_version"=>"2.9","test_ipn"=>"1",
}

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

Кроме того, здесь — это ссылка на документацию PayPal для дальнейшего использования.

Тестовые IPN можно отправить повторно, поэтому для тестирования вам нужно будет «купить» только одну подписку.После того как вы купили одну подписку, вот что нужно сделать:

  1. Войдите в свою песочницу PayPal продавец счет.
  2. Выберите «Профиль» => «Мои настройки продаж».
  3. В третьем столбце выберите «Настройки уведомлений о мгновенных платежах».
  4. Убедитесь, что IPN включен и URL-адрес правильный.
  5. Нажмите ссылку на История IPN страница.
  6. Прокрутите вниз, отметьте один или несколько IPN и нажмите «Отправить повторно».

После вашего подтверждения выбранные IPN будут повторно отправлены на указанный вами URL-адрес.Вы можете повторять неограниченное количество раз с одним и тем же IPN(ами).

Отличный ответ @dondo охватывает все остальное.

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

Хотите верьте, хотите нет, PayPal по-прежнему не позволяет легко тестировать подписку с помощью файлов ipn :/

Итак, просто потому, что я не видел этого здесь, и ФП звучал так, будто у них сложилось впечатление, что они ожидают только двух возможных ответов от папы...

если у кого-то еще возникли проблемы, вот еще один txn_type, который попал в мой ipn во время тестирования:

//when paypal subscription profile is created for the subscriber
subscr_signup 

//payment made for a given billing cycle
subscr_payment 

//when subscription fails
subscr_failed 

//user cancels subscription - not
subscr_cancel 

//end of term - paypal is "done" with that subscriber 
subscr_eot 

//why I was looking for this thread to begin with lol
recurring_payment_suspended_due_to_max_failed_payment

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

recurring_payment_profile_created

recurring_payment_profile_cancel

recurring_payment_profile_modify

recurring_payment

recurring_payment_skipped

recurring_payment_failed

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

Приятных головных болей :)

ОБНОВЛЯТЬ:Я только сейчас понял свою проблему - так что, чтобы казалось, что я знаю, что делаю, я объясню...

Я думаю, что песочница подписки PayPal медленно умирает.На днях, когда я возился с sandbox.paypal.com, я заметил, что много раз получаю сообщение «Фатальный сбой».Обновление страницы, кажется, исправляет это в большинстве случаев, хотя иногда мне приходится обновлять страницу несколько раз, чтобы экран вернулся.

Я получаю тот же ответ от них, когда они нажимают на мой файл IPN, что объясняет, почему сегодня все мои подписки были приостановлены.Благодаря Нилу я смог повторно отправить ответ IPN и записал его в текстовый файл (смеется), а затем я прочитал файл ipn в ответе и отправил его обратно в PayPal (это действительно сложнее, я просто чтобы это звучало просто).

В любом случае, обновив страницу, я могу инициировать рукопожатие PayPal более или менее по требованию, и когда я это делаю, это 50/50 - иногда я получаю ПОДТВЕРЖДЕНИЕ, а иногда я получаю фатальный сбой - точно так же, как когда я пытаюсь сделать что-либо. в своей песочнице (фатальный сбой).

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

HTTP/1.1 200 OK 
Date: Tue, 29 Sep 2015 02:41:00 GMT 
Server: Apache 

Fatal Failure 

вы также можете вручную создать IPN из их песочницы:

https://developer.paypal.com/cgi-bin/devscr?cmd=_ipn-link-session

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top