Ciao! Oggi combineremo Paypal con PHP per consentire la facile elaborazione dei pagamenti sul tuo sito web.
Per questo tutorial avrai bisogno di un Conto PayPal Premier e un sito web online. Inizia andando su paypal.com e fai clic su "registrazione" nella parte superiore della pagina.
Clic Iniziare sotto il titolo Premier; verrai reindirizzato a un modulo di iscrizione. Si prega di compilare tutte le informazioni necessarie. Quando il tuo account è stato creato, accedi e vai al passaggio 2.
In questo passo, consentiremo Notifica immediata del pagamento (IPN), quindi, mentre sei loggato, per favore clicca Profilo e quindi scegliere Notifica immediata del pagamento
Ora nella schermata successiva vedrai che IPN è impostato su "off"; clic "Modificare" per cambiarlo.
All'inizio di questo tutorial, ho detto che avresti bisogno di un sito web online. Perché? Bene, chiediamo a PayPal di inviarci i dati al termine del pagamento. PayPal non può raggiungere i siti Web locali ospitati se non hai configurato correttamente tutte le impostazioni. (Ciò comporta l'apertura di porte sul router). Quindi, inserirò l'url nel mio script di convalida, ad esempio http://www.yourdomain.com/PayPal/ipn.php. PayPal invierà quindi una notifica al mio server, all'URL che ho specificato.
Ok, ora abbiamo bisogno di una pagina HTML semplice e di base in cui il visitatore possa acquistare l'accesso all'area di download.
Non ho intenzione di spiegare tutto l'HTML perché penso che dovresti conoscere le basi dell'HTML prima di iniziare con PHP.
index.php - Una semplice pagina HTML con un foglio di stile.
Nettuts.com | Acquista l'accesso all'area download Accesso d'acquisto
Fare clic sul pulsante in basso per ricevere i dettagli di accesso per l'area di download.
Hai già un account? Accedi qui.
css / style.css - Un semplice foglio di stile per la nostra pagina HTML.
body background: # 2D2D2D; / * Imposta colore sfondo sito web * / carattere: 11px 'Verdana'; / * Imposta la dimensione del carattere del sito Web e il tipo di carattere * / #wrap margine: 0 auto; / * Centro il nostro contenuto * / larghezza: 500px; / * Imposta la larghezza per i nostri contenuti * / background: #FFF; / * Imposta colore sfondo contenuto * / riempimento: 10px; / * Imposta riempimento per contenuto * / bordo: 1px solido # 000; / * Aggiungi un bordo attorno al contenuto * /
Dobbiamo creare un pulsante di acquisto, quindi per favore clicca Servizi mercantili, e quindi sceglierePagamenti su sito web standard
Puoi scegliere tre tipi di pulsanti, Vendi singoli articoli, Vendi più oggetti e, Sottoscrizione. Ora in questo tutorial creeremo un singolo oggetto. Quando qualcuno acquista questo singolo oggetto, in questo caso accede ad un'area di download. Una volta che il pagamento è stato convalidato, verrà inviata un'e-mail con i dettagli.
Inseriamo alcune informazioni per il nostro pulsante di acquisto; puoi lasciare il resto così com'è.
Quando hai finito di compilare ogni sezione, genera il codice. Copia questo codice negli Appunti, quindi incollalo all'internoindex.php - dove ho aggiunto il commento nella pagina html. Si prega di rivedere il passaggio 3, se necessario.
Questo dovrebbe funzionare perfettamente. Gli utenti possono fare clic sul pulsante e completare l'acquisto.
Per prima cosa, crea ipn.php in modo che possiamo iniziare a scrivere. Utilizzeremo un piccolo snippet che ho creato da uno snippet più grande che puoi ottenere dal sito Web di Paypal.
Si prega di notare che non vi è alcun motivo per imparare questo codice fuori di testa! I frammenti sono a portata di mano e risparmiano tempo. Lo romperò sotto.
$ valore) $ valore = urlencode (stripslashes (valore $)); $ req. = "& $ chiave = $ valore"; // invia di nuovo al sistema PayPal per convalidare $ header = "POST / cgi-bin / webscr HTTP / 1.0 \ r \ n"; $ header. = "Content-Type: application / x-www-form-urlencoded \ r \ n"; $ header. = "Content-Length:". strlen ($ req). "\ R \ n \ r \ n"; $ fp = fsockopen ('ssl: //www.paypal.com', 443, $ errno, $ errstr, 30); if (! $ fp) // HTTP ERROR else fputs ($ fp, $ header. $ req); while (! feof ($ fp)) $ res = fgets ($ fp, 1024); if (strcmp ($ res, "VERIFIED") == 0) // PAGAMENTO VALIDATO E VERIFICATO! else if (strcmp ($ res, "INVALID") == 0) // PAYMENT INVALID & INVESTIGATE MANUALY! fclose ($ fp); ?>
Inserisci le credenziali corrette per il tuo database in modo da poter inserire i dati nel passaggio successivo.
Dati POSTS di PayPal per l'URL che abbiamo specificato. In questo esempio abbiamo solo bisogno dell'indirizzo email dell'acquirente, in modo che possiamo inviargli le sue informazioni di accesso. Il codice sopra riportato legge i dati inviati da PayPal e restituisce le informazioni a PayPal. Ho aggiunto due commenti in cui il codice dovrebbe venire se è stato convalidato. Inoltre, ho anche aggiunto un commento che specifica cosa dovrebbe essere fatto se non è convalidato.
Ora ci concentreremo su cosa dovrebbe accadere se il pagamento è verificato. Per prima cosa, abbiamo bisogno di costruire una tabella MySQL in cui archiviamo le informazioni degli utenti. Semplicemente uno con un campo id, email e password.
Successivamente, dobbiamo inserire i nostri dettagli sulla tabella; abbiamo bisogno di un ID con una selezione di chiave primaria e dovrebbe incrementare automaticamente; prossimo a e-mail e parola d'ordine campo.
Per quelli di voi non hanno il tempo di inserire tutte queste informazioni, sotto c'è un piccolo dump di MySQL per ricreare la tabella.
CREATE TABLE 'users' ('id' int (10) NOT NULL auto_increment, 'email' varchar (50) NOT NULL, 'password' varchar (32) NOT NULL, PRIMARY KEY ('id')) ENGINE = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1;
Aperto ipn.php ancora. Scriveremo il seguente codice sotto la riga "// PAYMET VALIDATED".
Il nostro primo passo è recuperare l'indirizzo email dell'acquirente; PayPal invia tutte queste informazioni a ipn.php.
// PAGAMENTO VALIDATO E VERIFICATO! $ email = $ _POST ['payer_email'];
Dobbiamo creare un'ultima variabile, che è la password che genereremo usando php.
// PAGAMENTO VALIDATO E VERIFICATO! $ email = $ _POST ['payer_email']; $ password = mt_rand (1000, 9999);
Come puoi vedere, abbiamo utilizzato mt_rand per generare una password casuale, in questo caso un valore numerico compreso tra 1000 e 9999. Successivamente, dobbiamo inserire questi dati nel nostro database. Per farlo, utilizzeremo la query di inserimento mysql.
// PAGAMENTO VALIDATO E VERIFICATO! $ email = $ _POST ['payer_email']; $ password = mt_rand (1000, 9999); mysql_query ("INSERT INTO (email, password) VALUES ('". mysql_escape_string ($ email). "', '" .md5 ($ password). "')") o die (mysql_error ());
Qui diciamo al nostro script di inserire l'email e la password nel nostro database. Ho aggiunto un mysql_escape_string per garantire che l'iniezione di mysql non sia possibile. Ho anche aggiunto la funzione md5 alla nostra password in modo che venga memorizzata come un hash di 32 caratteri. Ora l'account è stato creato; passiamo al prossimo passaggio.
Abbiamo bisogno di scrivere un codice che invierà via e-mail le informazioni di accesso all'acquirente. Per fare ciò, useremo la funzione di posta php.
// PAGAMENTO VALIDATO E VERIFICATO! $ email = $ _POST ['payer_email']; $ password = mt_rand (1000, 9999); mysql_query ("INSERT INTO (email, password) VALUES ('". mysql_escape_string ($ email). "', '" .md5 ($ password). "')") o die (mysql_error ()); $ a = $ email; $ subject = 'Area download | Credenziali di accesso'; $ message = 'Grazie per il tuo acquisto Informazioni sul tuo account ------------------------- Email:'. $ email. ' Password: ". $ Password". ------------------------- Ora puoi accedere a http://yourdomain.com/PayPal/ '; $ headers = 'Da: [email protected]'. "\ R \ n"; posta ($ a, $ soggetto, $ messaggio, $ intestazioni);
Interrompiamo questa funzione email. Usiamo la variabile $ email per ottenere l'indirizzo email dell'utente e assegnarlo alla variabile $ to.
La variabile $ subject è il titolo / soggetto che vedrai nel tuo programma di posta elettronica. Dopo questo, abbiamo il nostro messaggio, che conterrà una nota di ringraziamento e le informazioni sull'account. Le variabili $ email e $ password nel messaggio cambieranno con le informazioni corrette una volta che l'e-mail è stata inviata. Abbiamo anche impostato un'intestazione personalizzata. Quando l'utente riceve l'e-mail, l'indirizzo "da" verrà visualizzato come "[email protected]".
Potrebbe verificarsi un pagamento non valido a causa di una frode, ma anche a causa di un problema con PayPal; quindi vogliamo essere sicuri che il nostro cliente ottenga ciò per cui ha pagato.
Quindi invieremo un'email all'amministratore del nostro sito, dicendogli di contattare l'acquirente per ulteriori informazioni. Basta copiare il codice e-mail che abbiamo usato prima e quindi apportare le modifiche elencate di seguito.
// PAYMENT INVALID & INVESTIGATE MANUALY! $ a = '[email protected]'; $ subject = 'Area download | Pagamento non valido '; $ message = 'Gentile Amministratore, è stato effettuato un pagamento ma è contrassegnato come NON VALIDO. Si prega di verificare il pagamento manuale e contattare l'acquirente. Email dell'acquirente: '. $ Email. "; $ Headers =' Da: [email protected] '." \ R \ n "; mail ($ a, $ subject, $ message, $ headers);
Questo codice è quasi lo stesso di sopra, solo abbiamo apportato alcune modifiche al destinatario, all'oggetto e al messaggio.
Questo è il nostro ultimo passaggio, in cui creiamo un semplice modulo di accesso per i nostri acquirenti. Crea un nuovo file php e nominalo login.php. Useremo la stessa pagina HTML usata per index.php, solo apporteremo alcune modifiche al contenuto della pagina e, naturalmente, aggiungeremo un po 'di stile al nostro modulo di accesso.
login.php - Questa è la pagina in cui i nostri acquirenti possono accedere.
Nettuts.com | Accesso Accesso
Inserisci le tue credenziali di accesso per accedere all'area di download
Aggiungere a style.css
label display: block; / * Assicurati che l'etichetta sia su una sola riga * / margine: 3px; / * Crea una certa distanza dai campi di input * / input padding: 3px; / * Dare al testo più spazio * / bordo: 1px grigio fisso; / * Aggiungi un bordo attorno ai campi di input * / margin: 3px; / * Crea una certa distanza dalle etichette * /
Ora che abbiamo creato il nostro modulo, dobbiamo verificare se le credenziali di accesso sono corrette. Ho apportato alcune modifiche a login.php così possiamo iniziare:
Nettuts.com | Accesso Accesso
Inserisci le tue credenziali di accesso per accedere all'area di download
Il codice sopra controllerà se email e password sono entrambe pubblicate. Se è vero, possiamo verificare le credenziali. In caso contrario, restituiamo un errore. Il prossimo codice che andremo a scrivere verrà inserito sotto "// Verifica". Per prima cosa dobbiamo trasformare le variabili del post in variabili locali.
$ email = mysql_escape_string ($ _ POST ['email']); $ password = md5 ($ _ POST ['password']);
Ho aggiunto una funzione di escape per prevenire l'iniezione di mysql e ho trasformato la password registrata in un hash MD5. Perché abbiamo fatto questo nel nostro database, dobbiamo anche hash la password dell'utente per confrontare correttamente i due valori. Ora è il momento di verificare i dati.
$ email = mysql_escape_string ($ _ POST ['email']); $ password = md5 ($ _ POST ['password']); $ gUser = mysql_query ("SELECT * FROM users WHERE. $ email." "AND. $ password." "LIMIT 1") o die (mysql_error ()); $ verify = mysql_num_rows ($ gUser); if ($ verify> 0) echo 'Login completato
Clicca qui per scaricare il nostro programma
'; else echo 'Accesso fallito
Spiacenti, le tue credenziali di accesso non sono corrette. ';
Come puoi vedere, stiamo eseguendo una query mysql e stiamo selezionando tutti i dati dalla nostra tabella utenti, ma solo la riga in cui l'indirizzo email dell'utente corrisponde a quello del database.
mysql_num_rows controlla se è stata trovata una corrispondenza: 1 = true; 0 = falso.
E questa è la fine di questo tutorial. Spero vi sia piaciuto, e sentitevi liberi di lasciare un commento con i vostri pensieri. Hai qualche consiglio che potrebbe aiutare?