Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Platební brána PayPal – řešení

Jelikož se zde poměrně hodně často vyskytují dotazy na integraci platební brány PayPal, rozhodl jsem se, dát zde kompletní postup.
Poznámka: Budeme používat platbu přes IPN.
Co budeme potřebovat?
Nejprve musíte vlastnit aktivní PayPal účet typu Premiere.(Account Type: Premier Status: Verified)
Dále chceme zajistit zpětnou odezvu od PayPal - to pokud někdo provede platbu. Proto je nutno nastavit adresu, kterou bude PayPal volat při platbě.
Postup nastavení PayPal účtu
1. Přihlášení do PayPal.
2. V podmenu zvolit položku "Profile".
3. Ve třetím sloupci s názvem "Selling Preferences" zvolit "Instant Payment Notification".
4. Zde IPN zapneme a nastavíme adresu pro zpětnou odezvu (http://www.mojestranka.cz/paypal.php)
Dále je potřeba vytvořit na naší stránce (eshopu) při dokončení objednávky nějaký prvek, kterým uživatel může platbu provést. Přitom známe chceme zaznamenávat tyto údaje:
1. Název zboží
2. Číslo objednávky
3. Celková částka k úhradě
Kód platební brány na naší straně
$vas_email = "muj@email.cz"; // = Login na PayPal
$nazev_zbozi = "Notebook Sony"; // Název zboží & objednávky
$cislo_objednavky = 12345; // Číslo objednávky pro naše vnitřní účely
$castka = 32000; // Musí být celé kladné číslo
?>
Zákazník po dokončení objednávky klikne na tlačítko, přihlásí se ke svému PayPal účtu nebo zadá údaje z kreditní karty a provede platbu. Našim úkolem nyní je zjistit, že platba proběhla v pořádku.
Nyní tedy kód pro náš soubor na adrese www.mojestranka.cz/paypal.php
Zpracování platby
// Načteme si údaje o provedené platby
$item_name = $_POST; // Náš název zboží
$item_number = $_POST; // Naše číslo objednávky
$payment_status = $_POST; // Status platby
$payment_amount = $_POST;
$payment_currency = $_POST;
$receiver_email = $_POST; // Email toho, kdo platbu přijal
$payer_email = $_POST; // Email toho, kdo platbu odeslal
?>
Pokud chceme celý proces zabezpečit, bude kód trochu složitější.
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.0rn";
$header .= "Content-Type: application/x-www-form-urlencodedrn";
$header .= "Content-Length: " . strlen($req) . "rnrn";
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
// assign posted variables to local variables
$item_name = $_POST;
$item_number = $_POST;
$payment_status = $_POST;
$payment_amount = $_POST;
$payment_currency = $_POST;
$txn_id = $_POST;
$receiver_email = $_POST;
$payer_email = $_POST;
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
// check the payment_status is Completed
// check that txn_id has not been previously processed
// check that receiver_email is your Primary PayPal email
// check that payment_amount/payment_currency are correct
// process payment
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
}
}
fclose ($fp);
}
?>
?>
Pokud chcete využít jiný programovací jazyk než PHP kód najdete na této adrese: https://www.paypal.com/us/cgi-bin/webscr?cmd=p/pdn/ipn-codesamples-pop-outside
O úspěšném uskutečnění platby Vám v každém případě vždy přijde email od PayPal.
Snad je návod dostatečně jasný. Pište zde Vaše věcné poznámky či doplnění návodu :smoking:
30. 6. 2009 12:22:38
https://webtrh.cz/diskuse/platebni-brana-paypal-reseni/#reply328415
Nishkam
verified
rating uzivatele
(3 hodnocení)
30. 6. 2009 13:53:11
Dekuji Ondreji,
presne to je 1 z mych ukolu na tento tyden, tak Tvuj navod pouziji jako nakopnuti spravnym smerem. Alespon nemusim Googlovat a hrabat se v manualech PayPal
30. 6. 2009 13:53:11
https://webtrh.cz/diskuse/platebni-brana-paypal-reseni/#reply328414
DanielMacek
verified
rating uzivatele
(2 hodnocení)
7. 10. 2009 20:42:23
Lze prosím tě nějak ověřit správnou integraci? Díky Dan
7. 10. 2009 20:42:23
https://webtrh.cz/diskuse/platebni-brana-paypal-reseni/#reply328413
Napsal DanielMacek;374097
Lze prosím tě nějak ověřit správnou integraci? Díky Dan
Sám sobě peníze poslat nemůžeš, proto je vhodné integraci ověřit s někým známým. Obvykle však platí, že pokud se po vyvolání stránky s paypal platbou zobrazí správné platební údaje, tak samotná platba v pořádku proběhne a paypal odezva je téměř zaručená.
7. 10. 2009 23:57:20
https://webtrh.cz/diskuse/platebni-brana-paypal-reseni/#reply328412
Napsal Ondřej Machala;374224
Sám sobě peníze poslat nemůžeš, proto je vhodné integraci ověřit s někým známým. Obvykle však platí, že pokud se po vyvolání stránky s paypal platbou zobrazí správné platební údaje, tak samotná platba v pořádku proběhne a paypal odezva je téměř zaručená.
Nebo že by PayPal Sandbox? ;)
8. 10. 2009 10:22:36
https://webtrh.cz/diskuse/platebni-brana-paypal-reseni/#reply328411
S tím jsem se já trápil snad 14 dní a nerozběhal jsem ho :(
8. 10. 2009 11:15:05
https://webtrh.cz/diskuse/platebni-brana-paypal-reseni/#reply328410
Napsal Neregistrovaný;374330
S tím jsem se já trápil snad 14 dní a nerozběhal jsem ho :(
Hmm, problém zřejmě nebude na straně PayPalu ;)
8. 10. 2009 12:31:29
https://webtrh.cz/diskuse/platebni-brana-paypal-reseni/#reply328409
Výborný, díky. Nicméně možnosti možnosti na PayPal jsou širší. Dokázal bys stručně některé z nich popsat? A jejich plusy a mínusy? Přiblížit to lidem kteří nemají příliš zkušeností... Díky Kubicq
14. 5. 2010 16:26:13
https://webtrh.cz/diskuse/platebni-brana-paypal-reseni/#reply328408
Napsal Kubicq;511375
Výborný, díky. Nicméně možnosti možnosti na PayPal jsou širší. Dokázal bys stručně některé z nich popsat? A jejich plusy a mínusy? Přiblížit to lidem kteří nemají příliš zkušeností... Díky Kubicq
To by vydalo na dlooouhý článek... píšu si to na víkend do Doit.im ;)
14. 5. 2010 16:39:03
https://webtrh.cz/diskuse/platebni-brana-paypal-reseni/#reply328407
Pro odpověď se přihlašte.
Přihlásit