2012-01-31 6 views
6

Sto utilizzando la sandbox PayPal per fare un pulsante di iscrizione e poi quando ottengo la risposta IPN per un abbonamento o una cancellazione dell'abbonamento $ _POST ['txn_id'] non è mai impostato.

Quindi non so come identificare le transazioni di accettare solo quelle uniche

Grazie!

EDIT: per esempio tutte le informazioni che ho in POST per un subscr_cancel sono: amount1, amount3, address_status, subscr_date, payer_id, address_street, mc_amount1, mc_amount3, charset, address_zip, first_name, ritentare, address_country_code, address_name, otify_version subscr_id personalizzato payer_status affari address_country address_city verify_sign PAYER_EMAIL btn_id cognome address_state receiver_email ricorrenti txn_type item_name mc_currency residence_country test_ipn period1 period3 correlation_id

+0

Puoi confermare che stai ricevendo effettivamente un IPN per il tuo URL IPN? Ad esempio, ci sono altre variabili '$ _POST' di PayPal impostate? – Josh

+0

Sì, ho ricevuto tutti gli altri dati in POST, anche il txn_type, quindi è strano che io non abbia il txn_id –

+0

Grazie per la modifica. Questo aiuta molto. La mia spiegazione qui sotto dovrebbe chiarire il tuo problema. – Josh

risposta

6

Secondo Table 2. Summary of subscription variables:

Per le variabili di sottoscrizione, l'ID di transazione (txn_id) è disponibile solo per USD Pagamento e multi-valuta i tipi di transazioni di pagamento (txn_type).

Come previsto, PayPal non invierà la txn_id al IPN per il tipo di transazione, subscr_cancel, e inviare solo txn_id se il tipo di transazione è subscr_payment.

Per ulteriori spiegazioni su quali variabili vengono inviate all'URL IPN in base alla transazione, consultare IPN and PDT Variables.

+0

Grazie! Ok, quindi non c'è modo di identificare una transazione di tipo subscr_cancel per essere sicuro che sia univoco? –

+0

Se si dispone del proprio metodo di identificazione univoca delle transazioni o se si dispone dell'ID transazione dalla transazione di pagamento, è possibile inviare le proprie variabili a PayPal, che ritorna all'IPN. - Puoi usare "fattura" o "personalizzata" e li vedrai nel tuo IPN. – Josh

+0

Ok grazie mille per il vostro aiuto;) –

0

Hai controllato $_REQUEST['txn_id'] in quanto questo può essere inviato al server tramite GET.

+0

Sì, l'ho appena testato in questo momento $ _GET ['txn_id'] e $ _REQUEST ['txn_id'] e non sono impostati –