• Produkt
  • Obchod
  • Ceník
  • Příručka
  • Podpora
 0,00 Kč
Přihlášení / Registrace
  • EN
  • RO
  • DE
  • SK
  • Produkt
  • Obchod
  • Ceník
  • Příručka
  • Podpora
KOUPIT

Úvod

  • Než začnete
  • Vizuál účtenky
  • Ke stažení
  • Právní vyloučení odpovědnosti
  • Podpora při integraci
  • Certifikace & Testovací scénáře

app2app API

  • Úvod k app2app API
  • 1. Registrace transakce
  • 2. Požadavek na platbu [transactionRequestV2]
  • 3. Získání stavu transakce
  • 4. Získání detailů o transakci
  • Příklady kódů
  • Návratové kódy
  • Kontrola nainstalované aplikace
  • ID klienta
  • Nastavení v Android 11
  • Release notes

Cloud API

  • Úvod ke Cloud API
  • Flow transakce
  • Transakce prodej
  • Storno transakce
  • Uzávěrka
  • Master API účet
  • Hlavní strana
  • Příručka
  • API
  • app2app API
  • 2. Požadavek na platbu [transactionRequestV2]

2. Požadavek na platbu [transactionRequestV2]

Obsah
  • Request [TransactionRequestV2Entity]
  • Response [TransactionResultV2Entity]
    • Příklad requestu typu prodej
    • Příklad requestu typu storno transakce
    • Příklad requestu uzávěrka

Po obdržení ID transakce by vaše aplikace měla vygenerovat a odeslat požadavek na transakci. Platební aplikace spustí celý platební proces a vrátí výsledek. Ve starších verzích (níže než verze 1.2.) byla k získání výsledku transakce použita synchronní komunikace (funkce naslouchání je zastaralá). Pro novou verzi je komunikace asynchronní, kde se pro získání aktuálního stavu transakce používá metoda getTransactionState.

void transactionRequestV2(String transactionRequesJsonString, ITransactionResultListener listener) throws RemoteException

Request [TransactionRequestV2Entity]

Na základě typu transakce jsou následující pole povinná/nepovinná/volitelná:

[(M) povinné, (O) volitelná)]

Jméno / Name
amount
cancelMode
clientID
originReferenceNum
originTransactionID
printByPaymentApp
tipAmount
transactionID
transactionType
redirectPackageName (deprecated)
redirectInfo
clientInfo
preferableReceiptType
Type
Long
Integer
String
String
String
Boolean
Long
String
Integer
String
TransactionRequestRedirectInfoEntity
ClientInfoEntity
ReceiptType
Příklad / Example
15500
1
3b06e9dd-1158-48c2-ba6e-6a5ce4750f5f
true
500
300e5d79-8764-4d7c-ad0c-ea02ba2b0fe4
1
com.example.integrationapp
com.example.integrationapp
TEST
Sale
M
O
O
O
O
M
M
Storno
M
O
M
M
M
Close batch
O
M
M

Upozornění

Formát pro všechny částky je na dvě desetinná místa, takže například 50 Kč by mělo být vyplněno jako 5000.

Popis polí

amount

Částka určuje objem transakce. Tato částka se počítá v domácí měně, kterou používá terminál. Formát je na dvě desetinná místa, takže například 50 Kč by mělo být vyplněno jako 5000.

tipAmount

V restauracích můžete požádat zákazníka o přidání spropitného. Tato částka se pak přičte k původní částce zadané obchodníkem.

transactionID

Jedinečné ID generované platební aplikací během procesu registrace transakce.

clientID

Volitelná kontrola přihlášeného uživatele. Více zde.

transactionType

Typ transakce definuje typ transakce, kterou chcete zahájit. Dostupné hodnoty jsou:

  • SALE(1)
  • VOID(2)
  • CLOSE_BATCH(4)

originTransactionID

Používá se pro storno transakce a měl by obsahovat ID transakce, kterou chcete zrušit.

originReferenceNum

Toto pole je volitelné a může být vyplněno referenčním číslem – libovolným řetězcem AN s maximálně 20 znaky. Tento řetězec je viditelný ve všech přehledech transakcí a pomáhá účetním oddělením spárovat platby s objednávkami. Diakritika není podporována.

cancelMode

1 – Last transaction

2 – Older transactions

printByPaymentApp

Definuje, zda účtenku klientovi předá vaše aplikace nebo GP tom. Výchozí hodnota je true (tedy GP tom nabídne způsob předání účtenky klientovi). Pokud pošlete hodnotu “false”, ihned po transakci vrátíme uživatele do vaší aplikace a předání účtenky je na vás.

Response [TransactionResultV2Entity]

Doporučení!

Tato odpověď je v API kvůli zpětné kompatibilitě se staršími verzemi. Důrazně doporučujeme nepoužívat jej pro manipulaci na vaší straně, protože je nahrazen metodou dotazu na transakci. Očekáváme, že tato odpověď bude v budoucnu zcela odstraněna – důvod: není vždy zajištěno, že odpověď na ni bude přijata (například při ukončení aplikace systémem nebo uživatelem).

Pole / Field
result
error
clientID
responseMessage
transactionID
merchantID
terminalID
currencyCode
amount
tipAmount
cashbackAmount
cardNumber
cardIssuer
cardDataEntry
approvedCode
referenceNumber
traceNumber
invoiceNumber
date
time
emvAid
emvAppLabel
sequenceNumber
batchNumber
batchTotalNum
batchSaleNum
batchSaleAmount
batchVoidNum
batchVoidAmount
printByPaymentApp
cardProduct
receiptNumber
Type
Integer
ErrorResultEntity
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
String
Integer
Integer
Long
Integer
Long
Boolean
CardProduct
String
Volitelné / Optional
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes

Všechna pole jsou vysvětlena v tomto článku.

Příklad requestu typu prodej

final TransactionRequestV2Entity entity = new TransactionRequestV2Entity();
entity.setTransactionID(/*Your registration ID*/);
entity.setPrintByPaymentApp(true);
entity.setTipAmount(200L); //2
entity.setAmount(15500L); //155
entity.setTransactionType(TRANS_TYPE_SALE); //TRANS_TYPE_SALE == 1
}
//Please use json string of (TransactionRequestV2Entity) to communicate with API for version 2
try {
iSmartconnectService.transactionRequestV2(new Gson().toJson(entity), transactionResultListener);
} catch (RemoteException e) {
e.printStackTrace();
}

Příklad requestu typu storno transakce

/**
* Last Transaction Void
*/

private fun doVoid() {
val entity = TransactionRequestEntity()
entity.transactionType = 2
entity.trasanctionID = “000005”
entity.cancelMode = 1
try {
iSmartconnectService?.transactionRequest(entity, transactionResultListener)
} catch (e: RemoteException) {
Log.e(TAG, e.message) }
}

/**
* Void of previous transaction with UI ->
* Data from previous transaction must be entered on Terminal Screen
*/

private fun doSpecialVoidWithUI() {
val entity = TransactionRequestEntity()
entity.transactionType = 2
entity.trasanctionID = regTransactionId
entity.cancelMode = 2
try {
iSmartconnectService?.transactionRequest(entity, transactionResultListener)
} catch (e: RemoteException) {
Log.e(TAG, e.message) }
}

/**
* Void of previous transaction without UI ->
* Data from previous transaction must are sent in TransactionRequestEntity
*/

private fun doSpecialVoidWithoutUI() {
val entity = TransactionRequestEntity()
entity.transactionType = 2
entity.trasanctionID = regTransactionId
entity.cancelMode = 2

//Data from previous transaction we would like to cancel
entity.originTransactionID = “000002”
entity.originSeqNumber = “001362001”
entity.last4CardNumber = “8175”
entity.amount = “100”
entity.originDate = “160420”
entity.originalTerminalId = “255746”
try {
iSmartconnectService?.transactionRequest(entity, transactionResultListener)
} catch (e: RemoteException) {
Log.e(TAG, e.message)
}
}

Příklad requestu uzávěrka

private fun doCloseBatch() {
val entity = TransactionRequestEntity()
entity.transactionType = 4
entity.trasanctionID = “000005”
try {
iSmartconnectService?.transactionRequest(entity, transactionResultListener)
} catch (e: RemoteException) {
Log.e(TAG, e.message)
}
}

Jak se vám líbí tento návod?
Sdílejte tento návod:
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
Stále se nedaří najít? Jak můžeme pomoci?

Jak vám můžeme pomoci?

Updated on 28. 12. 2022
1. Registrace transakce3. Získání stavu transakce

Vložit komentář Zrušit odpověď na komentář

Pro přidávání komentářů se musíte nejdříve přihlásit.

Obsah
  • Request [TransactionRequestV2Entity]
  • Response [TransactionResultV2Entity]
    • Příklad requestu typu prodej
    • Příklad requestu typu storno transakce
    • Příklad requestu uzávěrka

O produktu

  • Produkt
  • Vydané verze
  • Podpora
  • Blog

Pro vývojáře

  • Úvod do integrace
  • app2app API
  • Cloud API
  • Integrace dle typu terminálu
  • Integrované společnosti
  • Ke stažení

O společnosti

  • Kontakt
  • Prohlášení o ochraně informací
  • Podmínky používání stránek
  • Všeobecné obchodní podmínky
  • GDPR

Příručka

  • Instalace aplikace
  • První spuštění aplikace
  • Platba kartou
  • Storno platby
  • Biometrika
  • Podpora přímo v aplikaci