¿Algún ejemplo de código abierto del uso de PayPal IPN con suscripciones?

Aquí hay un ejemplo del formulario, donde hay una forma de implementar notificaciones IPN:

  
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

El servidor tiene que procesar la solicitud POST de Paypal. Aquí hay un ejemplo usando el framework Yii2:

Acción del controlador:

   request-> isPost) {
             Yii :: $ app-> end ();
         }
         $ post = Yii :: $ app-> request-> post ();
         \ common \ models \ PaypalTransaction :: saveTransactions ($ post);

         Yii :: $ app-> end ();
     }
 …………
 }
 ?>

Modelo para PaypalTransaction:

   $ userId]);
             if (! isset ($ user-> id)) {
                 // Usuario no encontrado
                 falso retorno;
             }
         }
         // mc_gross - monto total de la transacción
         $ total = número_formato ($ datos ['mc_gross'], 2, '.', '');
         // mc_fee - la tarifa de Paypal por transacción
         $ tarifa =! vacío ($ datos ['mc_fee'])?  número_formato ($ datos ['mc_fee'], 2, '.', ''): 0;
         $ cantidad = intval (número_formato (($ total - $ tarifa), 2, '.', '') * 100);
         // payment_status: estado real de la transacción en el sistema Paypal
         $ status = strtolower ($ data ['payment_status']);

         $ transacción = self :: getTransactionById ($ transacciónId);
         if (vacío ($ transacción-> id)) {
             // Crear nueva transacción
             $ transacción = nueva PaypalTransaction ();
             $ transacción-> setAttributes ([
                 'tid' => $ transacciónId,
                 'user_id' => $ userId,
                 'date' => time (),
                 'monto' => $ monto,
                 'text' => json_encode ($ datos),
                 'status' => $ status,
             ]);
             $ transacción-> save ();
         }
         if ($ status == 'éxito') {
             $ transacción-> execute ();
         }

         volver verdadero;
     }

     / **
      * Obtener transacción por txn_id.
      * @param string $ integer_id txn_id campo de IPN
      * @return PaypalTransaction
      * /
     función estática pública getTransactionById ($ transactionId)
     {
         return self :: find ()
             -> where (['' txn_id '=> $ transacciónId])
             -> uno ();
     }

     / **
      * Se ejecutó la transacción de PayPal.
      * /
     función pública execute ()
     {
         $ this-> status = 'ejecutado';
         $ this-> save (false, ['estado']);
         // Ejecuta la transacción interna
     }
 …………
 }
 ?>

Eche un vistazo a algunos otros consejos valiosos sobre la integración de PayPal en el sitio web: Cómo integrar PayPal como sistema de pago en el sitio web

Sí, por supuesto, hay muchos ejemplos para el IPN de PayPal, más suscripciones disponibles. Muchos de ellos están publicados en GitHub para ser utilizados libremente.

Aquí hay una descripción general decente de SO: Integración de Paypal IPN con MySQL

Este es un buen tutorial también, que las personas en los comentarios parecen decir que funciona bien: Integrar PayPal con PHP e IPN

¡Buena suerte!