Utilizarea Notificării de plată instant PayPal cu PHP

Bună! Astăzi vom combina Paypal cu PHP pentru a permite procesarea ușoară a plăților pe site-ul dvs. Web.


Produs finalizat: Previzualizare

Pasul 1 - Crearea unui cont PayPal

Pentru acest tutorial veti avea nevoie de a Contul Premier PayPal si un site-ul online. Începeți prin a merge la paypal.com și faceți clic pe "signup" în partea de sus a paginii.

Clic Incepe sub titlul Premier; veți fi redirecționat către un formular de înscriere. Completați toate informațiile necesare. Când contul dvs. a fost creat, conectați-vă și treceți la pasul 2.

Pasul 2 - Activați IPN

În acest pas vom permite Notificare de plată instantanee (IPN), astfel încât în ​​timp ce vă conectați, faceți clic pe Profil și apoi alegeți Notificare de plată instantanee

Acum, în ecranul următor veți vedea că IPN este setat la "off"; clic "Editați | ×" pentru a schimba asta.

La începutul acestui tutorial, am menționat că veți avea nevoie de un site web online. De ce? Ei bine, vom solicita PayPal să ne trimită date când plata este completă. PayPal nu poate ajunge la site-urile web găzduite local, cu excepția cazului în care aveți toate setările configurate corect. (Aceasta implică deschiderea porturilor pe routerul dvs.). Deci, voi introduce urlul la scriptul meu de validare, de exemplu http://www.yourdomain.com/PayPal/ipn.php. PayPal va posta o notificare pe serverul meu, la adresa URL pe care am specificat-o.

Pasul 3 - Construirea unei pagini HTML simple

Bine, acum avem nevoie de o pagină html simplă și de bază, în cazul în care vizitatorul dvs. poate cumpăra accesul în zona de descărcare.
Nu voi explica tot HTML-ul deoarece cred că ar trebui să cunoașteți elementele de bază ale HTML înainte de a începe cu PHP.

index.php - O pagină HTML simplă cu o foaie de stil.

    Nettuts.com | Achiziționați accesul în zona de descărcare    

Achiziționați accesul

Faceți clic pe butonul de mai jos pentru a primi detalii de conectare pentru zona de descărcare.
ai deja un cont? Autentifică-te aici.

css / style.css - O foaie de stil simplă pentru pagina HTML.

 corp fundal: # 2D2D2D; / * Setați culoarea de fundal a website-ului * / font: 11px 'Verdana'; / * Setați dimensiunea fontului și tipul fontului * / #wrap margin: 0 auto; / * Centrul Conținutul nostru * / lățimea: 500px; / * Setați lățimea conținutului nostru * / background: #FFF; / * Setați Culoarea fundalului de conținut * / padding: 10px; / * Setul de umplutură pentru conținut * / border: 1px solid # 000; / * Adăugați o margine în jurul conținutului * /

Pasul 4 - Construirea unui buton PayPal

Trebuie să creați un buton de cumpărare, așa că faceți clic pe Servicii de comerciant, și apoi alegețiPlățile standard pentru site-uri Web

Puteți alege trei tipuri de butoane, Vindeți obiecte unice, Vindem mai multe elemente și, Abonament. Acum, în acest tutorial vom crea un singur element. Când cineva achiziționează acest singur articol, în acest caz accesați o zonă de descărcare. Odată ce plata a fost validată, va fi trimis un e-mail cu detaliile acolo.

Să introducem câteva informații pentru butonul nostru de achiziție; puteți lăsa restul așa cum este.

După ce ați terminat de completat fiecare secțiune, generați codul. Copiați acest cod în clipboard, apoi lipiți-l înăuntruindex.php - unde am adăugat comentariul în pagina html. Consultați pasul 3, dacă este necesar.

Acest lucru ar trebui să funcționeze perfect. Utilizatorii pot face clic pe buton și finalizează achiziția.

Pasul 5 - Scrierea ipn.php

Mai întâi, creați ipn.php pentru a începe să scrieți. Vom folosi un fragment mic pe care l-am făcut dintr-un fragment mai amplu pe care îl puteți obține de pe site-ul PayPal.
Rețineți că nu există niciun motiv pentru a afla acest cod din cap! Fragmentele sunt la îndemână și economisesc timp. O voi despica mai jos.

  valoarea $) $ value = urlencode (stripslashes (valoarea $)); $ req. = "& $ cheie = $ valoare";  // postați înapoi în sistemul PayPal pentru a valida $ header = "POST / cgi-bin / webscr HTTP / 1.0 \ r \ n"; $ header = "Tip de conținut: aplicație / 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); dacă ! $ fp) // HTTP ERROR altceva fputs ($ fp, $ header; $ req); în timp ce (! feof ($ fp)) $ res = fgets ($ fp, 1024); dacă (strcmp ($ res, "VERIFIED") == 0) // PLATĂ VALIDATĂ & VERIFICATĂ!  altfel dacă (strcmp ($ res, "INVALID") == 0) // PLĂTIRE INVALID & INVESTIGAT MANUAL!  fclose ($ fp); ?>

Vă rugăm să completați acreditările corecte pentru baza de date, astfel încât să putem introduce datele în etapa următoare.

PayPal POSTS datele către adresa URL specificată. În acest exemplu, avem nevoie doar de adresa de e-mail a cumpărătorului, astfel încât să îi putem trimite informațiile de conectare. Acest cod de mai sus va citi datele pe care PayPal le trimite și le returnează în PayPal. Am adăugat două comentarii în cazul în care codul ar trebui să vină dacă este validat. În plus, am adăugat și un comentariu care specifică ce trebuie făcut dacă nu este validat.

Pasul 6 - Crearea bazei de date

Acum ne vom concentra asupra a ceea ce ar trebui să se întâmple dacă plata este verificată. În primul rând, trebuie să construim un tabel MySQL în care stocăm informațiile despre utilizatori. Doar un simplu cu un câmp id, e-mail și parolă.

Apoi, trebuie să introduceți detaliile noastre de masă; avem nevoie de un ID-ul cu o selecție a cheii primare și ar trebui să crească automat; următorul an e-mail și parola camp.

Pentru cei dintre voi nu aveți timp să introduceți toate aceste informații, mai jos este un mic cod MySQL Dump pentru a recrea masa.

 CREATE TABLE utilizatorilor '(' id 'int (10) NOT NULL auto_increment,' email 'varchar (50) NOT NULL,' parola 'varchar (32) NOT NULL, KEY PRIMARY = utf8 AUTO_INCREMENT = 1; 

Pasul 7 - Crearea contului

Deschis ipn.php din nou. Vom scrie următorul cod sub linia "// PAYMET VALIDATED".

Primul pas este să preluăm adresa de e-mail a cumpărătorului; PayPal trimite toate aceste informații pe ipn.php.

 // PLATEA VALIDATĂ ȘI VERIFICATĂ! $ email = $ _POST ['payer_email'];

Trebuie să creăm o ultima variabilă - care este parola pe care o vom genera folosind php.

 // PLATEA VALIDATĂ ȘI VERIFICATĂ! $ email = $ _POST ['payer_email']; $ parola = mt_rand (1000, 9999);

După cum puteți vedea, am folosit mt_rand pentru a genera o parolă aleatoare - în acest caz o valoare numerică între 1000 și 9999. Apoi, trebuie să inserăm aceste date în baza noastră de date. Pentru a face acest lucru, vom folosi interogarea insert mysql.

 // PLATEA VALIDATĂ ȘI VERIFICATĂ! $ email = $ _POST ['payer_email']; $ parola = mt_rand (1000, 9999); mysql_query ("INSERT INTO users (e-mail, parola) VALUES (". mysql_escape_string ($ email) ";

Aici îi spunem scriptului nostru să introducă e-mailul și parola în baza noastră de date. Am adăugat un mysql_escape_string pentru a vă asigura că injectarea mysql nu este posibilă. De asemenea, am adăugat funcția md5 la parola noastră, astfel încât să fie stocată ca un hash de 32 de caractere. Acum contul este creat; să trecem la pasul următor.

Pasul 8 - Trimiteți prin e-mail acreditările de conectare

Trebuie să scriem un cod care să comunice cumpărătorului informațiile de conectare. Pentru a realiza acest lucru, vom folosi funcția de poștă php.

 // PLATEA VALIDATĂ ȘI VERIFICATĂ! $ email = $ _POST ['payer_email']; $ parola = mt_rand (1000, 9999); mysql_query ("INSERT INTO users (e-mail, parola) VALUES (". mysql_escape_string ($ email) "; $ to = $ email; $ subject = 'Download Area' Date de conectare'; $ message = 'Vă mulțumim pentru achiziția dvs. Informații despre contul dvs. ------------------------- Email:'. $ email. ' Parola: '. $ Password'. ------------------------- Acum vă puteți conecta la http://yourdomain.com/PayPal/ '; $ headers = 'De la: [email protected]'. "\ R \ n"; mail ($ la, $ subiect, $ mesaj, $ anteturi);

Să întrerupem această funcție de e-mail. Utilizăm variabila $ e-mail pentru a obține adresa de e-mail a utilizatorului și a le atribui variabilă $ la.
Subiectul variabilei $ este titlul / subiectul pe care îl veți vedea în programul dvs. de e-mail. După aceasta, avem mesajul nostru, care va conține o notă de mulțumire, precum și informațiile despre cont. Variabilele $ email și $ password din mesaj se vor schimba la informațiile corecte odată ce e-mailul a fost trimis. De asemenea, am setat un antet personalizat. Când utilizatorul primește e-mailul, adresa "de la" se va afișa ca "[email protected]".

Pasul 9 - E-mail de plată nevalid

O plată nevalidă ar putea apărea din cauza fraudei, dar și din cauza unei probleme cu PayPal; așa că vrem să ne asigurăm că clientul nostru primește ceea ce plătește.
Deci, vom trimite un e-mail administratorului site-ului nostru, spunându-i să contacteze cumpărătorul pentru mai multe informații. Trebuie doar să copiați codul de e-mail pe care l-am folosit înainte și apoi să efectuați modificările enumerate mai jos.

 // PLATA INVALID & INVESTIGAT MANUAL! $ to = '[email protected]'; $ subject = 'Download Area' Plată nevalidă "; $ message = 'Dragă Administrator, A fost efectuată o plată, dar este marcată ca INVALID. Verificați plata manuală și contactați cumpărătorul. Adresa de e-mail a cumpărătorului: ". $ Email."; $ Headers = 'De la: [email protected]'. "\ R \ n"; e-mail ($ to, $ subject, $ message, $ headers);

Acest cod este aproape la fel ca mai sus, doar am făcut unele modificări la receptor, subiect și mesaj.

Pasul 10 - Conectarea utilizatorului

Acesta este pasul nostru final, unde construim un simplu formular de autentificare pentru cumpărătorii noștri. Creați un nou fișier php și numiți-l login.php. Vom folosi aceeași pagină HTML ca cea folosită pentru index.php, doar vom face unele ajustări la conținutul paginii și, bineînțeles, vom adăuga un pic de stil la formularul nostru de autentificare.

login.php - Aceasta este pagina în care se pot conecta cumpărătorii noștri.

    Nettuts.com | Logare    

Logare

Introduceți acreditările de conectare pentru a avea acces la zona de descărcare

Adauga la style.css

 etichetă display: bloc; / * Asigurați-vă că eticheta se află pe o singură linie * / margine: 3px; / * Creați o anumită distanță de câmpurile de intrare * / introducere padding: 3px; / * Dați textului mai mult spațiu * / border: 1px solid gri; / * Adăugați o margine în jurul câmpurilor de intrare * / margine: 3px; / * Creați o anumită distanță de etichete * /

Acum că am făcut formularul nostru, trebuie să verificăm dacă datele de conectare sunt corecte. Am facut cateva modificari la login.php ca sa putem incepe:

    Nettuts.com | Logare    

Logare

Introduceți acreditările de conectare pentru a avea acces la zona de descărcare

Codul de mai sus va verifica dacă e-mailul și parola sunt ambele afișate. Dacă este adevărat, putem verifica acreditările. Dacă nu, vom întoarce o eroare. Următorul cod pe care îl vom scrie va fi plasat sub "// Verify". Mai întâi trebuie să transformăm variabilele post în variabile locale.

 $ email = mysql_escape_string ($ _ POST ['e-mail']); $ password = md5 ($ _ POST ['parola']);

Am adăugat o funcție de evacuare pentru a preveni injectarea mysql și am transformat parola postată într-un hash de md5. Pentru că am făcut acest lucru în baza noastră de date, trebuie să ștergem parola utilizatorului pentru a compara corect cele două valori. Acum este momentul să verificați datele.

 $ email = mysql_escape_string ($ _ POST ['e-mail']); $ password = md5 ($ _ POST ['parola']); $ gUser = mysql_query ("SELECT * FROM users WHERE. $ email") "sau" ($ LIMIT 1 ") sau mor (mysql_error ()); $ verify = mysql_num_rows ($ gUser); dacă ($ verify> 0) echo '

Conectare completă

Faceți clic aici pentru a descărca programul nostru

„; altceva echo '

Autentificare esuata

Ne pare rău că datele dvs. de acces sunt incorecte. ';

După cum puteți vedea, executați o interogare mysql și selectați toate datele din tabelul nostru de utilizatori - dar numai rândul în care adresa de e-mail a utilizatorului se potrivește cu cea din baza de date.
mysql_num_rows verifică dacă a fost găsit un meci: 1 = true; 0 = false.

Asta e tot!

Și acesta este sfârșitul acestui tutorial. Sper că ți-a plăcut și te simți liber să lași un comentariu cu gândurile tale. Aveți orice sfaturi care ar putea ajuta?

  • Abonați-vă la fluxul RSS NETTUTS pentru mai multe tutori și articole zilnice de dezvoltare web.


Cod