# URL Értesítés

### Működés

Használja a `NotificationUrl` paramétert, hogy automatikusan értesüljön a tranzakciók státuszának változásáról. Az inicializáció (`Init`) során adja át az értesítési URL címet a `NotificationUrl` paraméterben. Rendszerünk ezt a címet hívja meg a tranzakció státuszának megváltozásakor.

Rendszerünk legfeljebb 5 alkalommal kísérli meg a megadott értesítési URL hívását, amíg a hívásra HTTP 200 választ nem kap. Az értesítés a tranzakció részletes adatait tartalmazza JSON formátumban (a `Details` hívás eredményének megfelelően), amit `application/json` típusként küldünk, így az adat a *raw request body*-ból nyerhető ki.

Jelezze vissza rendszerünk számára, hogy a kereskedő oldala értesült a tranzakció eredményéről. Ehhez indítson egy `Result` kérést minden rendszerünktől visszaérkező `NotificationUrl` hívás után. `Result` kérés hiányában a tranzakció “megválaszolhatatlan” állapotot kap a *PayAdmin* felületén.

Az alapértelmezett (lineáris időközönként maximum 5 alkalommal történő) URL értesítési eljárás mellett elérhető egy kiterjesztett URL értesítési eljárás is.

Ebben az esetben az értesítési kísérletek fokozatosan elnyújtott időközönként történnek az alábbi logika szerint:

* Azonnal a végstátusz beállítását követően.
* 5 másodperc elteltével.
* 10 másodperc elteltével.
* 30 másodperc elteltével.
* 1 perc elteltével.
* 5 perc elteltével.
* 15 perc elteltével.
* 30 perc elteltével.
* 1 óra elteltével.
* 3 óra elteltével.
* 6 óra elteltével.
* 12 óra elteltével.
* 1 nap elteltével.

A kiterjesztett URL értesítés igénybevételéhez vegye fel a kapcsolatot az ügyfélszolgálatunkkal a <business@nevogate.com> címen.

{% hint style="warning" %}
A `NotificationUrl` átadása minden tranzakció inicializáció során kötelező.\
Továbbá figyeljen arra, hogy a megadott értesítési URL cím (`NotificationUrl`):

* rendelkezzen HTTPS protokollal
* legyen mindenkor publikusan elérhető
  {% endhint %}

{% hint style="danger" %}
A JSON formátumú értesítésben található paraméterek kis kezdőbetűkkel szerepelnek. Ezzel ellentétben a tranzakció részletes adatainak lekérdezésére (`Details` hívásra) adott válasz paraméterei nagy kezdőbetűvel rendelkeznek.
{% endhint %}

### Beállítás lépései

Végezze el a következő lépéseket az URL értesítés megfelelő működéséhez.

{% hint style="warning" %}
A leírt folyamatot minden egyes `NotificationUrl` híváskor végre kell hajtani.
{% endhint %}

1. Adjon meg egy értesítési URL címet a `NotificationUrl` paraméter segítségével.
2. Vizsgálja meg, hogy a *raw request body* tartalmaz JSON típusú adattartalmat (a rendszerünkből érkező `NotificationUrl` hívás során).
3. Nyerje ki az aktuális `TransactionId` értéket a *raw request body*-ból.
4. Indítson egy `Result` kérést melyben megadja a `NotificationUrl` törzséből kinyert `TransactionId` értéket.
5. Dolgozza fel a `Result` kérésre kapott választ, majd
6. mentse el a rendszerében a tranzakció végstátuszát (`ResultCode`).
7. Válaszoljon HTTP 200-as státusz kóddal a rendszerünkből érkező `NotificationUrl` hívásra.

{% hint style="info" %}
PHP használata esetén így nyerheti ki a `TransactionId` értékét:

```php
$json = file_get_contents('php://input');
$data = json_decode($json);
$transactionId = $data->commonData->transactionId;
```

{% endhint %}

### Példa (URL értesítés beállítására teszt környezetben)

{% code overflow="wrap" %}

```php
curl --url 'https://system-test.paymentgateway.hu/api/payment/' \
  --user 'sdk_test:86af3-80e4f-f8228-9498f-910ad' \
  --user-agent 'Init | merchant-store.com | PHP | 7.3.0' \
  --request 'POST' \
  --data 'method=Init' \
  --data 'json=
    {
        "StoreName":"sdk_test",
        "ProviderName":"Borgun2",
        "ResponseUrl":"https://demo.nevogate.com/response.php",
        "Amount":100,
        "Currency":"HUF",
        "OrderId":"TEST-ORDER-ID",
        "UserId":"TEST-USER-ID",
        "NotificationUrl":"https://merchant.notification.url"
    }'
```

{% endcode %}


---

# 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/egyszeri-fizetesek-one-time-payment/bankkartya-es-mobiltarca/azonnali-terheles/url-ertesites.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.
