Technický popis Premium SMS bez platební brány
Nevíte, jak na integraci platební metody Premium SMS bez platební brány? Podívejte se na postup.
Tip GoPay:
Pokud máte zájem o Premium SMS bez platební brány, kontaktujte svého obchodního správce nebo obchodní oddělení na e-mailu podnikej@gopay.cz.
Postup aktivace Premium SMS bez platební brány
Nejprve je nutné na GoPay nahlásit klíčové slovo, které je následně registrováno u operátora, dále cenovou hladinu Premium SMS a text SMS zprávy. Po registraci klíčového slova je možno zahájit technickou integraci dle uvedené dokumentace.
Ukázka textu SMS zprávy:
Vas kod pro ziskani sluzby je: xxxxx. Kod uplatnite na portalech spolecnosti xxxxxx. Platba xx Kc pres GoPay.
Tip GoPay: Text SMS může nabývat délky maximálně 128 znaků.
Platební schéma popisuje platbu prostřednictvím Premium SMS tzv. variantou bez platební brány. Je určeno obchodníkům, kteří chtějí zpřístupnit službu zákazníkům na základě odeslané SMS ze strany uživatele tak, aby uživatel v platebním procesu nemusel potvrzovat platbu na straně platebního systému GoPay. Výsledkem takové komunikace je přístupový kód, který uživatel obdrží na svůj mobilní telefon a zadá jej na straně prodejního místa. Následně je mu zpřístupněna služba nebo zboží.
Schéma procesu platby Premium SMS bez platební brány
Platba je inicializována ze strany zákazníka prodejního místa, který dle instrukcí pošle kód v určitém tvaru (JK16) na uvedené telefonní číslo (90211). Následuje založení platby na straně GoPay a vytvoření identifkátoru platby (PSID = 785) V prvotní komunikaci je prodejní místo informováno o vytvoření platby z určitého telefonního čísla (+420 777 777 777) s daným kódem (JK16), částkou (16), měnou (CZK) a identifikátorem platby (PSID = 785). Na základě předchozí komunikace obchodník vygeneruje přístupový kód a reklamní text, který odešle zpět na stranu GoPay. GoPay pak zákazníkovi odesílá MT PR SMS, která obsahuje částku a měnu (16 CZK), kterou zákazník zaplatí, přístupový kód (7c8b) pro využití zaplaceného zboží nebo služeb a tělo reklamního textu (zkrácené do max přípustné délky SMS 128 znaků). Po obdržení automatické doručenky ze strany zákazníka do platebního systému GoPay dojde k odeslání notifikace o změně stavu platby. Prodejní místo se následně zeptá na stav platby a dle odpovědi poskytne zákazníkovi dané zboží či službu.
Stav platby (paymentStatus)
typ: JSON, request
Jako výsledek vytvoření platby je ze systému GoPay odeslán komunikační objekt Stav platby (paymentStatus), který obsahuje identifikaci platby a parametry. Tento objekt je obecný a obsahuje několik parametrů, které nejsou pro tento typ platby důležité (jsou označeny šedou barvou) a není je potřeba jakkoliv zpracovávat.
Název parametru | Popis parametru | Povinný | Příklad |
---|---|---|---|
paymentSessionId | Identifikace platby v systému GoPay. | ANO | 785 |
parentPaymentSessionId | Identifikace rodičovské platby. Používáno pro opakované platby. | NE | - |
targetGoId | Identifikace prodejního místa/GoPay uživatele v rámci GoPay. Celočíselný identifikátor definován během integrace prodejního místa. | ANO | 1234567890 |
productName | Popis zboží/služby. | ANO | platba jk |
orderNumber | Identifikace objednávky v rámci prodejního místa. Alfanumerické označení objednávky, max 128 znaků. | ANO | JK 16 |
totalPrice | Cena zboží/služby v haléřích. Celočíselné vyjádření ceny. Předaný při založení platby. | ANO | 1600 |
currency | Určuje měnu platby. Formát měny odpovídá ISO 4217. | ANO | CZK |
sessionState | Stav platby | ANO | PAYMENT_METHOD_CHOSEN |
sessionSubState | Doplňující stav platby - kódy reprezentují specifické situace: 101 - k úhradě vybrána online platební metoda 102 - k úhradě vybrána offline platební metoda Zákazník obdržel informační e-mail s instrukcemi pro provedení platby. |
NE | 101 |
sessionSubStateDesc | Textový popis doplňující informace. | NE | - |
result | CALL_COMPLETED - volání WS proběhlo bezchybně | ANO | CALL_COMPLETED |
resultDescription | Popis chybové situace při CALL_FAILED | NE | - |
preAuthorization | Informuje, zda byla platba založena jako předautorizovaná platba. | NE | - |
recurrentPayment |
Informuje, zda byla platba založena jako opakovaná. |
NE | - |
paymentChannel | Určuje platební metodu, kterou zákazník vybral pro úhradu platby. | NE | vždy eu_pr_sms |
encryptedSignature | Podpis platebního příkazu. Sestavení řetězce pro podpis, viz níže. | ANO | 3d1dd5663487a04f1419929d965238d5973e4728b85ea6c4b5779e438a289437bccbc34e32c0f62d8409f3930765285e |
p1 | Telefonní číslo zákazníka | ANO | +420777777777 |
p2-p4 | Volitelné parametry | NE | - |
Řetězec pro podpis
Šifrovaný podpis je sestaven z vlastností stavu platby. Podpis je šifrován tajným klíčem označeným jako secureKey, který je předáván v rámci integrace prodejního místa.
Řetězec pro sestavení podpisu |
targetGoId+'|'+productName+'|'+totalPrice+'|'+currency+'|'+orderNumber+'|'+recurrentPayment+'|'+parentPaymentSessionId+'|'+preAuthorization+'|'+result+'|'+sessionState+'|'+sessionSubState+'|'+paymentChannel+'|'+secureKey |
{
"paymentSessionId": 785,
"sessionState": "PAYMENT_METHOD_CHOSEN",
"sessionSubState": "101",
"productName": "platba jk",
"targetGoId": 1234567890,
"orderNumber": "JK16",
"totalPrice": 1600,
"currency": "CZK",
"paymentChannel": "eu_pr_sms",
"result": "CALL_COMPLETED",
"resultDescription": "",
"encryptedSignature": "3d1dd5663487a04f1419929d965238d5973e4728b85ea6c4b5779e438a289437bccbc34e32c0f62d8409f3930765285e"
}
Odpověď na notifikaci (notifyResult)
typ:JSON, response
Tento komunikační objekt se předává zpět na stranu GoPay po vytvoření přístupového kódu a reklamního textu pro danou platbu. Objekt nabývá následujících parametrů.
Název parametru | Popis parametru | Povinný | Příklad |
---|---|---|---|
paymentSessionId | Identifikace platby v systému GoPay. Celé číslo | ANO | 785 |
status | Stav platby. Nabývá hodnot OK nebo NOK | ANO | OK |
p1 | Přístupový kód | ANO | 7c8b |
p2 | Volitelný parametr | NE | - |
p3 | Volitelný parametr | NE | - |
p4 | Reklamní text bez diakritiky. | ANO | Nakupujte s JK Shop. |
encryptedSignature | Podpis komunikačního elementu. Sestavení podpisu viz sestavení řetězce pro podpis níže. | ANO | 09aad1ee4226e96dca490e308fb2a75b39bbb80516f8cf62f0ff5ddee36ae287b21d6f2dd44b298409f3930765285e |
Řetězec pro podpis
Šifrovaný podpis je sestaven z vlastností stavu platby. Podpis je šifrován tajným klíčem označeným jako secureKey, který je předán v rámci integrace prodejního místa.
Řetězec pro sestavení podpisu |
paymentSessionId+"|"+status+"|"+p1+"|"+p2+"|"+p3+"|"+p4+"|"+secureKey |
{
"paymentSessionId": 785,
"status": "OK",
"p1": "7c8b",
"p4": "Nakupujte s JK Shop.",
"encryptedSignature": "09aad1ee4226e96dca490e308fb2a75b39bb806516f8cf62f01ff5ddeee36ae287b21d6f2dd44b298409f3930765285e"
}
Oznámení o změně stavu platby probíhá stejným způsobem jako u standardní integrace.
Níže je uveden příklad skriptu v PHP, který přijme požadavek na založení platby a vrátí přístupový kód. Jedná se pouze o část kódu demonstrující komunikaci, bez jakéhokoli přístupu do databáze, nebo dynamického generování kódu.
<?php
require_once("config.php"); // soucasti GoPay PHP api 2.5
require_once('gopay_helper.php'); // soucasti GoPay PHP api 2.5
$json = file_get_contents('php://input'); $obj = json_decode($json);
if (!$fd) {
echo "Error! Couldn't open the file.";
} else {
$p1 = "TEST P1";
$p4 = "TEST P4";
$status = "OK";
$signature = GopayHelper::encrypt(GopayHelper::hash($obj->{"paymentSessionId"}."|".$status."|".$p1."|||".$p4."|".SECURE_KEY), SECURE_KEY);
$res = '{"paymentSessionId":'.$obj->{"paymentSessionId"}.',"status":"'.$status.'","p1":"'.$p1.'","p4":"'.$p4.'","encryptedSignature":"'.$signature.'"}';
echo $res;
}
?>
Jednotlivé kroky integrace premium SMS bez platební brány
Po komunikaci s obchodním oddělením a registraci klíčového slova a cenové hladiny je nás třeba kontaktovat na integrace@gopay.cz.
Zašlete nám prosím adresu Vámi vytvořeného skriptu (podle popisu výše), který se bude starat o přijetí požadavku na založení platby.
Adresu skriptu zaneseme do systému a její nastavení Vám potvrdíme. Poté již můžete přistoupit k testování.
Virtuální SMS můžete odeslat z našeho simulačního terminálu.
SMS terminál |
---|
https://partner.sandbox.gopay.com/gp-gateways/premiumsms/initSmsAuto.action |
Jako číslo operátora vyplňte 90211 a jako text SMS zprávy zadejte Vaše klíčové slovo.
Během několika minut bude Váš skript kontaktován s požadavkem na potvrzení platby. Jakmile bude platba potvrzena a obdržíme od Vás přístupový kód, změní se stav platby na PAID, a na Váš notifikační skript bude odeslána automatická http notifikace. Po notifikaci se dotážete na stav platby. Pokud bude platba ve stavu PAID, tak je možné přístupový kód aktivovat.