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:
- Cómo tener un prelanzamiento exitoso para un negocio de caja de suscripción
- ¿Qué cajas de suscripción te gustaría ver por ahí?
- ¿Debo iniciar los servicios de caja de suscripción a través de sitios como Cratejoy o Subbly?
- ¿Es necesario obtener una suscripción premium en LinkedIn para aprovechar al máximo el sitio?
- ¿Vale la pena suscribirse a Amazon Kindle Unlimited en India?
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