Skip to main content

Vytvorenie platby

Pre vytvorenie platby cez Python SDK zavolajte metódu TBPlusSDK.create_payment().

Zobraziť príklady pre všetky dostupné platobné metódy
from tatrapayplus.client import TBPlusSDK
from tatrapayplus.models import *

client = TBPlusSDK(
"your-client-id",
"your-client-secret",
)

payment_data = InitiatePaymentRequest(
base_payment=BasePayment(
instructed_amount=Amount(
amount_value=10.0,
currency="EUR",
),
end_to_end="ORDER123456",
),
bank_transfer=BankTransfer(),
pay_later=PayLater(
order=Order(
order_no="ORDER123456",
order_items=[
OrderItem(
quantity=1,
total_item_price=10.0,
item_detail=ItemDetail(
item_detail_sk=ItemDetailLangUnit(
item_name="Testovací produkt",
item_description="Popis produktu",
),
item_detail_en=ItemDetailLangUnit(
item_name="Test Product",
item_description="Product description",
),
),
)
],
),
),
card_detail=CardDetail(
card_holder="Janko Hruška",
),
user_data=UserData(
first_name="Janko",
last_name="Hruska",
email="janko.hruska@example.com",
),
)

response = client.create_payment(payment_data, "https://your-redirect-uri.com", "127.0.0.1")

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:

base_payment=BasePayment(
end_to_end="VS0123456789/SS0123456789/KS123456",
instructed_amount=Amount(
amount_value=99.99,
currency="EUR"
)
)
Upozornenie

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
client.create_payment(
payment_data,
redirect_uri,
ip_address,
'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.:

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.

Upozornenie

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ý.

bank_transfer \=BankTransfer(remittance_information_unstructured: "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.

tip

SDK automaticky odstráni diakritiku v atribúte card_detail.card_holder, takže ich nemusíte konvertovať.

user_data=UserData(
first_name="Janko",
last_name="Hruska",
email="janko.hruska@example.com",
phone="+421911123456",
),

card_detail=CardDetail( card_holder="Janko Hruška")

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.

Upozornenie

API odmietne požiadavky, v ktorých instructed_amount.amount_value sa nerovná sume všetkých položiek.

pay_later = PayLater(
order=Order(
order_no="ORDER123456",
order_items=[
OrderItem(
quantity=1,
total_item_price=10.0,
item_detail=ItemDetail(
item_detail_sk=ItemDetailLangUnit(
item_name="Testovací produkt",
item_description="Popis produktu",
),
item_detail_en=ItemDetailLangUnit(
item_name="Test Product",
item_description="Product description",
),
),
item_info_url="https://tatrabanka.sk",
)
],
preferred_loan_duration=12,
down_payment=1.0,
),
capacity_info=CapacityInfo(
monthly_income=2000.0,
monthly_expenses=800.0,
number_of_children=1,
),
)

Odpoveď

Po vytvorení požiadavky na platbu obdržíte InitiatePaymentResponse s nasledujúcimi údajmi:

InitiatePaymentResponse(
payment_id='d7ec77c6-39d8-4011-a462-1a0f1b23f65f',
tatra_pay_plus_url='https://api.tatrabanka.sk/tatrapayplus/sandbox/v1/auth?paymentId=d7ec77c6-39d8-4011-a462-1a0f1b23f65f&client_id=l7ba7ffa0bf66b49b88d17dfe144955f54&hmac=7043761cb4cff51d1d084f90cd25d370b89515a1c43c39e6ea459dd504059834',
available_payment_methods=[
AvailablePaymentMethod(
payment_method=PaymentMethod.BANK_TRANSFER,
is_available=True,
),
AvailablePaymentMethod(
payment_method=PaymentMethod.CARD_PAY,
is_available=True,
),
]
)

Mali ste si uložiť payment_id 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:

  1. Presmerujete zákazník na bránu, podľa url z atribútu tatra_pay_plus_url.
  2. Zobrazenie v iframe. Pre detailné informácie o použití iframe zobrazenia prosím navštívte Developer portál dokumentáciu