Transaction-Reserve-v1

A Barion wikiből
  • Tervezet
  • Üzlet
  • Informatika
  • Pénzügy
  • Jog
  • 99%
  • Online elfogadó
  • Mobil elfogadó
  • Pénztárgép
  • Feltöltés
  • Piactér
  • Nonprofit
  • Parkolas

Új befoglalás indítása

POST /Transaction/Reserve

Az alábbi hívással lehetőség nyílik bolti vásárláskor adott összeget befoglalni a felhasználó tárcájából. A befoglalás annyiban különbözik a tényleges fizetéstől, hogy a tranzakció összege nem azonnal, hanem egy későbbi időpontban kerül átvezetésre a bolt tárcájába. A befoglalni kívánt összeget a Barion a befoglalás véglegesítéséig vagy a megadott időkeret végéig zárolja és csak a véglegesítéskor vezeti át a bolt tárcájába. Ez abban különbözik az online webshopok által használt befoglalási folyamattól, hogy itt már előre tudni kell, hogy milyen felhasználónak szeretnénk befoglalni.

A Barion ezt a metódust használja a parkolás során a minimum parkolási összeg biztosításához.

Bemenet

Mező neve Mező típusa Kötelező Megkötések Alapértelmezett érték Leírás Formátum / Példa
UserName string Kötelező min. 6, max. 254 karakter nincs Az API hívás hívójának Barion azonosító e-mail címe. user@example.com
Password string Kötelező min. 8, max. 100 karakter nincs Az API hívás hívójának jelszava. EgySimaJelszo
ApplicationId GUID Kötelező nincs nincs A tranzakciót indító bolt azonosítója. c82e38cc-6de0-41a1-8816-ee70c37f3c22
Amount decimal Kötelező min. 1 nincs A befoglalás összege ezres elválasztók és pénznem feltüntetése nélkül. 7500
Products Products Opcionális nincs nincs A vásárláshoz tartozó termékek adatai. Products
ShopTransactionId string Kötelező nincs nincs A tranzakció egyedi azonosítója a bolt saját rendszerében. TRANS0001
ReservePeriod TimeSpan Kötelező legalább egy másodperc nincs A befoglalás maximális időtartama. Ennyi időn belül kell a boltnak véglegesíteni a tranzakciót, ellenkezdő esetben a befoglalás törlődik és a vásárló visszakapja a pénzét. 00:30:00 (30 perc)
Comment string Opcionális max. 160 karakter nincs A befoglaláshoz tartozó megjegyzés. Maximum 160 karakter hosszú lehet. "Barion Pizza rendelés #00532"

Kimenet

Mező Típus Leírás Formátum / Példa
TransactionId GUID A sikeresen létrejött befoglalási tranzakció azonosítója. 8323cf68-5e03-4d67-a0fe-b3bea000c682
ErrorList Errorlist A kérés során esetlegesen felmerülő hibákat tartalmazó tömb. Sikeres hívás esetén ez a tömb üres. Errorlist

Hibakódok

Hiba kódja Hiba leírása
1 Nem megfelelő felhasználónév vagy jelszó.
999 Ismeretlen hiba történt a kérés feldolgozása során.
2001 A bemeneti paraméterek valamelyike nem felelt meg az előírásoknak. Ez a hiba annyiszor szerepel(het) a kimenetben, ahány mező hibás volt. Ez esetben az ErrorMessage mezőben található a konkrét hiba: a Validation Error után látható a hibás mező megnevezése, a Value pedig a hiba leírását tartalmazza.
4002 A megadott bolti azonosító nem létezik.
4001 A befoglalás véglegesítése során rendszerhiba történt.
5002 A felhasználónak nincs elég pénze a befoglalás véglegesítéséhez.
5801 A hívó fél érvénytelen paramétereket küldött.

Példák

Sikeres befoglalás

Az alábbi példában a felhasználó terméket rendel egy webshopból, ezzel sikeresen befoglal 5000 Ft összeget a tárcájából. Az tranzakciót a bolt telefonos egyeztetés után fogja véglegesíteni.

Bemenet

{
    UserName: "ezermester@example.com",
    Password: "EgySimaJelszo",
    Amount: 5000,
    Products: [
      {
        Name: "SuperToolKit 200",
        Description: "200 darabos szerszámkészlet minden ház körüli barkácsoláshoz",
        Quantity: 1,
        Unit: "db",
        Price: 5000,
        SKU: "P_STK200-12345"
      }
    ],
    ShopTransactionId: "TRANS0001",
    ReservePeriod: "24:00:00", // Egy nap
    ApplicationId: "04ed8c89-c9bd-4c17-92f6-a0964587bbff"
}

Kimenet

{
    "TransactionId": "25429422-324d-41ec-a8f3-df8f736fafd0",
    "ErrorList": []
}

Sikertelen befoglalás

Rossz bolti azonosító

Ebben a példában a befoglalás sikertelen, mert a hívó fél rossz bolti azonosítót küldött.

Bemenet

{
    UserName: "ezermester@example.com",
    Password: "EgySimaJelszo",
    Amount: 5000,
    Products: [
      {
        Name: "SuperToolKit 200",
        Description: "200 darabos szerszámkészlet minden ház körüli barkácsoláshoz",
        Quantity: 1,
        Unit: "db",
        Price: 5000,
        SKU: "P_STK200-12345"
      }
    ],
    ShopTransactionId: "TRANS0002",
    ReservePeriod: "24:00:00", // Egy nap
    ApplicationId: "12345678-abcd-1234-1234-123456789abc"
}

Kimenet

{
    "TransactionId": "00000000-0000-0000-0000-000000000000",
    "ErrorList": [
        {
            "ErrorNumber": 4002,
            "ErrorMessage": "Invalid shop!",
            "Details": null
        }
    ]
}

Nincs elég pénz a befoglaláshoz

Ebben a példában 50 000 Ft összeget szerettünk volna befoglalni, ennyi pénze azonban nincs a felhasználónak.

Bemenet

{
    UserName: "ezermester@example.com",
    Password: "EgySimaJelszo",
    Amount: 50000,
    Products: null,
    ShopTransactionId: "TRANS0003",
    ReservePeriod: "00:30:00", // fél óra 
    ApplicationId: "04ed8c89-c9bd-4c17-92f6-a0964587bbff"
}

Kimenet

{
    "TransactionId": "00000000-0000-0000-0000-000000000000",
    "ErrorList": [
        {
            "ErrorNumber": 5002,
            "ErrorMessage": "Balance is not enough to start new transaction!",
            "Details": null
        }
    ]
}