test notify_url ipnpb ipn example ejemplo paypal paypal-subscriptions paypal-sandbox

notify_url - paypal simulator payment



Probando la suscripción de Paypal IPN (5)

Solía ​​ser que el período de prueba especificado en días sería tratado por el servidor de prueba como minutos, por lo que se le llamaría cada 3 minutos cuando se especificara ''d3''. Creo que eliminaron esto y no estoy al tanto de ninguna función de reemplazo para probar las suscripciones.

Me gustaría probar las IPN de suscripción de PayPal, tanto las que se reciben cuando se crea una suscripción, como las que se envían más tarde con el próximo pago (como mensual si la suscripción es de $ x por mes).

Sin embargo, preferiría no esperar un mes o un día para recibir la segunda IPN. ¿Hay alguna manera de enviar un IPN más rápido, como cada hora, usando paypal o su sandbox?

En la documentación dice que solo puede especificar años, meses, días y semanas como el período de suscripción.


El soporte y la documentación del desarrollador de PayPal es una vergüenza para ellos. Pero esta limitación particular no es tan debilitante como parece a primera vista.

Para las pruebas, defina su pago recurrente para no tener una prueba gratuita. Cuando crea una nueva suscripción, su servidor recibirá dos mensajes IPN en rápida sucesión, uno para crear la suscripción y el segundo para aplicar un pago. Eso es básicamente todo lo que necesitas probar.

Si tiene una versión de prueba gratuita, obtendrá básicamente el mismo par de mensajes, solo con un período de prueba entre ellos. :)

El primer mensaje ("crear suscripción") tendrá el siguiente aspecto. Tenga en cuenta el ''txn_type'': esa es la información clave para la desambiguación de los dos mensajes:

{ "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"=>"[email protected]", "residence_country"=>"US", "business"=>"[email protected]", "receiver_email"=>"[email protected]", "reattempt"=>"1", "charset"=>"windows-1252","notify_version"=>"2.9","test_ipn"=>"1", }

El segundo mensaje es el más interesante en este caso. Básicamente será el mismo mensaje exacto que recibirá más adelante cuando se aplique el pago recurrente. Se ve algo como esto:

{ "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"=>"[email protected]", "residence_country"=>"US", "receiver_id"=>"your_merchant_id", "business"=>"[email protected]", "receiver_email"=>"[email protected]", "protection_eligibility"=>"Ineligible", "transaction_subject"=>"", "charset"=>"windows-1252","notify_version"=>"2.9","test_ipn"=>"1", }

Entonces puede hacer casi todas sus pruebas sin esperar un día. Para el momento en que pienses que ya lo tienes claro, recibirás muchos mensajes IPN de suscripción al día siguiente.

Además, aquí hay un enlace a la documentación de PayPal para futuras referencias.



Es posible reenviar las IPN de prueba, por lo que solo debe ''comprar'' una suscripción para probarla. Una vez que haya comprado una suscripción, esto es lo que debe hacer:

  1. Inicie sesión en su cuenta de vendedor de sandbox de PayPal.
  2. Seleccione ''Perfil'' => ''Mis preferencias de venta''.
  3. Seleccione ''Preferencias de notificación de pago instantáneo'' de la tercera columna.
  4. Confirme que IPN está habilitado y que la URL es correcta.
  5. Haga clic en el enlace a la página de Historial de IPN .
  6. Desplácese hacia abajo, marque una o más IPN y haga clic en ''Reenviar''.

Después de confirmar, las IPN seleccionadas se reenviarán a la URL que usted especificó. Puede repetir un número ilimitado de veces con la misma IPN (s).

La excelente respuesta de @dondo cubre el resto.


Hola, solo quería darle un grito a Neil porque eso es exactamente lo que estaba buscando y no tengo la reputación suficiente para responder o votar.

Créalo o no Paypal todavía no hace que sea fácil hacer pruebas de suscripción con archivos ipn: /

Entonces, solo porque no lo vi aquí y el OP parecía que tenían la impresión de que solo esperaban dos respuestas posibles del Papa:

Si alguien más tiene problemas, aquí hay algunos otros txn_type que golpean mi ipn mientras hacen las pruebas:

//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

ese último golpeó mi ipn esta mañana contra cada uno de mis suscriptores de prueba. cuando estaba buscando lo que eso significaba, descubrí que también se pueden obtener los siguientes:

recurring_payment_profile_created recurring_payment_profile_cancel recurring_payment_profile_modify recurring_payment recurring_payment_skipped recurring_payment_failed

No sé lo que hice para obtener eso porque las suscripciones y pagos recurrentes son técnicamente diferentes a los ojos de PayPal (las suscripciones posiblemente nunca terminan, pero los pagos recurrentes tienen un tope en los pagos totales que alguien puede hacer por cualquier "suscripción") pero su documentación tampoco siempre es sencillo, así que no sé. Que todavía estoy trabajando en averiguar, ya que este era un botón de suscripción generado por una cuenta de comerciante sandbox, pero lo que sea.

Felices dolores de cabeza :)

ACTUALIZACIÓN: descubrí mi problema justo ahora, así que parece que sé lo que estoy haciendo, lo explicaré ...

Creo que el entorno de sandbox de suscripción de paypal está muriendo lentamente. Me di cuenta el otro día cuando estoy jugando en sandbox.paypal.com que recibo "Fatal Failure" muchas veces. Actualizar la página parece corregir esto la mayoría de las veces, aunque a veces tengo que actualizar algunas veces para que la pantalla vuelva.

Recibo la misma respuesta al tocar mi archivo IPN, lo que explica por qué cada suscripción que tuve suspendió hoy. Gracias a Neil pude volver a enviar la respuesta de IPN y la capturé en un archivo de texto (lol) y luego pulsé el archivo ipn que decía en la respuesta y lo devolví a PayPal (es realmente más complicado que eso, solo estoy haciendo que suene fácil).

En cualquier caso, refrescando la página, puedo iniciar el intercambio de manos de paypal más o menos a pedido y cuando lo hago, es 50/50; a veces recibo VERIFICACIÓN, y a veces obtengo Fatal Failure, justo cuando trato de hacer cualquier cosa. en su sitio sandbox (Fatal Failure).

A continuación se muestra un ejemplo de parte de una respuesta fallida que recibí de ellos ... Obtengo un 200, así que creo que no es el problema de la conectividad con el servidor, pero estoy empezando a ver un patrón con "Fatal Failure" aquí y esto apunta a su fin más que el mío

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