Vytvorenie platby
Pre vytvorenie platby cez Python SDK zavolajte metódu sdk.createPayment.
Zobraziť príklady pre všetky dostupné platobné metódy
const { data, error } = await sdk.createPayment(
{
bankTransfer: {},
payLater: {
order: {
orderNo: "132456",
orderItems: [
{
itemDetail: {
itemDetailSK: {
itemName: "Jablko",
},
},
quantity: 1,
totalItemPrice: 10000,
},
],
},
},
userData: {
firstName: "Jozko",
lastName: "Hruska",
phone: "+421911123456",
},
cardDetail: {
cardHolder: "Jozko Hruska",
},
basePayment: {
endToEnd: "/VS0123456789/SS0123456789/KS123456",
instructedAmount: {
amountValue: 10000,
currency: "EUR",
},
},
},
REDIRECT_URI,
);
Povinné údaje
Tatrapay+ podporuje viaceré platobné metódy. Na základe zvolenej metódy môžete v požiadavke doplniť dodatočné údaje. Niektoré údaje sú však povinné pre všetky typy platieb:
basePayment: {
endToEnd: "/VS0123456789/SS0123456789/KS123456",
instructedAmount: {
amountValue: 99.99,
currency: "EUR",
},
},
Najčastejšia chyba nastáva, keď hodnota instructed_amount.amount_value nie je správne zaokrúhlená a API ju odmietne.
Prosím zaokrúhlite vaše údaje na 2 desatinné miesta.
Úprava jazyka a preferovanej metódy
V základe Tatrapay+ zobrazí všetky dostupné platobné metódy a bude zobrazená v slovenskom jazyku.
Ak chcete upraviť toto správanie, môžete poslať parametre language a preferred_method do create_payment.
Ak je preferred_method dostupná, zákazník na ňu bude priamo nasmerovaný.
Zobrazenie brány v anglickom jazyku s platbou prevodom
const { data, error } = await sdk.createPayment(
...,
REDIRECT_URI,
'en',
'BANK_TRANSFER',
);
Presmerovanie na URI
redirect_uri je použitá ako návratová adresa zákazníka po vykonaní platby. Táto URI je povinná a slúži na spracovanie výsledku platby.
Ak vaša aplikácia poskytuje viacero jazykov s odlišnými URI, ako napr.:
- https://example.com pre 1 jazyk
- https://example.com/de/ pre nemecký jazyk
musíte zaregistrovať obidve URI v developer portáli.
Následne sa pri požiadavke create_payment uistite, že používate redirect_uri zodpovedajúcu správnemu jazyku.
Táto URI musí presne zodpovedať URI definovanej v Developer Portáli
Údaje špecifické pre platobnú metódu
Bankový prevod a platba cez QR kód
Pre túto platobnú metódu musíte definovať atribút bank_transfer. Môže byť prázdny alebo obsahovať dodatočné informácie.
Ak nepoužíjete tento atribút, bankový prevod nebude zobrazený.
bankTransfer: {
remittanceInformationUnstructured: "Additional informations"
}
Platba kartou
Táto platobná metóda vyžaduje card_detail.card_holder, user_data.first_name a user_data.last_name.
Jeden z atribútov user_data.email alebo user_data.phone je povinný. Podľa týchto údajov budú zákazníkom zasielané notifikácie.
SDK automaticky odstráni diakritiku v atribúte card_detail.card_holder, takže ich nemusíte konvertovať.
userData: {
firstName: "Jozko",
lastName: "Hruska",
email: "test@tatrabanka.ok",
phone: "+421911123456",
},
cardDetail: {
cardHolder: "Jozko Hruska",
}
PayLater (Na splátkyTB)
Táto platobná metóda vyžaduje informácie o zakúpených položkách zákazníka. Ich štruktúra je komplexnejšia a popis všetkých údajov nájdete v API príručke.
API odmietne požiadavky, v ktorých instructed_amount.amount_value sa nerovná sume všetkých položiek.
payLater: {
order: {
orderNo: "111",
orderItems: [
{
quantity: 1,
totalItemPrice: 200,
itemDetail: {
itemDetailSK: {
itemName: "Stol",
itemDescription: "biely stol",
},
itemDetailEN: {
itemName: "Table",
itemDescription: "White table",
},
},
itemInfoURL: "https://url.sk",
},
],
preferredLoanDuration: 24,
downPayment: 10,
},
capacityInfo: {
monthlyIncome: 1000,
monthlyExpenses: 0,
numberOfChildren: 0,
},
}
Odpoveď
Po vytvorení požiadavky na platbu obdržíte InitiatePaymentResponse s nasledujúcimi údajmi:
{
"paymentId": "580ff61e-efdd-40e5-8bc4-c373d59cf0c2",
"tatraPayPlusUrl": "https://api.tatrabanka.sk/tatrapayplus/production/v1/auth?paymentId=580ff61e-efdd-40e5-8bc4-c373d59cf0c2&client_id=l7ba7ffa0bf66b49b88d17dfe144955f54&hmac=19be0bf2a2e5d5e8626c01203ba747648d8fea0fd0106e51786a13183e9e91c8",
"availablePaymentMethods": [
{
"isAvailable": true,
"paymentMethod": "CARD_PAY"
},
{
"isAvailable": false,
"reasonCodeMethodAvailabilityDescription": "Method is not in the partner contract",
"paymentMethod": "PAY_LATER",
"reasonCodeMethodAvailability": "NO_CONTRACT"
},
{
"isAvailable": true,
"paymentMethod": "BANK_TRANSFER"
},
{
"isAvailable": true,
"paymentMethod": "QR_PAY"
}
]
}
Mali ste si uložiť paymentId k objednávke spojenej s danou platbou. Neskôr ho budete potrebovať pre zistenie stavu platby.
Následne máte 2 možnosti pre zobrazenie platobnej brány:
- Presmerujete zákazník na bránu, podľa url z atribútu
tatraPayPlusUrl. - Zobrazenie v iframe. Pre detailné informácie o použití iframe zobrazenia prosím navštívte Developer portál dokumentáciu