Domanda

Due domanda a caso mentre cerco di integerate Paypal IPN nel mio Codeigniter web app basata.

1) Sono queste due righe lo stesso?

$data['pp_info'] = $this->input->post();

$data['pp_info'] = $_POST;

2) Un utente si impegna a pagare un canone mensile ricorrente di utilizzare il servizio utilizzando paypal - primo pagamento siete a conoscenza che hanno pagato come si ottiene dati restituiti da PayPal. Ma come si fa a tenere traccia se gli utenti hanno pagato per i mesi successivi? Come fai a sapere che l'utente non ha cancellato dal proprio conto PayPal?

Grazie a tutti per tutto l'aiuto

È stato utile?

Soluzione

1) Sì, ma è necessario utilizzare il primo, in caso CI apporta modifiche al metodo in futuro (filtri di sicurezza, ecc).

2) PayPal ha un URL è necessario chiamare ogni poche ore che dice "questa carta ragazzi è scaduto" e "questo altri ragazzi pagamento ricorrente è stato elaborato". L'URL sarà nella vostra PayPal thingy pannello di controllo.

Altri suggerimenti

1) Fare attenzione - per la sicurezza che si desidera utilizzare il post di CodeIgniter () gestore, ma nota che, mentre CI standardizza line-rendimenti a \ n, PayPal si aspetta \ r \ n. Quindi, se non stai attento, PayPal rifiuterà input multi-line come non valido. Per ovviare a questo nel mio PayPal IPN biblioteca faccio questo:

    foreach (array_keys($_POST) as $field)
    {
            $value = $this->input->post($field);
            $ipnData[$field] = str_replace("\n", "\r\n", $value);
    }

2) Se stai usando IPN per i pagamenti ricorrenti, allora PayPal invierà notifiche di aggiornamenti di livello di sottoscrizione di un utente al tuo URL IPN. Si desidera guardare la variabile txn_type - I valori validi includono subscr_signup, subscr_failed e subscr_eot (end-of-termine). Si vuole verificare la presenza di questi valori e gestirli nella vostra app.

1) No non sono la stessa cosa.

Si dovrebbe normalmente usare $ this-> input-> post (); perché è una breve mano che permette di verificare se questo indice di array POST isset.

se nulla è post alla tua pagina e si chiama $ _POST [ 'mydata'] si otterrà un errore perché l'indice di tale matrice non esiste. per ovviare a questo si potrebbe fare un "if (isset ($ _ POST [ 'mydata']))" controllare ma CI già che fa per voi.

e come quello che ha detto Coronatus si ottiene le chicche CI addizionali

2) non chiamato paypal ogni poche ore, come quello che ha detto Alex Dean. utilizzare IPN in modo paypal farà una "spinta" al server ogni volta che succede qualcosa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top