2009-02-19 7 views
9

Volevo utilizzare il servizio IPN di Paypal per verificare i pagamenti per un addebito di abbonamento ricorrente per il mio sito web. Come leghi le conferme IPN a un utente nel tuo sito?Come si collega una conferma IPN Paypal a un utente?

Il messaggio di conferma IPN ha un nome, e-mail, ID paypal, ID pagamento ricorrente, ma sembra non fornire un identificatore univoco poiché non so da dove proviene l'ID paypal o l'ID di pagamento ricorrente e potrebbe non essere banale in modo univoco abbinare il nome/e-mail che un utente ha sul proprio account paypal (o inserito lì) con il nome/e-mail che ho per loro sul mio sito (ci possono essere molti John Smith e la persona può scegliere di utilizzare un email diversa)

1) Quando invio la richiesta di pagamento iniziale a Paypal, posso allegare un UUID univoco nell'URL Chiedo loro di rimandarmi, quindi se salvi quell'ID univoco per quell'utente posso abbinare la conferma di pagamento all'utente che l'ha avviata. Lo sto rendendo più difficile di così? C'è un modo più semplice?

2) Inoltre, per un addebito periodico/abbonamento, paypal utilizza sempre l'URL che ho specificato con l'inizio del pagamento iniziale? Qualcuno ha esperienza pratica usando i pagamenti Paypal ricorrenti con IPN, riutilizza quell'URL univoco? O devo associare l'ID Paypal con l'utente dopo che è stato ricevuto il primo pagamento ricorrente?

risposta

2

Recentemente ho anche impostato alcuni pagamenti ricorrenti con Paypal.

In realtà volevo che le persone si registrassero come membri dopo il pagando l'abbonamento, se lo volevano. Come dover iscriversi come membro potrebbe aggiungere qualche attrito al processo di vendita. Quindi non invio alcuna informazione utente insieme al pulsante Iscriviti.

Quello che il mio script IPN fa è generare un codice di attivazione univoco legato al subscriptionID Paypal nella tabella Activations, quindi invia questo codice a chiunque abbia pagato per l'abbonamento, con le istruzioni su come attivarlo.

Al punto di attivazione, è necessario registrarsi o effettuare il login. A questo punto, l'ID utente viene aggiunto alla riga pertinente nella tabella Attivazioni.

Quando la notifica IPN EndOfTerm arriva nello script IPN, cerca l'ID utente dalla tabella Activations in base al SubscriberID indicato nell'IPN. Quindi posso fare tutto ciò che devo fare a quell'utente per disabilitare il loro abbonamento.

L'URL dello script IPN rimane sempre lo stesso.

+0

buona soluzione anche. – Tim

+0

A quali codici di stato txn_type reagisci? Mi sto divertendo a rispondere a questa domanda. http://stackoverflow.com/questions/13855287/parsing-paypal-subscription-ran-out – Volomike

0

1) È possibile inviare un parametro 'item_number' con la configurazione iniziale della sottoscrizione, che verrà restituita all'utente. Suggerirei di incorporare un token di identificazione in esso.

2) Se si intende il parametro 'return', no, è per l'invio dell'utente al termine della configurazione della sottoscrizione. Il rinnovo è automatico e non esegue il "ping" di quella pagina.

+0

Non ho voti, ma penso che sia giusto. – Tim

3

Il collegamento di dati univoci alla richiesta di pagamento è praticamente il modo accettato per farlo.

Non ho esperienza con addebiti ricorrenti.

+0

Non ho voti altrimenti vorrei +1 – Tim

+0

Sai come propagare alcuni dati insieme ad altri dati PayPal, nella richiesta iniziale PayPal, generata da un clic di un pulsante PayPal "Paga adesso"? –

+1

@VladimirDespotovic C'è un campo in più nel pulsante "Paga adesso" e nell'API di richiesta di pagamento dove puoi aggiungere dati personalizzati. I dati personalizzati ti vengono rispediti in * ogni * risposta relativa alla transazione. – greyfade

0

1) Si desidera utilizzare il parametro item_number. Imposta questo nel tuo modulo HTML mostrato al cliente, e ti verrà restituito dall'IPN paypal, in modo da poter inserire un ID riga del database qui e usarlo per abbinare la persona giusta in seguito.