# Fizetési folyamat (rákövetkező fizetés)

A rákövetkező fizetési folyamat leírását négy részre bontottuk a könnyebb átláthatóság miatt. Az elválasztás alapját a kereskedő boltjából indított négy fő lépés adja, ezek a lépések a következők:

A. **`Init`** - kétlépcsős tranzakció inicializálása és a vásárló adatainak átadása rendszerünknek\
B. **`Start`** - kétlépcsős tranzakció indítása és a vásárló átirányítása a fizetési szolgáltatóhoz\
C. **`Result`** - kétlépcsős tranzakció eredményének lekérése rendszerünkből\
D. **`Close`** - kétlépcsős tranzakció lezárása

{% hint style="info" %}
Az A, B és C lépések együttesen adják ki a vásárló jelenlétében történő fizetési folyamatot, ami a tranzakciós összeg zárolásával végződik.

A D lépés az első három lépést követően később is elvégezhető, de ennek hatására fejeződik be a tranzakció terheléssel, vagy a zárolt összeg feloldásával.

A felsorolt pontok egy sikeres fizetési folyamatot írnak le.
{% endhint %}

#### **A. `Init` - kétlépcsős tranzakció inicializálása és a vásárló adatainak átadása rendszerünknek**

1. A kereskedő oldala rögzíti a vásárló elektronikus fizetési szándékát,
2. ezután a kereskedő oldala új, kétlépcsős fizetési tranzakciót kezdeményez rendszerünkben a referencia tranzakció segítségével.
3. Rendszerünk hitelesíti a beérkezett kérést (autentikáció),
4. ezután rendszerünk egy egyedi tranzakció azonosítót (`TransactionId`) küld vissza a kereskedőnek (sikeres hitelesítés esetén).
5. A kereskedő oldala tárolja az egyedi tranzakció azonosítót.

Hitelesítés (autentikáció) során rendszerünk a következőket ellenőrzi:

* a kereskedő boltja szerepel rendszerünkben a megadott boltnév (`StoreName`) és API kulcs (`ApiKey`) párossal
* az API kérés a kereskedő által előre megadott IP címről érkezik (az engedélyezett IP címeket a *PayAdmin* felületén adhatja meg a megfelelő jogosultsággal rendelkező felhasználó)
* a kereskedő boltjához hozzá van rendelve a tranzakcióban szereplő szolgáltatás, devizanem és végrehajtási mód (a szolgáltatás ebben az esetben a fizetési szolgáltatót takarja, a végrehajtási mód pedig az azonnali vagy későbbi terhelést jelöli)
* a kereskedő boltjánál engedélyezve van az egykattintásos fizetés funkció
* a megadott referencia tranzakcióhoz aktív fizetőeszköz-regisztráció tartozik

{% hint style="info" %}
A `TransactionId` olyan egyedi azonosító melyet a *Nevogate* rendszere hoz létre. Segítségével egy tranzakció egyértelműen beazonosítható rendszerünkben és a *PayAdmin* felületén. Fontos, hogy a `TransactionId` nem azonos a `ProviderTransactionId` azonosítóval. Utóbbi az egyes fizetési szolgáltatók saját rendszereiben azonosítja be az adott tranzakciót.
{% endhint %}

#### **B. `Start` - kétlépcsős tranzakció indítása és a vásárló átirányítása a fizetési szolgáltatóhoz**

1. A kereskedő oldala átirányítja a vásárlót rendszerünkbe (HTTP Redirect) a tárolt tranzakció azonosítóval.
2. Rendszerünk ellenőrzi a tranzakció azonosítót és átirányítja a vásárlót a fizetési szolgáltatóhoz (sikeres ellenőrzés esetén).
3. Ilyenkor a korábban regisztrált fizetőeszköz adatainak ismételt megadására már nincs szükség, azonban a kártyakibocsátó kérheti a 3DSecure hitelesítés végrehajtását a vásárlótól (kizárólag bankkártya esetén).
4. A fizetési szolgáltató visszairányítja a vásárlót rendszerünkbe, majd megtörténik a **tranzakció összegének befoglalása**.
5. Rendszerünk lekérdezi a befoglalás eredményét a fizetési szolgáltatótól, majd beállítja a tranzakció státuszát a fizetési szolgáltató válasza alapján,
6. ezután rendszerünk a tranzakció azonosítóval visszairányítja a vásárlót a kereskedő oldalára (az inicializáció (`Init`) során megadott visszatérési URL címre (`ResponseUrl`)).
7. Ezzel párhuzamosan rendszerünk a tranzakció végstátuszának beállítását követően aszinkron módon meghívja az inicializáció (`Init`) során átadott `NotificationUrl` címet is.

{% hint style="info" %}
A **B.3.** lépésben leírt 3DS hitelesítési folyamat (3D Secure vagy 3D Secure Code) a pénzügyi visszaélések megakadályozását célzó megoldás. Fizetés során a 3DS a kötelező kártyaadatok bekérésén túl egy egyszer használatos kóddal biztosítja a kártyabirtokos védelmét visszaélésekkel szemben. Használata egyszerű, a vásárlónak mindössze egy mobiltelefonra van szüksége.
{% endhint %}

#### **C. `Result` - kétlépcsős tranzakció eredményének lekérése rendszerünkből**

1. A kereskedő oldala a `ResponseUrl` hívás hatására egy tranzakció azonosítót tartalmazó `Result` kéréssel lekérdezi a befoglalás eredményét rendszerünkből.
2. Rendszerünk ellenőrzi a tranzakció azonosítót,
3. ezután rendszerünk megválaszolja a befoglalás státuszát a kereskedő oldalának (sikeres ellenőrzés esetén).
4. A kereskedő oldala tárolja a befoglalás státuszát és értesíti a vásárlót a tranzakció eredményéről.

{% hint style="warning" %}
Figyeljen arra, hogy minden `NotificationUrl` hívást követően is indítson egy `Result` kérést rendszerünk felé.
{% endhint %}

**D. `Close` - kétlépcsős tranzakció lezárása**

1. A kereskedő kezdeményezi a tranzakció lezárását a tranzakció azonosító segítségével (`TransactionId`) és a lezárás módjának megadásával, mely lehet:\
   • a teljes befoglalt összeg terhelése\
   • a befoglalt összeg részterhelése (és a maradék összeg feloldása)\
   • a teljes befoglalt összeg feloldása
2. Rendszerünk hitelesíti a beérkezett kérést, majd továbbítja azt a fizetési szolgáltató felé, aki végrehajtja a tranzakció lezárását.
3. Ezután rendszerünk megválaszolja a lezárás eredményét a kereskedő oldalának (sikeres hitelesítés esetén).
4. A kereskedő oldala tárolja a kapott választ és értesíti a vásárlót a tranzakció eredményéről.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nevogate.com/egykattintasos-fizetes-one-click-payment/bankkartya-es-mobiltarca/kesobbi-terheles-ketlepcsos-fizetes/rakoevetkezo-fizetes-regisztralt-fizetoeszkoezzel/fizetesi-folyamat-rakoevetkezo-fizetes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
