2012-07-24 9 views
11

Così ho implementato l'IPN paypal nel mio sito e sono nel mezzo del processo di lavoro . Ora voglio usare variabile più di 1 su misura in forma pp attualmente sto usando questo soloPaypal IPN elabora più di una variabile personalizzata

<input type="hidden" name="custom" value="<?php echo $user_id; ?>"> 

quindi so la variabile con il nome di 'custom' è permesso. Voglio sapere se Posso passare più variabili in modo da poter filtrare i pagamenti in base ai loro criteri. Così, se per esempio la spedizione è più di $ 0.00 a impostare una variabile "shipping_cost" come questo:

<input type="hidden" name="shipping_cost" value="<?php echo $cost; ?>"> 

o per altri scopi. È permesso? O paypal ha una lista già definita di variabili consentite che possiamo usare? Voglio davvero risolvere questo problema perché non c'è sempre un tipo di pagamento che possiamo elaborare ... Grazie ragazzi.

risposta

4

Come io (e molti altri immagino) sto affrontando anche questo problema, ho pensato di condividere alcune soluzioni che ho trovato.

This one generato nella comunità PayPal, suggerisce l'uso delle variabili di opzione che sembrano offrire un'implementazione di coppie chiave/valore per facilitare fino a 99 vars (per la cronaca non l'ho ancora provato).

La soluzione più comunemente accettata (che io preferisco anche) è quella di aggiungere tutti i dati a un record DB, quindi utilizzare la variabile personalizzata per memorizzare l'ID del record, che può ovviamente essere utilizzato in seguito (ad esempio tramite IPN) per recupera i tuoi dati

3

PayPal definisce i campi che è possibile utilizzare here. Qualsiasi altro campo sarà ignorato.

C'è un campo "spedizione" definito e PayPal utilizzerà il valore di quel campo per addebitare un importo aggiuntivo per la spedizione. Sarai anche in grado di ottenere quel valore dai dati IPN o PDT.

Se è necessario passare altri valori, è possibile considerare il passaggio di una stringa formattata in stile stringa di query (var1 = valore1 & var2 = valore2 ...) nel campo 'personalizzato'. Si noti che il numero massimo di caratteri consentiti in questo campo è 256. Si analizzerebbe questo quando si ottiene la risposta IPN o PDT.

Se la dimensione del campo personalizzato è troppo limitante, è possibile provare ciò che ho descritto in un altro answer here.

+0

Davvero deludente. Ho dovuto giocare con altre variabili consentite di IP paypal per raggiungere la mia intenzione. Ho usato il nome e la descrizione del prodotto. Grazie per la tua risposta. – inrob

+1

Sei sicuro di non poter usare solo "custom2"? Sto esaminando un codice legacy e ho visto un modulo con "custom" e "custom2" come campi inviati a Paypal. – CMCDragonkai

8

questo modo è possibile passare più parametri

<input type="hidden" name="custom" value="variable1=234&var2=summa&etc=xyz"/> 

utilizzare quello superiore sul modulo paypal.

e elaborare tramite il seguente codice.

parse_str($_POST['custom'],$_MYVAR); 

echo $_MYVAR['variable1']; 
echo $_MYVAR['var2']; 
echo $_MYVAR['etc']; 

spero che questo ti aiuti.

+0

Bel metodo, grazie. – inrob

+0

Puoi anche inviare i tuoi dati personalizzati come JSON (convertiti dal tipo di dati PHP usando 'json_encode ($ data)') e poi recuperarli usando 'json_decode ($ _ POST ['custom'])'. –

+0

Questa è un'ottima soluzione. Grazie +1 –

Problemi correlati