2010-01-19 21 views
7

He escrito un sistema de suscripción simple de PayPal, donde un usuario puede ingresar su información, hacer clic en el botón e iniciar una suscripción. Me pregunto cómo puedo saber cuándo el usuario cancela la suscripción. He visto $ txn_type subscr_cancel pero no tengo idea de cómo usar eso, ya que PayPal no llama a mi controlador de nuevo.Detección de cancelación de suscripción Paypal

Gracias!

Respuesta

22

¿Está utilizando IPN? Entonces, cuando se cancela una suscripción paypal devuelve $_POST['txn_type'] = subscr_cancel junto con subscr_date = fecha de suscripción, subscr_id = ID de suscripción, etc. ahora puede procesar la solicitud de cancelación para la identificación de suscripción devuelta. similarmente obtienes $_POST['txn_type'] = subscr_eot cuando finaliza la suscripción. Una vez que haya configurado la URL de IPN en la configuración de PayPal, siempre llamará a su controlador de ipn. caso de uso del interruptor para manejar diferentes peticiones como tal,

switch ($_POST['txn_type']) { 
    case 'cart': 
      //for products without subscription 
    break; 
    case 'subscr_payment': 
     //subscription payment recieved 
     break; 

    case 'subscr_signup': 
     //subscription bought payment pending 
     break; 

    case 'subscr_eot': 
     //subscription end of term 
     break; 

    case 'subscr_cancel': 
     //subscription canceled 
     break; 
} 
+1

¡Justo lo que necesitaba esta noche! No sé por qué no dejan esto lo suficientemente claro en los documentos. – Volomike

+0

¡Gracias por esto! Realmente simple – Jimbo

+0

Acabo de enterarme de esto. Esto es súper útil (he estado luchando con esto por un tiempo). ¡Gracias! – MillerMedia

6

El IPN con un tipo de 'subscr_cancel' se envía cuando el usuario realmente cancela la suscripción. Esto no debe utilizarse para cancelar la suscripción, ya que esto puede suceder en cualquier momento durante el período de suscripción.

El IPN con el tipo 'subscr_eot' se debe utilizar para cancelar la suscripción. Esto se envía cuando el período de suscripción del usuario ha expirado.

+0

Gracias ... esto no está claro en la documentación. – Romias

Cuestiones relacionadas