2009-06-30 8 views
51

Aggiungo abbonamenti a un sito tramite Paypal IPN che funziona molto bene, posso creare con successo un nuovo abbonamento e verificarlo. L'abbonamento ha una prova gratuita di due settimane. Sfortunatamente la guida era un po 'vaga sugli stati delle sottoscrizioni.Abbonamenti con Paypal IPN

Al momento, l'account utente ottiene lo stato sottoscritto quando subscr_signup o subscr_payment viene ricevuto e rimosso quando viene ricevuto subscr_cancel o subscr_failed. Credo che sia corretto, ma è meglio accertarsene.

Anche cosa è subscr_eot? la guida IPN lo descrive come "termine di scadenza dell'abbonamento". Questo viene attivato dopo che il periodo di prova è finito?

risposta

75

subscr_eot viene inviato quando l'ultimo intervallo pagato dell'utente è scaduto. subscr_cancel viene inviato non appena l'utilizzo annulla l'abbonamento, ad esempio:

L'utente si iscrive al giorno 1 per un abbonamento che viene fatturato una volta al mese. subscr_signup viene inviato immediatamente, subscr_payment viene inviato non appena il pagamento passa (di solito immediatamente pure).

Il giorno 13 l'utente annulla. subscr_cancel viene inviato immediatamente, anche se l'utente ha pagato tecnicamente fino al giorno 30. L'annullamento a questo punto dipende da voi.

Il giorno 30, viene inviato subscr_eot - l'utente ha annullato, e questo è il giorno in cui il suo ultimo pagamento è stato pagato fino a.

Non cambia molto con abbonamenti di prova - se un utente annulla prima di un abbonamento di prova è scaduto, subscr_cancel viene inviato immediatamente, e subscr_eot viene inviato alla fine del processo.

+0

Non sono sicuro che sia necessariamente vero. Penso che dipenda dal tipo di abbonamento che hanno, iniziando con I/S ecc. – ajbeaven

+0

Ho sentito che subscr_ * è la vecchia maniera. È vero? Ad ogni modo, sto cercando di capire questi valori di txn_type. http://stackoverflow.com/questions/13855287/parsing-paypal-subscription-ran-out – Volomike

+2

Solo per aggiungere a questo - afaik - se non si stava facendo una prova gratuita, quindi 'subscr_signup' viene inviato solo se il primo il pagamento è andato a buon fine pure. Quindi puoi ascoltare solo subscr_signup e subscr_eot per attivare/disattivare le iscrizioni. – Webcognoscere

34

Inoltre, un dettaglio interessante è come subscr_eot funziona con subscr_failed.

Sembra che subscr_eot arrivi dopo il FINALEsubscr_failed. Quindi, se nel tuo account si imposta per ritentare automaticamente i pagamenti non riusciti per 3 volte, allora dovrebbe andare in questo modo:

primo fallito pagamento => subscr_failed seconda fallito pagamento => subscr_failed terzo mancato pagamento => subscr_failed e subscr_eot

in modo sostanzialmente nel codice è possibile impostare subscr_failed per innescare una e-mail come

utente Hi, si prega di prendere momento per verificare i dati di pagamento, potrebbe essere necessario aggiornare il credito c data di scadenza , ecc. Hai ancora accesso, , riproveremo tra qualche giorno.

e configurazione subscr_eot per trasformare in realtà il loro abbonamento fuori e innescare una e-mail come

Siamo spiacenti, ma ancora havent' ottenuto il pagamento e hanno preso il vostro profilo basso.È ancora possibile riattivarlo accedendo e aggiornare i dati di pagamento

Fondamentalmente questo è il modo in cui "bella" di fare in modo i clienti hanno un periodo di grazia, e il loro account non è spenta improvvisamente solo a causa di una carta di credito scaduta o qualcosa del genere.

+0

I pagamenti falliti e l'invio di notifiche subscr_eot continuano a funzionare come nel 2009? – ajbeaven

+0

@ajbeaven: Sembrerebbe che da quando il post è stato aggiornato ad aprile, l'informazione è ancora attuale. – Brett

+0

@BrainArmstrong dopo che subscr_eot è terminato, chiediamo all'utente di registrarsi nuovamente per l'abbonamento o modificare l'abbonamento esistente? così sarebbe subscr_modify o subscr_signup dopo la fine del termine. o per gli utenti chiusi? – Basit

4

Dipende dall'account se è nuovo o meno se viene inviato subscr_eot, che è un po 'al di là di me?

Non ho ancora trovato il modo corretto di gestire gli abbonamenti. Il calcolo delle date sul server potrebbe andare storto molto velocemente se c'è un ritardo nel pagamento.

9

La discussione inviata da Chris è stata aggiornata di recente.

A volte nel 2010, PayPal ha smesso di usare subscr_eot quando un utente ha cancellato il proprio account. Dopo un numero di reclami, hanno ripristinato questo, ma ci sono voluti 6 mesi per farlo. Tutto ciò significa che puoi ancora una volta gestire le tue notifiche di iscrizione come descritto da Peter nella risposta accettata.

Da un rappresentante PayPal:

subscr_cancel significa che il profilo è cancellato e non ci sarà in futuro pagamenti. Tuttavia, se l'acquirente ha già pagato per il ciclo di fatturazione corrente in quanto è addebitato in anticipo, , allora è possibile utilizzare subscr_eot per terminare il profilo.

Ancora non si sa cosa succede in caso di più tentativi di pagamento non riusciti, tuttavia. La documentazione di PayPal al momento è terribile.

+3

Sicuro. C'è pochissima documentazione autorevole sulle cose relative all'API/IPN, e quello che c'è di solito è contraddetto dalla * altra * documentazione, o quel bastardo chiamato realtà. – Ashe

+0

sì, come quel giorno che l'IP di _payment è successo prima di _signup ipn: D – Sebas