Kurs: PHP programiranje Materijali vezani uz ovu lekciju: - Rad sa servisima (PDF dokument) Jedan od najefikasnijih sistema plaćanja na internetu je plaćanje putem PayPal sistema. Kroz ovu lekciju, naučićemo osnove implementacije PayPal sistema u web aplikaciju i korišćenje PayPal servisa za plaćanje. Obzirom da se radi o novcu, bankovnim računima i kreditnim karticama, potrebno je dobro se pripremiti pre nego što se aplikacija koja rukuje PayPalom pusti u produkciju. Imajući ovo u vidu, PayPal nudi „lažni" servis (sandbox), koji ima funkcionalnost pravog, ali ne rukuje sa pravim računima i novcem. Ovaj servis, čija adresa je: https://www.developer.paypal.com/ služi baš za testiranje funkcionalnosti aplikacije. Da bi radili sa PayPalom, potrebno je posedovati PayPal nalog. Najbolje je početi sa sandbox nalogom. U okviru sandbox naloga, možete napraviti više naloga jednog od dva tipa (prodavac, kupac). Za potrebe nastavka lekcije, napravite naloge za kupca i prodavca. Nakon kreiranja naloga, potrebno je pristupiti sendbox test sajtu (gde se nalaze podaci o nalogu) i odabrati opciju merchant services. Isprva napravićemo sistem za kupovinu samo jednog proizvoda. Recimo da se na našoj strani nalazi neki proizvod koji je opisan kroz sledeći HTML kod:
Da bi se pokrenuo proces izgradnje PayPal skripte (forme) potrebno je odabrati neku od ponuđenih opcija. Na primer Buy now button.
U narednom meniju, treba uneti ime proizvoda, ID proizvoda (ID iz naše lokalne baze), cenu, da li želimo da pritisak na taster odmah prosledi proizvod na plaćanje ili samo u korpu...
Sledeća strana generisaće skriptu, koju jednostavno treba kopirati i pozicionirati na web stranu:
![]() Sada će kompletan kod izgledati ovako i naplata prodaje će biti prosleđena PayPal-u:
Očigledno je da je Buy now taster, koji smo implementirali u stvari obična web forma, sa dosta skrivenih kontrola i čija je ciljna aplikacija paypal servis (u našem slučaju sendbox). Kontrole prikazane u primeru nisu sve koje je moguće staviti u jednu PayPal formu. Na primer, mogli smo dodati kontrole: return (adresa strane na koju će koristnik doći nakon uspešne transakcije), cancel_return (adresa na koju korisnik dolazi nakon prekinute transakcije)... Ono što možemo uraditi to je da tu formu stavimo u neki dinamički proces. Na primer, while petlju, koja će čitati podatke o našim proizvodima iz baze, smeštati ih na stranu i generisati PayPal forme za svaki od njih. Za naš primer poslužićemo se opet nizovima za izvor podataka.
U petlju postavite komletan malopređašnji kod za PayPal formu, izuzev dve linije koje treba izmeniti. Pošto su u pitanju klasične form kontrole. Iako su podrazumevano sakrivene, to nije i njihov obavezni tip i možemo ih preinačiti u neke druge vrste kontrola. Na primer, umesto:
možemo staviti:
... čime će korisniku biti omogućeno da sam unese vrednost.
Shopping cart (korpa)Na sličan način, možete napraviti i shopping cart, tačnije, povezati, shopping card vašeg paypal naloga, sa vašim sajtom. Odaberite umesto buy now, add to cart button i u podešavanjima (koja su slična kao i za buy now button) čekirajte polje Yes. create an "add to cart" button. Nakon pritiska create button tastera, paypal će generisati skriptu. ![]() Ova skripta je dovoljna za dodavanje Add to cart tastera na stranu. Ali, ukoliko želite da dodate i nezavisan taster za pregled korpe (view cart), potrebno je selektovati hiperlink create a view cart button. Nakon odabira tipa tastera, paypal će generisati još jednu skriptu. Ovaj put, za pregled korpe. Sve što treba uraditi jeste da se ove dve skripte postave na stranu. Add to cart, u neki dinamički proces, vezan za izlistavanje proizvoda na strani, a view cart, na zaseban deo strane, u statičkom obliku.
Ova lekcija prezentuje najosnovniji način rukovanja sa jednim od mnogobrojnih PayPal servisa i uvod je u poslovanje putem interneta. Jedan od načina za obradu porudžbine je i preko međustrane. U ovom slučaju, korisniku se uopšte ne daje na uvid nikakva veza sa PayPalom (do momenta plaćanja), već njegova porudžbina biva obrađena u okviru sistema. Po završenoj obradi, svi podaci se prosleđuju međustrani-broker strani, koja od prosleđenih podataka sastavlja formu. Strana automatski startuje formu pomoću JavaScripta i kupac sa podacima biva preusmeren na PayPal sajt.
IPN (Instant Payment Notification)Ukoliko sajt na kome se vrši neka on-line prodaja, opslužuje neki materijalni sistem trgovine, dosadašnji primeri su dovoljni za kreaciju korektnog sistema za naplatu prodatih proizvoda. Naplatu je moguće proveriti putem paypal sistema i ostaje samo da se izvrši isporuka. Ovakav sistem je, međutim, nedovoljno efikasan za postizanje automatske prodaje digitalnih sadržaja. Jer ne postoji brz, automatski sistem koji će da odradi međukorak od uspešne uplate, do notifikacije prodavca o izvršenoj uplati. U ovom procesu ispaštaće, ili kupac, koji poručuje artikal za čiju isporuku mora da čeka na proveru uplate od strane prodavca ili prodavac, koji ukoliko da materijal bez prethodne provere rizikuje krađu tog materijala. Instant Payment Notification je upravo servis koji obrađuje ovu problematiku, za šta mu je potrebna i interakcija sa našom aplikacijom, što prodaju ovog tipa čini malo komplikovanijom za realizaciju od prethodne. Ono što treba uraditi, da bi mogao da se koristi IPN sistem, jeste da se on omogući u korisničkom profiliu PayPal naloga. U opciji Payment Notification Preferences treba aktivirati IPN i podesiti adresu na kojoj će se vršiti verifikacija. Ova adresa mora da bude na brzom i pouzadnom hostu. Za verifikaciju je zadužena naša aplikacija koja treba da pošalje odgovor PayPal-u. U tu svrhu, moramo koristiti strim preko sigurnog porta. Srećom, rešenje za ovo ne moramo pisati od početka, već postoji mnoštvo gotovih klasa koje ovo omogućavaju. A pored toga, i sam PayPal, u odeljku za developere, za većinu web jezika prilaže blokove koda koji ovo rade. Iz ove aplikacije konačno možemo poslati izveštaj korisniku ili aplikaciji, da je sve u redu, i proslediti proizvod.
|