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"
)
)
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.:
- 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ý.
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.
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.
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:
- Presmerujete zákazník na bránu, podľa url z atribútu
tatra_pay_plus_url. - Zobrazenie v iframe. Pre detailné informácie o použití iframe zobrazenia prosím navštívte Developer portál dokumentáciu