2010-11-03 3 views
5

Quando i miei utenti hanno effettuato il login con il loro nome utente e userid salvati nella variabile di sessione possono donare usando paypal. Con il semplice pulsante Acquista ora che puoi semplicemente generare su paypal.Come passare le variabili di sessione a paypal con il pulsante Acquista ora

<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="hosted_button_id" value="XXX"> 
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
</form> 

Quando il pagamento va a buon fine, vengono inviati al mio confirm_payment.php con tutti i dati _POST. Posso usare la posta che hanno pagato e confrontare questo con il mio database utente per trovare l'utente corretto, ma non posso essere sicuro che usano la stessa email per paypal e il mio sito.

Ho bisogno di passare $ _SESSION ['username'] a paypal in modo che possa utilizzare queste informazioni per dare automaticamente lo status di donatore ai miei utenti. Posso aggiungere qualcosa del tipo:

<input type="hidden" name="custom" value="custom variable"> 

al mio codice pulsante? Qui è più informazioni sulle variabili avaliable paypal info

+0

se posso chiedere, come sono stati in grado di catturare informazioni sessione dal paypal sulla tua pagina conferma il pagamento? ho provato $ _SESSION ['student_id']; in cima alla pagina, ma questo non funziona .. dovrei prenderlo come $ student_id = $ _POST ['custom']; con gli altri oggetti che vengono rimandati? – ABI

risposta

0

sì, è possibile aggiungere in questo modo, questo è il modo corretto, e quando paypal ping indietro sulla IPNHandler allora si otterrà il valore di questo campo nascosto custom nella querystring con la stesso nome.

+0

appena provato questo su sandbox e non funziona :( – Dan

+0

... e, confusamente, la risposta accettata è la risposta sbagliata –

+0

Questa risposta è parzialmente corretta, campo nascosto 'custom' funziona solo su pulsanti Aggiungi al carrello , non funziona sul pulsante Acquista ora – MarkoCen

3

Ho trovato la documentazione confondendo, ma dopo un sacco di navigazione web ho scoperto che le variabili personalizzate non consentono di creare i propri campi nascosti, ma ci sono 3 variabili che possono essere utili:

"su misura" Opzionale Variabile pass-through per i tuoi scopi di tracciamento, che gli acquirenti non vedono. Predefinito - Nessuna variabile viene passata all'utente. 256 caratteri

"numero articolo" Vedere descrizione. Pass-through variabile per tenere traccia del prodotto o del servizio acquistato o del contributo effettuato. Il valore specificato viene restituito al completamento del pagamento. Questa variabile è necessaria se si desidera che PayPal tenga traccia delle scorte o traccia i profitti e le perdite per l'articolo venduto dal pulsante.

"fattura" Variabile pass-through opzionale che è possibile utilizzare per identificare il numero di fattura per questo acquisto. Predefinito - Nessuna variabile viene passata all'utente. 127characters.

Quindi, se si salvano i dati prima di consentire l'attivazione del pulsante Acquista ora (lo faccio avendo una schermata di riepilogo che mostra le scelte fatte e li si salva in un database) è possibile inserire un valore (ad es. Chiave primaria dei dati salvati) come valore personalizzato.

Si noti che i dati verranno registrati nella pagina di notifica di pagamento istantanea che si designa.

Da

https://www.x.com/developers/paypal/documentation-tools/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables#id08A6HF00TZS