2015-02-13 24 views
6

Devo simulare l'IPN quando un pagamento ricorrente non riesce. La mia applicazione può quindi creare creare fatture in sospeso e inviarlo ai clienti.Simula IPN per recurring_payment_skipped da developer.sandbox.com

Ho cercato e trovato che avrei bisogno di configurazione IPN che gestirà sotto txn_type

  • recurring_payment_skipped
  • recurring_payment_failed

saranno questi due essere sufficiente?

Inoltre, recentemente ha fornito un nuovo strumento denominato IPN Simulator in cui è possibile inviare un esempio di IPN a un URL. Supporta solo sotto txn_type s

  • web_accept (eCheck in attesa, eCheck-declinato, eCheck-complete)
  • cart (Express Checkout, carrello Cassa)
  • web_accept (Web Accept, rimborso)

    e così via. Ma nessun recurring_payment_skipped o recurring_payment_failed

Dove posso simulare quelli?

Please help me out.

+0

appena trovato questo post http://stackoverflow.com/questions/ 18823527/send-PayPal-ricorrenti-pagamenti-comandi-con-IPN-simulatore? RQ = 1. Immagino che PayPal non fornisca un simulatore IPN per quei tipi di transazione. – Hussain

+0

È possibile eseguire regolarmente uno script con cron che verifica i pagamenti ricorrenti che non sono stati pagati quando dovrebbero avere e simulare un pagamento non riuscito da lì? – developerbmw

risposta

0

Si è corretti, al momento, il simulatore IPN non supporta il tipo di transazione per gli abbonamenti. Ieri, 29 Maggio 2015, ho messo in una richiesta di questo a PayPal-PHP-SDK github

https://github.com/paypal/PayPal-PHP-SDK/issues/316

C'è una soluzione,

Per IPN Simulator, ho scelto un certo tipo di transazione come " Cassa di pagamento ". Quindi, nel campo "personalizzato" inserisco "sim".

Nel mio listener IPN, ho un blocco di codice che controlla se il campo "personalizzato" è impostato su "sim", se lo è, quindi ho codice fisso nei valori di test .

// if data is coming from the IPN Simulator then 
    // just hard code the data in here 
    if ($rawData[custom] == "sim") { 
     $rawData[txn_type] = "recurring_payment";   
     $rawData[recurring_payment_id] = "I-ABCDEF123456"; 
    } 

Se "su misura" non è impostato su "sim", allora il vostro ascoltatore IPN aggira questo blocco e funzioni codice normalmente. Nota: rawData è una matrice per contenere i dati non elaborati. All'inizio del listener IPN, ottengo tutti i dati grezzi e li metto in un array.

Questo vi permetterà di ottenere lo script IPN di lavoro, e, allo stesso tempo, non interferisce con altri dati reali IPN in arrivo.