Implementační manuál PayU pro e-shopy



Podobné dokumenty
Implementační manuál PayU pro e-shopy

Uživatelská technická dokumentace Verze 1.0

Uživatelská technická dokumentace. Verze 3.0

Implementační manuál PayU pro developery

Modul pro PrestaShop 1.7

Modul PrestaShop verze 1.7 Uživatelská dokumentace

E-BILLING UŽIVATELSKÝ MANUÁL. Platí od

Manuál pro implementaci služby PLATBA 24. Datum: 17. prosince 2014 Verze: 1.49

PTÁČEK - velkoobchod. eshop. ZÁKAZNICKÝ pracovní postup

Uživatelská příručka pro respondenty

Registrace a aktivace uživatelského profilu k přístupu do systému erecept pro pacienta

Czech Nature Photo Návod

REGISTRACE UŽIVATELE

Modul PrestaShop verze 1.6 Uživatelská dokumentace

Návod na internetové bankovnictví

Manuál Elektronický výpis

Návod k obsluze portálu pro obchodníky

Uživatelská příručka SBOX

INTERNETOVÉ BANKOVNICTVÍ Hromadné platby a stahování výpisů

1.1. Základní informace o aplikacích pro pacienta

REGISTRACE A SPRÁVA UŽIVATELSKÉHO ÚČTU

Uživatelský manuál

T CLOUD MANUÁL ZÁKLADNÍHO POUŽÍVÁNÍ. PŘIHLÁŠENÍ K ÚČTU Přihlaste se z nabídky Přihlášení k účtu:

Dokumentace ke službě SMS Connect.

Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 4 a novější

REGISTRACE UŽIVATELE

RYCHLÝ PRŮVODCE INTERNETOVÝM BANKOVNICTVÍM

Průvodce instalací modulu Offline VetShop verze 3.4

Už ivatelska dokumentace

Návod pro práci s aplikací

INTERNETOVÉ BANKOVNICTVÍ ARTESA IDEAL

MƏj úĭet Uživatelský manuál Verze 1.01/2010

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

MOJESODEXO.CZ ADMINISTRACE ÚČTU. Uživatelský manuál

Návod: Nastavení darovacího formuláře na webu

Dealer Extranet 3. Správa objednávek

Kompletní návod na nákup a čtení eknih ve formátech PDF a epub na PC a MAC

Uživatelský manuál Citfin, spořitelní družstvo Potřebujete poradit? Volejte infolinku nebo pište na

Postup podávání žádostí dle zákona o spotřebitelském úvěru REGIS

InsideBusiness Payments CEE

Uživatelská příručka

Profibanka - Informace pro příjemce platebních karet

PŘÍKAZ K ZADÁNÍ SEPA PLATBY V APLIKACI MULTICASH KB

Technologické postupy práce s aktovkou IS MPP

Dallmayr WebShop. Uživatelská příručka. Dallmayr WebShop. Uživatelská příručka. Tiliaris s. r. o Tiliaris s. r. o Strana 1 / 11

Manuál pro studenty. Obsah

UŽIVATELSKÁ PŘÍRUČKA PRO SLUŽBU INTERNETBANKING PPF banky a.s.

MOJESODEXO.CZ ZADÁVÁNÍ OBJEDNÁVEK PAPÍROVÝCH PRODUKTŮ. Uživatelský manuál

MojeBanka - Informace pro příjemce platebních karet

UŽIVATELSKÁ PŘÍRUČKA PRO INTERNETOVÉ BANKOVNICTVÍ PPF banky a.s.

Uživatelský manuál.

Uživatelská příručka MWA Modul Podpora vzdálených kalibrací dle ILAC

Tour de ABB 2013 Průvodce online aplikací

OBSAH. 48 Příručka ON-LINE KUPEG úvěrová pojišťovna, a.s.

Vzhled a popis hlavních funkcí systému SMSbrána.cz

Manuál Propojení e-shopu s Heureka.cz

Manuál pro majitele Korporátní karty. Manuál pro majitele Korporátní karty

Platební systém XPAY [

Manuál pro implementaci služby PLATBA 24. Datum: 22. října 2015 Verze: 1.50

REGISTRACE UŽIVATELE

Registr práv a povinností

ERP informační systém

1. Pro přihlášení k odběru novinek klikněte na tlačítko Registrace nového uživatele.

NOVINKY V INTERNETOVÉM BANKOVNICTVÍ PRO PODNIKATELE ÚNOR 2019 SEZNAMTE SE S NOVINKAMI, KE KTERÝM JSTE NÁS INSPIROVALI.

Lyoness tajemství nakupovat

Přímý kanál - Informace pro příjemce platebních karet

OBSAH MANUÁL PRO VOC PARTNERY NA

BALÍKONOŠ.CZ NÁVOD. 1. Obsah. 2. Aktivace účtu

MONITORING OBCHODNÍCH PARTNERŮ

Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor )

1. Pro přihlášení k odběru novinek klikněte na tlačítko Registrace nového uživatele.

IPUS - manuál pro sjednatele CP

Nápověda k systému CCS Carnet Mini. Manuál k aplikaci pro evidenci knihy jízd

Akceptace platebních karet E commerce

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace

Aplikace AWEG3 Profil SMS. Uživatelská příručka. Aktualizace:

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

Dell Premier. Návod k nakupování a objednávkám

wplatba SOAP api Technická dokumentáce

Moje-Projekty.cz Dokumentace k aplikaci

Administrační rozhraní Manuál pro klienty

1 Tabulky Příklad 3 Access 2010

Popis nejčastějších funkcí aplikace MojeBanka business

Pravidla používání webového rezervačního systému bezpečnostních školení Letiště Praha, a. s. - firma

UŽIVATELSKÁ PŘÍRUČKA PRO INTERNETBANKING PPF banky a.s.

CzechAdvisor.cz. Návod pro členy AHR

Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor )

Více než 60 novinek, změn a vylepšení

Odesílání citlivých dat prostřednictvím šifrovaného u s elektronickým podpisem standardem S/MIME

Prosím mějte na paměti, že z bezpečnostních důvodů byste měli změnit Internetový přístupový kód každých 60 dní.

Aplikace pro srovna ní cen povinne ho ruc ení

Elektronický výpis v Internet Bance

ACTIVATE HERE - FAQ. Zakoupením této položky získáte do 60 minut do požadovaného u aktivační klíče k vybranému produktu.

Uživatelská příručka pro respondenty

NÁVOD K POUŽÍVÁNÍ DIGITÁLNÍ PENĚŽENKY MASTERCARD MOBILE

Fakturace prostřednictvím Coupa Dodavatelského Portálu

Transkript:

2.2 Implementační manuál PayU pro e-shopy s využitím šablony www.payu.cz

Obsah 1. Úvod 2. Od registrace po spuštění PayU 2.1 Obecné informace 2.2 Popis jednotlivých kroků 3. Implementace PayU 3.1 Obecné informace 3.2 Termíny a ustálené výrazy používané v aplikaci 3.3 Integrace s PayU 3.3.1 Konfigurační data 3.3.2 URL adresy aplikace PayU a dostupné procedury 3.3.3 Kódování 3.3.4 Formát dat 3.3.5 Vytvoření nové platby 3.4 Výměna informací o transakcích 3.4.1 Oznámení změny statusu transakce Obchodu 3.4.2 Rozeznávání statusu transakce 3.4.3 Přijetí platby 3.4.4 Zamítnutí platby 3.4.5 Status dokončení operace 3.5 Struktura návratových adres UrlPositive a UrlNegative 3.6 Kontrolní součty MD5 3.6.1 Kontrolní součet parametrů předávaných do nové platby 3.7 Testování 4. Vzhled platební brány PayU na e-shopu 4.1 Vizualizace a popis platebních metod 4.2 Implementace 4.3 Nákupní proces a uživatelsky přívětivá implementace 4.4 Optimalizace nákupního procesu 4.5 Navigace a vizualizace 4.6 Rychlost a konverze 4.7 Funkční šablona 4.8 Edukace zákazníků a marketing 5. Povinné parametry implementace 6. Administrace PayU účtu 6.1 Obecné informace 6.2 Uživatelské rozhraní PayU 6.3 Vytvoření Obchodu a POSu 6.4 Transakce 6.5 Vyúčtování, Výběry a Vrácené platby 6.6 Výběry 6.7 Výpisy PDF/CSV/ABO 6.8 Statistiky 6.9 Nastavení oznámení 6.10 Uživatelské účty 4 5 6 7 13 14 14 15 15 15 15 16 16 21 21 22 25 25 25 27 28 29 30 31 32 32 33 33 34 34 35 35 37 39 40 40 41 47 54 56 59 65 67 67

7. Přílohy Příloha 1 Typy plateb Příloha 2 Statusy transakcí Příloha 3 Přechody mezi statusy transakce Příloha 4 Kódy chyb Příloha 5 Ukázka php skriptu, který zjišťuje stav transakce Příloha 6 PayU šablony (templates) Příloha 7 Ukázka implementace PayU Příloha 8 Případová studie Příloha 9 Změny v manuálu podle verzí 70 71 72 73 75 76 80 81 83 87

Úvod 1 PayU je nejrychleji rostoucí poskytovatel on-line plateb v České republice. Je českou verzí úspěšné služby, která funguje v Evropě již od r. 2005. Využívá jedinečné know-how a několikaletou zkušenost z e-commerce trhu ve střední a východní Evropě. Společnost PayU Czech Republic, s.r.o. byla založena v roce 2011 technologickou společností Naspers, která působí na on-line trhu v USA, Číně, Brazílii, Africe, Rusku nebo Polsku a mnoha dalších zemích včetně České republiky. Díky tomuto silnému mezinárodnímu zázemí nabízí PayU kompletní platební služby spojené se zpracováním transakcí, přináší inovativní technologie, bezpečnost a kontinuální vývoj služeb. Cílem PayU je neustále přinášet rychlé a bezpečné platební řešení, které umožní zjednodušovat proces platby pro nakupující a přispívat tak k zvyšování konverze na prodejních platformách. Tato příručka má usnadnit e-shopům a partnerům implementaci platební brány PayU. V několika jednoduchých krocích je zde vysvětleno jak se do PayU registrovat, jak probíhá technická integrace, jaké jsou možnosti vizualizace nabízených platebních metod, popisuje a vysvětluje funkce a administraci PayU účtu. Cílem této příručky je dát návod k co nejlepší implementaci platební brány PayU. Ta je předpokladem k tomu využít všech vlastností a funkcí, které Vám PayU na Vaši obchodní platformu přináší. Příručka je složena ze sedmi barevně odlišených částí. Každá část přináší ucelený set informací o konkrétní oblasti implementace nebo práce se systémem PayU. 4

Od registrace po 2 spuštění PayU

2.1 Obecné informace 2 V této části je v jednoduchých krocích popsán proces zavedení platební brány od registrace až po úspěšné spuštění. Schéma na obrázku přehledně znázorňuje kroky potřebné k zavedení platební brány PayU na e-shop: registrace na www.payu.cz smlouva technická implementace dle technické dokumentace IMPLEMENTACE PLATEBNÍ BRÁNY PAYU spuštění ostrého provozu aktivace platebních metod dle smlouvy testovací platba 6

2.2 Popis jednotlivých kroků 2 Zákazník (e-shop) PayU obchodní oddělení PayU zákaznický servis 1. informace o PayU www.payu.cz 2. registrace, vytvoření účtu PayU (login a heslo) 5. login do účtu PayU, založení SHOP a POS a implementace 3. zaslání smlouvy a smluvních podmínek 4. aktivace účtu a testovací platby 6. podpis smlouvy a zaslání do PayU AML identifikace 7. nastavení nasmlouvaných platebních metod na založený POS a aktivace 8. testovací platba 9. žádost o aktivaci platebních metod obchodní oddělení 10. ověření testovací platby, aktivace a kontrola 1. 2. 3. 4. 5. Webové stránky www.payu.cz obsahují všechny důležité informace týkající se společnosti PayU a jejího platebního řešení. Nezávazná registrace na http://registrace.payu.cz/?p=6 Tato registrace slouží k získání informací pro pozdější vytvoření uživatelského účtu a první kontakt. Je důležité uvést firemní údaje podle obchodního rejstříku a správné kontaktní informace. Na základě rozhovoru Vám obchodní zástupce připraví nabídku provizních hladin pro jednotlivé typy plateb. Poté, co jsou Vámi odsouhlaseny, je zaslán návrh smlouvy k podpisu. Kopie smlouvy je zaslána na zákaznický servis PayU, který zkontroluje údaje ve smlouvě oproti registraci. Pokud údaje souhlasí, může být aktivován PayU účet. Údaje pro první přihlášení Vám budou zaslány emailem. Následně je možné nastavit potřebné parametry účtu pro implementaci. Zároveň můžete také využít funkce testovací platby. Správně provedená testovací platba je nedílnou součástí implementace a bez ní není možné implementaci úspěšně dokončit. Nyní je možné přihlásit se do účtu PayU a začít s implementací. 7

Základní nastavení PayU účtu pro spuštěni implementace: 2 5.1 Nastavení Obchodu (Shopu) Zvolte Platby online > Můj Obchod > Přidat obchod V prvním kroku je potřeba definovat webovou adresu Obchodu, uvést název Obchodu (případně také jeho popis) a vybrat požadovanou měnu, ve které budou platby procesovány. Máte-li zájem zpracovávat ve svém Obchodu platby v eurech, musí být tato skutečnost uvedena ve smlouvě s PayU. Pokud máte zájem využívat platební systém PayU na jiné webové adrese, než jaká je uvedena během registrace, můžete tuto adresu v účtu nastavit. V takovém případě je však nutné, aby byl vytvořen dodatek ke smlouvě s PayU, kde bude preferována nebo nová webová adresa definována. 8

2 5.2 Nastaveni POSu ( point of sale, platební místo) Pro nastavení hodnot nového POSu je potřeba zadat následující údaje: a) Název platebního místa b) Chybová návratová adresa (URL adresa, kam bude plátce přesměrován, pokud se transakci nepodaří autorizovat) c) Správná návratová adresa (URL adresa, kam bude plátce přesměrován, pokud se prvotní autorizace transakce jeví jako úspěšná) d) Adresa pro oznámení o statusu (URL adresa, kam bude zasílána informace o změně statusu platby prostřednictvím metody POST) e) Kódování dat (způsob kódování znaků) 9

2 5.3 Konfigurace platebního místa Jakmile máte přidaný POS, klikněte na něj v seznamu POS. Otevře se vám konfigurace platebního místa. V této konfiguraci jsou některé velmi důležité údaje, které budete potřebovat pro implementaci platební brány. Jedná se o tyto údaje: 10

Po absolvování tohoto kroku můžete začít implementovat, jak je popsáno v kapitole 3 za podmínek uvedených v kapitole 5, a provádět testovací transakce, jak je popsáno v kapitole 3.7. 2 6. Zkontrolujte smlouvu od PayU, podepište a odešlete na adresu: PayU Czech Republic, s. r. o. Karolinská 650/1 186 00, Praha Karlín Dodejte také požadované údaje o identifikaci firmy nebo fyzické osoby podle zákona č. 253/2008 Sb., o některých opatřeních proti legalizaci výnosů z trestné činnosti a financování terorismu. 7. Ve chvíli, kdy obdrží PayU podepsanou smlouvu, přidá zákaznický servis smluvené platební metody k vašemu obchodnímu místu. V seznamu POS to bude vypadat takto: 11

8. Dokončete implementaci. Proveďte testovací platbu. Nesmí se zobrazovat žádné chybové hlášky. Seznam chybových hlášek najdete v příloze č. 4. Nahlaste úspěšné zakončení implementace zákaznickému servisu PayU pomocí kontaktního formuláře ve Vašem PayU účtu: 2 9. Pro aktivaci platebních metod uvedených ve smlouvě kontaktujte svého obchodního zástupce v PayU nebo zašlete požadavek na obchod@payu.cz. 10. Na základě Vašeho požadavku na obchodní oddělení a kontroly implementace dle kapitoly 5 Vám budou na Vašem POSu aktivovány jednotlivé platební metody. Můžete začít přijímat platby přes platební bránu PayU. 12

Implementace 3 PayU

3.1 Obecné informace 3 Tento praktický průvodce implementací platební brány PayU obsahuje informace pro technickou integraci s obchodní platformou. 3.2 Termíny a ustálené výrazy používané v aplikaci PayU Aplikace na zpracování plateb. Společnost Společnost používající aplikaci PayU pro příjem plateb od Zákazníků. Obchod Online obchod přijímající platby; jedna Společnost může provozovat několik Obchodů. POS Platební místo (point of sale) zpracovávající obdržené platby; pro daný POS jsou definovány všechny parametry služby; jeden Obchod může provozovat několik POS. Zákazník Osoba vykonávající platbu. UrlPayU URL adresa, na které je nainstalována aplikace PayU: https://secure.payu.com/paygw/ UrlPositive URL adresa aplikace Obchodu, kam bude Zákazník přesměrován po úspěšném zahájení transakce. UrNegative URL adresa aplikace Obchodu, kam bude Zákazník přesměrován po neúspěšném zahájení transakce. UrlOnline URL adresa aplikace Obchodu, kam budou zasílány oznámení o změně statusu platby prostřednictvím metody POST. 14

3.3 3.3.1 Integrace s PayU Konfigurační data 3 V aplikaci PayU může mít každý Obchod několik POS. Pro každý POS mohou být definovány následující URL adresy: UrlPositive (Správná návratová adresa), UrlNegative (Chybná návratová adresa) a UrlOnline (Adresa pro oznámení). PayU přiděluje každému vytvořenému POSu sadu konfiguračních klíčů, která se skládá z identifikátoru POSu (pos_id), řetězců kódů key1 a key2 (viz kapitola 3.6) a autorizačního klíče (pos_auth_key). Všechny tyto údaje jsou dostupné v uživatelském rozhraní PayU po vytvoření POSu. Uvedené konfigurační klíče můžete nalézt po kliknutí na: Moje obchody > Název obchodu > Seznam POS > Název POSu 3.3.2 URL adresy aplikace PayU a dostupné procedury URL adresa aplikace PayU se tvoří tímto způsobem: URL = UrlPayU/Kodovani/NazevProcedury kde UrlPayU základní adresa aplikace PayU, tj. https://secure.payu.com/paygw/ Kodovani jedna z následujících hodnot: ISO, UTF, WIN NazevProcedury jedna z následujících hodnot: NewPayment, Payment/get, Payment/confirm, Payment/cancel 3.3.3 Kódování V závislosti na znakové sadě, kterou používá aplikace Obchodu, volí Obchod kódování znaků také při odkazování na procedury PayU: název v PayU použité kódování ISO ISO-8859-2 UTF UTF-8 WIN Windows-1250 15

3.3.4 Formát dat 3 Pro následující procedury: Payment/get, Payment/confirm a Payment/cancel může být níže uvedeným způsobem specifikován také formát odesílaných údajů. URL = UrlPayU/Kodovani/NazevProcedury/Format Format může nabývat hodnot xml nebo txt. Výchozí hodnotou je xml. 3.3.5 Vytvoření nové platby Zjednodušeně probíhá platba prostřednictvím systému PayU způsobem, který je zobrazen na níže uvedeném schématu: 7. PayU informuje e-shop o změně statusu transakce PayU 3. E-shop zasílá do PayU formulář nové platby E-shop 1. Výběr zboží/služby na stránkách e-shopu 2. Výběr platební brány v šabloně PayU 6. Banka informuje PayU o provedení platby Banka 4. Zákazník je přesměrován do banky, kde zaplatí 5. Po provedení platby je zákazník přesměrován zpět na stránku e-shopu K vytvoření nové platby je na webovou stránku Obchodu potřeba umístit formulář, který přesměruje Zákazníka na PayU na proceduru NewPayment (seznam procedur PayU viz kapitola 3.3.2). Doporučuje se použití metody POST; není-li to možné, lze použít také metodu GET. 16

Parametry nové platby jsou následující: 3 parametr povinné pole typ dat popis pos_id ano INT hodnota, kterou přidělilo PayU pos_auth_key ano STR {7,7} hodnota, kterou přidělilo PayU session_id ano STR {1,1024} ID platby musí být pro každou transakci jedinečné amount ano NUM {1,10} částka v haléřích pay_type ano ENUM desc ano STR {1,50} definice zvolené platební metody, jednotlivé hodnoty jsou uvedeny v Příloze 1 ve sloupci název krátký popis objevuje se Obchodu ve výpisech transakcí order_id ne STR {1,1024} číslo objednávky desc2 ne STR {0,1024} libovolná informace first_name ano STR {0,100} jméno last_name ano STR {0,100} příjmení street ne STR {0,100} ulice street_hn ne STR {0,10} číslo popisné street_an ne STR {0,10} číslo orientační city ne STR {0,100} město post_code ne STR {0,20} PSČ country ne STR {0,100} kód krajiny zákazníka (2 písmena) dle ISO-3166 https://www.iso.org/obp/ui/#iso:code:3166:cz email ano STR {0,100} e-mailová adresa phone ne STR {0,100} language ano ENUM client_ip ano STR {7,15} js ne ENUM ( 0, 1 ) telefonní číslo, je možné zadat několik čísel oddělených čárkami kód jazyka dle ISO-639 http://www-01.sil.org/iso639-3/ codes.asp?order=639_1&letter=c (aktuálně je možné uvádět buďto kód cs anebo en ) IP adresa zákazníka v následujícím formátu D{1,3}.D{1,3}.D{1,3}.D{1,3} tato hodnota definuje, jestli má prohlížeč zákazníka povolený JavaScript sig ano STR {32} kontrolní součet parametrů odesílaných ve formuláři ts ano STR časová známka použitá na výpočet hodnoty parametru sig Ujistěte se, že nám v rámci parametrů nové platby zasíláte pouze znaky, které existují ve znakové sadě kódování daného POS (obchodním místě v systému PayU). Např. Pokud je v POS nastaveno kódování UTF-8, ale v některém z parametrů zasíláte nějkaký znak nebo znaky, které ve znakové sadě UTF-8 neexistují, bude systém v takových případech generovat chybu 103. 17

Ve formuláři nové platby není povinné uvádět parametry obsahující údaje o adrese plátce, pokud je to však možné, doporučujeme tyto parametry používat. Uvádění těchto informací totiž umožňuje jednodušší identifikaci plátce v případě, že je nutné spárovat platbu manuálně. Identifikace plátce má v konkrétních případech nespárování platby vliv na konverzi. Po vytvoření platby bude zákazník metodou GET přesměrován na adresu UrlPositive nebo UrlNegative. Jelikož se může stát, že se zákazník zpátky na webové stránky Obchodu nevrátí (např. zavře-li okno svého prohlížeče dříve, než může dojít k přesměrování), informace získané prostřednictvím těchto URL adres nejsou závazné a není možné na jejich základě vyvozovat žádné závěry ohledně výsledných statusů plateb. 3 Pozor! Někdy může dojít k tomu, že Zákazník omylem zvolí nevhodnou platební metodu (např. vybere banku, ve které nevlastní účet, rozhodne se pro platbu kartou, kterou ale nemá u tu chvíli u sebe atp.). Chybu si Zákazník často uvědomí až ve chvíli, kdy je přesměrován na stránku banky či zprostředkovatele karetních transakcí. V takové chvíli se Zákazník často pokusí vrátit o krok nazpět s použitím příslušného tlačítka svého internetového prohlížeče a následně zvolit jinou platební metodu. V těchto případech je nutné zajistit, aby před tím, než je na PayU odeslán nový požadavek typu NewPayment, byla vygenerována nová hodnota parametru session_id (a to navzdory tomu, že z pohledu Obchodu jde stále o jednu a tutéž objednávku). Vytvoření nového session_id je nezbytné, jelikož před přesměrováním Zákazníka do banky vytváří systém PayU transakční záznam, který obsahuje také tento parametr. Opakované použití stejné hodnoty session_id způsobí v systému chybu, která vede k zamítnutí transakce. Před odesláním požadavku typu https://secure.payu.com/paygw/encoding/newpayment je tak nutné zajistit, aby použité session_id bylo jedinečné také v těch případech, kdy Zákazník změnil zvolenou metodu platby pro realizaci téže objednávky. Jednoduchým mechanismem, zajišťujícím jedinečnost hodnoty parametru session_id, může být např. propojení interního čísla objednávky z příslušného Obchodu s časovým razítkem vygenerovaným s milisekundovou přesností (session_id = order_id + - + časové razítko). Standardní způsob vytvoření platebního formuláře využívá tzv. PayU šablony (templates). Systém PayU umožňuje výběr ze dvou typů předdefinovaných šablon. Vytvoření formuláře nové platby prostřednictvím těchto šablon je velice jednoduché a může být provedeno ve třech krocích: 1. 2. 3. Vložení JavaScript knihoven do <head> sekce HTML dokumentu Vytvoření jednoduchého formuláře s odpovídajícími parametry Vložení úryvku JavaScriptu do formuláře platby Knihovna JavaScript může být ze systému PayU načtena z této lokace: UrlPayU/Encoding/js/pos_id/KK/template:x/ext_calc:y/paytype.js 18

kde příslušné parametry znamenají následující: 3 UrlPayU Encoding pos_id KK základní adresa aplikace PayU jedna z následujících hodnot: ISO, UTF, WIN hodnota, kterou přidělilo PayU, číslo (ID) POSu první dva znaky z klíče Key1 template:x identifikátor šablony, kde x znamená číselnou hodnotu z množiny {3, 5} ext_calc:y informace o tom, jestli do kalkulace hodnoty parametru sig má nebo nemá být zahrnut parametr pay_type: 1 = ano, 0 = ne Parametr template označuje, který typ předdefinované šablony bude použit. V případě potřeby je Obchodu povoleno užívanou šablonu upravit tak, aby vyhovovala jeho specifickým požadavkům. Jakékoliv úpravy šablony musí být schváleny ze strany provozovatele platebního systému PayU. Názvy a loga jednotlivých platebních kanálů a logo PayU není možné odstraňovat ani jakkoliv měnit. Parametr ext_calc označuje, jestli do kalkulace hodnoty parametru sig má být zahrnut parametr pay_type. Pokud je hodnota parametru ext_calc 0, pak parametr pay_type není zahrnutý do kalkulace parametru sig a jeho hodnota není zasílána. Pokud je hodnota parametru ext_calc 1, pak parametr pay_type je zahrnutý do kalkulace parametru sig a jeho hodnota v podobě parametru pay_ type zasílána je. JavaScript knihovny by měly být umístěny do <head> sekce HTML dokumentu (krok č. 1. uvedený výše) následujícím způsobem: <head> <script language= JavaScript type= text/javascript src= https://secure.payu.com/jsgenerator/js/ jquery-latest.js ></script> <script language= javascript type= text/javascript src= https://secure.payu.com/paygw/utf/js/pos_ id/kk/template:3/ext_calc:1/paytype.js > </script> </head> V tomto případě bude použita šablona číslo 3 (viz Příloha 6), jelikož parametru definujícímu typ šablony byla přisouzena hodnota 3. Anglická verze šablony číslo 3 má číslo 5. V souladu s krokem 3 uvedeným výše by měl být do platebního formuláře vložen tento úryvek JavaScriptu: <script language= JavaScript type= text/javascript > PlnPrintTemplate(); </script> 19

Příklad platebního formuláře s vloženým úryvkem: 3 <form action= https://secure.payu.com/paygw/utf/newpayment method= POST name= payform > <input type= hidden name= pos_id value= 12345 > <input type= hidden name= pos_auth_key value= wq2io3q > <input type= hidden name= session_id value= 1234565 > <input type= hidden name= amount value= 1000 > <script language= JavaScript type= text/javascript > PlnPrintTemplate(); </script> <input type= hidden name= desc value= Payment description > <input type= hidden name= client_ip value= 123.123.123.123 > <input type= hidden name= js value= 0 > <input type= hidden name= email value= example@example.cz > <input type= hidden name= first_name value= Petr > <input type= hidden name= last_name value= Novák > <input type= hidden name= language value= cs > <input type= hidden name= ts value= 251013105655 > <input type= hidden name= sig value= 9075ed67df1c3a4e5686ee7bbb78ad64 > <input type= submit value= Paywith PayU.cz > </form> <script language= JavaScript type= text/javascript > <!-- document.forms[ payform ].js.value=1; --> </script> 20

3.4 3.4.1 Výměna informací o transakcích Aplikace Obchodu je povinna ověřovat kontrolní součty přenášených informací. Oznámení změny statusu transakce Obchodu Každá změna statusu transakce se oznamuje aplikaci Obchodu. Na danou adresu UrlOnline pošle PayU požadavek POST včetně následujících parametrů: 3 pos_id session_id ts hodnota, kterou přidělilo PayU, identifikátor (ID) POSu hodnota zadaná Obchodem při vytvoření platby časová známka, hodnota potřebná k ověření kontrolního součtu sig kontrolní součet přenášených informací (viz kapitola 3.6) sig_ext sig_ext_order interní údaj systému PayU interní údaj systému PayU Hodnota sig počítá následujícím vzorcem: sig = md5(pos_id + session_id + ts + key2) Zpráva o změně statusu transakce neobsahuje žádné další informace. Podrobnosti transakce a její současný status MUSÍ být přečten a analyzován aplikací Obchodu mechanismy popsanými v kapitole 3.4.2. Po obdržení zmíněného požadavku MUSÍ aplikace Obchodu poslat v odpovědi nazpět řetězec OK. Pokud aplikace PayU obdrží jinou odpověď než tuto, uloží se odpověď do databáze a oznámení o změně statusu transakce se považuje za nedoručené. Aplikace Obchodu by měla počítat se situacemi, kdy je oznámení týkající se jedné transakce odesláno několikrát navzdory tomu, že se status transakce nezměnil. Odpověď OK by měla být standardně odeslána na každé takto opakovaně přijaté oznámení. Na konkrétní POS bývá v jednu chvíli zasílán vždy jeden požadavek POST, může ale dojít také k odeslání několik požadavků stejnému POS najednou. 21

Oznámení se posílají okamžitě po změně statusu transakce. Jestliže aplikace Obchodu nepotvrdí přijetí oznámení požadovaným způsobem, bude oznámení zasláno aplikaci Obchodu znovu v těchto časových periodách: 3 pokus prodleva 0-10 1 minuta 11-15 3 minuty 16-20 5 minut 21-25 10 minut 26-50 15 minut 51-75 30 minut 75-99 60 minut >=100 odesílání zastaveno 3.4.2 Rozeznávání statusu transakce Pro čtení aktuálního stavu transakce je nutné prostřednictvím metody POST vyvolat proceduru Payment/get (seznam procedur PayU viz kapitola 3.3.2) s následujícími parametry: pos_id session_id ts hodnota, kterou přidělilo PayU, identifikátor (ID) POSu hodnota zadaná Obchodem při vytvoření platby časová známka, hodnota potřebná k ověření kontrolního součtu sig kontrolní součet přenášených informací (viz kapitola 3.6) Hodnota sig se v tomto případě počítá následujícím vzorcem: sig = md5(pos_id + session_id + ts + key1) 22

V odpovědi obdrží aplikace Obchodu následující informace: 3 Formát txt : status: OK trans_id: 7 trans_pos_id: 1 trans_session_id: 417419 trans_order_id: trans_amount: 200 trans_status: 5 trans_pay_type: t trans_pay_gw_name: pt trans_desc: Platba pro shop.cz trans_desc2: trans_create: 2012-12-21 10:39:52 trans_init: 2012-12-21 10:41:03 trans_sent: 2012-12-21 10:41:44 trans_recv: trans_cancel: trans_auth_fraud: 0 trans_ts: 1094205761232 trans_sig: b6d68525f724a6d69fb1260874924759 Formát xml : <?xml version= 1.0 encoding= UTF-8?> <response> <status>ok</status> <trans> <id>7</id> <pos_id>1</pos_id> <session_id>417419</session_id> <order_id></order_id> <amount>200</amount> <status>5</status> <pay_type>t</pay_type> <pay_gw_name>pt</pay_gw_name> <desc>platba pro shopcz</desc> <desc2></desc2> <create>2012-12-21 10:39:52</create> <init>2012-12-21 10:41:03</init> <sent>2012-12-21 10:41:44</sent> <recv></recv> <cancel></cancel> <auth_fraud>0</auth_fraud> <ts>1094205828574</ts> <sig>a95dc2145079b16a3668175279c35736</sig> </trans> </response> 23

Co se týče údajů, které posílá zpátky PayU, počítá se hodnotu sig následujícím vzorcem: 3 sig = md5(pos_id + session_id + order_id + status + amount + desc + ts + key2) Popis jednotlivých polí oznámení je následující: Základní pole: pole txt pole xml popis Status responsetatus označuje stav zpracování - správně OK trans_id response/trans/id jedinečné id transakce, které přiděluje PayU trans_pos_id response/trans/pos_id id POSu, pro který byla transakce vytvořena trans_session_id trans_order_id response/transession_id response/transorder_id hodnota přidělena aplikací Obchodu při vytvoření transakce hodnota přidělena aplikací Obchodu při vytvoření transakce trans_amount response/transmount aktuální hodnota transakce v haléřích trans_status response/transtatus aktuální stav transakce v souladu s Přílohou 2 trans_pay_type response/trans/pay_type typ platby v souladu s Přílohou 1 trans_pay_gw_name trans_desc trans_desc2 response/trans/pay_gw_ name response/trans/desc response/trans/desc2 název brány vykonávající transakci interní informace aplikace PayU hodnota přidělena aplikací Obchodu při vytvoření transakce hodnota přidělena aplikací Obchodu při vytvoření transakce trans_create response/trans/create datum vytvoření transakce trans_init response/trans/init datum začátku transakce trans_sent response/trans/sent datum, kdy byla transakce předána k vybrání trans_recv response/trans/recv datum přijetí transakce trans_cancel response/trans/cancel datum zrušení transakce trans_auth_fraud response/trans/auth_fraud interní informace aplikace PayU trans_ts response/trans/ts hodnota potřebná na výpočet kontrolního součtu trans_sig response/trans/sig kontrolní součet přenášených informací 24

Další pole pro vybrané metody plateb: 3 testovací platba pole txt pole xml popis add_test response/trans/add_test vždy hodnota 1 add_testid response/trans/add_testid id transakce 3.4.3 Přijetí platby Pro přijetí platby, tj. potvrzení transakce, je potřeba vyvolat proceduru Payment/confirm použitím metody POST a zadat stejné parametry jako v případě rozeznávání statusu transakce (viz kapitola 3.4.2). Platby je nutné přijímat tehdy, je-li funkce automatického přijímání plateb vypnuta (v opačném případě probíhá přijímání plateb automaticky). Přijímat je tímto způsobem možné také platby, které mají status 5 pro přijetí. Alternativně je možné platby přijímat také prostřednictvím uživatelského rozhraní PayU na stránce nazvané Seznam transakcí. 3.4.4 Zamítnutí platby Pro zamítnutí platby je potřeba vyvolat proceduru Payment/cancel a zadat stejné parametry jako v případě rozeznávání statusu transakce (viz kapitola 3.4.2). Zamítání plateb je používáno tehdy, pokud je funkce automatického přijímání plateb vypnuta. Není-li platba zamítnuta v čase kratším než jaký je čas automatického zrušení platby (viz Příloha 1), dojde ke zrušení automaticky. Zamítat tímto způsobem je možné také platby, které mají status 5 pro přijetí. Platby je možné zamítat také prostřednictvím uživatelského rozhraní PayU, na stránce nazvané Seznam transakcí. 3.4.5 Status dokončení operace Odpovědi, které obdrží aplikace Obchodu po vyvolání procedur Payment/confirm a Payment/cancel vypadají následovně: Správné vykonání formát txt : status: OK trans_id: 7 trans_pos_id: 1 trans_session_id: 417419 trans_ts: 1094206530505 trans_sig: 9da7c868407fedae6f1b6aca9054632b 25

Správné vykonání formát xml : 3 <?xml version= 1.0 encoding= UTF-8?> <response> <status>ok</status> <trans> <id>7</id> <pos_id>1</pos_id> <session_id>417419</session_id> <ts>1094205828574</ts> <sig>a95dc2145079b16a3668175279c35736</sig> </trans> </response> Obdržení statusu OK v těchto případech neznamená, že transakce byla úspěšně potvrzena/zrušena. Tyto odpovědi pouze potvrzují přijetí žádosti ke zpracování. Potvrzení o změně statusu transakce je posíláno zvlášť standardním způsobem prostřednictvím adresy UrlOnline. Co se týče údajů, které posílá zpátky PayU, počítáme hodnotu sig následujícím vzorcem: Chyba formát txt : status: ERROR error_nr: 503 error_message: Chyba formát xml : <?xml version= 1.0 encoding= UTF-8?> <response> <status>error</status> <error> <nr>503</nr> <message></message> </error> </response> sig = md5(pos_id + session_id + ts + key2) 26

3.5 Struktura návratových adres UrlPositive a UrlNegative 3 Po dokončení platby je možné přesměrovat Zákazníka na URL adresu uvedenou v nastavení příslušného POSu. V závislosti na aktuálním statusu transakce je pro toto přesměrování použita buď adresa UrlPositive anebo UrlNegative. Na UrlPositive je Zákazník přesměrován poté, co úspěšně zadá platbu na stránkách svého internetového bankovnictví (v případě tzv. rychlých online převodů) anebo na stránce zpracovatele karetních transakcí (při platbě kartou). Jedná-li se o platbu převodem nebo složenkou, je Zákazník na UrlPositive přesměrován poté, co obdrží informace potřebné k provedení platby. K přesměrování na adresu UrlNegative dojde v případě, že platba není zahájena správně. Návratové adresy UrlPositive a UrlNegative slouží pouze pro informativní účely, na základě přesměrování na tyto adresy tak není možné vyvozovat žádné závěry ohledně výsledných statusů plateb. I v případě přesměrování na UrlPositive může totiž platba zůstat nedokončená (Zákazník např. nemusí mít na účtu dostatek prostředků pro provedení platby; v případě platby převodem anebo složenkou nemusí Zákazník vygenerované platební údaje vůbec použít atd.). Pro zjištění statusu transakce je tak vždy nutné vyvolat proceduru Payment/get (viz kapitola 3.4.2). Informace o aktuálních statusech transakcí je případně možné nalézt také v uživatelském rozhraní PayU. Návratové adresy mohou obsahovat následující konstanty, které jsou po přesměrování nahrazeny odpovídajícími hodnotami dle následující tabulky: konstanta %transid% %posid% %paytype% %sessionid% %amountps% %amountcs% %orderid% %error% popis identifikátor nové transakce vytvořený v aplikaci PayU hodnoty pos_id hodnoty pay_type hodnoty session_id hodnoty částky oddělovač je tečka hodnoty částky oddělovač je čárka hodnoty order_id Číslo chyby dle tabulky (viz Příloha 4), používá se pouze v případě UrlNegative Příklady: http://www.shop.cz/status_ok.html?pos_id=%posid%&session_id=%sessionid% http://www.shop.cz/status_error.html?pos_id=%posid%&session_id=%sessionid%&error=%error% 27

Informace o hodnotách výše uvedených konstant mohou být aplikací Obchodu využity mnoha různými způsoby. Podle informací o použitém typu platby (pay_type) je například možné specifikovat oznámení zobrazované Zákazníkovi na adrese URLPositive pro jednotlivé platební kanály. Na základě hodnoty parametru session_id může zase aplikace Obchodu vytvořit Zákazníkovi odkaz na novou platbu za tutéž objednávku (ovšem s použitím nové hodnoty session_id, protože ta musí být vždy jedinečná)v případech, kdy původní platba zůstane nedokončena. Číslo chyby (viz Příloha 4) umožňuje zjistit, z jakého důvodu nebyla platba vytvořena (funkci doporučujeme využívat např. ve fázi testování, kdy je jejím prostřednictvím možné velmi rychle nalézt a odstranit příčiny nejčastějších problémů při vytváření nových plateb) atd. Třetí adresou, kterou je možné definovat pro daný POS, je UrlOnline. Na tuto adresu jsou ze strany PayU odesílány oznámení o změně statusu transakce (viz kapitola 3.4.1). 3 3.6 Kontrolní součty MD5 Po každém odeslání požadavku aplikací Obchodu a každém vytvoření odpovědi na straně PayU je vytvořen kontrolní součet MD5, který umožňuje ověřit integritu dat. Kontrolní součty se vytvářejí podle následujícího vzorce ( + znamená operaci spojení řetězců znaků): sig = md5(pos_id + session_id + value1 + value2 + + valuen + ts + key) kde: pos_id session_id value1...valuen ts key hodnota, kterou přidělilo PayU ID platby jedinečné pro každou transakci seznam dalších hodnot uvedených v popisech konkrétních metod libovolný řetězec znaků, např. aktuální čas v sekundách (doporučujeme) řetězec znaků, který zná PayU a Obchod 28