> For the complete documentation index, see [llms.txt](https://docs.nevogate.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nevogate.com/egyszeri-fizetesek-one-time-payment/nativ-mobiltarca/kesobbi-terheles-ketlepcsos-fizetes/tranzakcio-inicializalasa-initwallet.md).

# Tranzakció inicializálása (InitWallet)

### Működés

Az `InitWallet` létrehozza a natív mobiltárcás tranzakciót. Apple Pay esetén kereskedői munkamenetet is visszaad. A fizetési tokent egyik mobiltárcánál sem ez a kérés tartalmazza: azt a tranzakció indítása (`StartWallet`) adja át. Kétlépcsős fizetésnél a tranzakció összege a fizetéskor még csak befoglalásra kerül.

### **API kérés paraméterek**

#### Az API kérés általános információi

<table data-full-width="true"><thead><tr><th>Művelet</th><th>HTTP kérés</th><th>Adatok</th></tr></thead><tbody><tr><td><code>InitWallet</code></td><td><code>POST</code></td><td>method=<code>InitWallet</code><br><br>json={JSON encode-olt paraméterek}</td></tr></tbody></table>

A kérés a fizetési API végpontjára küldendő. A hitelesítés, az általános kötelező és opcionális paraméterek az [Init](/egyszeri-fizetesek-one-time-payment/bankkartya-es-mobiltarca/kesobbi-terheles-ketlepcsos-fizetes/ketlepcsos-tranzakcio-inicializalasa-init.md) műveletével azonosak. Adja át a `StoreName`, `ProviderName`, `ResponseUrl`, `NotificationUrl`, `Amount` mezőket és a vásárlás [PSD2/SCA adatait](/egyszeri-fizetesek-one-time-payment/bankkartya-es-mobiltarca/kesobbi-terheles-ketlepcsos-fizetes/eros-uegyfel-hitelesites-psd2-sca.md). A szolgáltatót `OTPSimple` vagy `Barion2` néven adja meg.

{% hint style="warning" %}
Kétlépcsős fizetéshez az `AutoCommit` paraméter értéke `false` legyen. A befoglalt összeg terhelését vagy feloldását a [kétlépcsős tranzakció lezárása (`Close`)](/egyszeri-fizetesek-one-time-payment/bankkartya-es-mobiltarca/kesobbi-terheles-ketlepcsos-fizetes/ketlepcsos-tranzakcio-lezarasa-close.md) művelettel végezze el.

Barion Smart Gateway Google Pay esetén a kliens `allowedAuthMethods` listáját kizárólag `PAN_ONLY` értékre kell szűkíteni, már a fizetési token létrehozásakor.
{% endhint %}

{% hint style="info" %}
A natív folyamatban a vásárló nem hagyja el a kereskedő oldalát, kivéve, ha a tranzakció indítására (`StartWallet`) nem üres visszairányítási URL cím (`RedirectUrl`) érkezik. Erre a visszatérésre az `Extra` paraméterben átadott `redirectMode` érték is hatással van, amelyet a [Visszairányítási módok](/segedlet/visszairanyitasi-modok.md) fejezet ismertet.
{% endhint %}

A `Wallet` JSON objektum az alábbi mezőket tartalmazza:

#### **Kötelező paraméterek**

<table data-full-width="true"><thead><tr><th>Paraméter</th><th>Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>Wallet.Type</code></td><td>string</td><td><code>apple_pay</code>, <code>google_pay</code></td><td>A natív fizetési mód.</td></tr><tr><td><code>Wallet.Environment</code></td><td>string</td><td><code>web</code></td><td>A kliens típusa; teszt- és éles fizetéskor is web.</td></tr></tbody></table>

#### **Kötelező paraméterek Apple Pay esetén**

<table data-full-width="true"><thead><tr><th>Paraméter</th><th>Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>Wallet.ShopUrl</code></td><td>string</td><td>például <code>https://shop.example.com</code></td><td>A fizetési weboldal címe. Teljes <code>https://</code> kezdetű cím vagy önálló domainnév adható meg. A domainnek egyeznie kell a fizetési szolgáltatónál regisztrált domainnel és azzal a domainnel, ahonnan az Apple domain-hitelesítő fájlt kiszolgálja.</td></tr><tr><td><code>Wallet.ValidationUrl</code></td><td>string</td><td>az aktuális <code>validationURL</code></td><td>Az Apple <code>onvalidatemerchant</code> eseményének <code>validationURL</code> értéke. Mindkét fizetési szolgáltatónál kötelező. Az eseményből kapott címet változtatás nélkül adja át.</td></tr></tbody></table>

{% hint style="info" %}
A `Wallet.ShopUrl` értéke kétféle lehet: teljes cím (például `https://shop.example.com`) vagy önálló domainnév (például `shop.example.com`). A cím útvonalrésze nem számít, rendszerünk a domaint használja. Nem fogadható el, és `WrongParameter` eredménykódot ad:

* a `https`-től eltérő protokoll (például `http://shop.example.com`),
* a 443-tól eltérő port (például `https://shop.example.com:8443`),
* a címbe ágyazott felhasználónév vagy jelszó,
* a `/` karakter a protokoll nélkül megadott értékben (például `shop.example.com/fizetes`),
* az IP-cím (például `https://192.0.2.10`),
* a pontot nem tartalmazó hostnév (például `localhost`).

Hiányzó vagy üres érték esetén a válasz `MissingParameter` eredménykódot ad.
{% endhint %}

{% hint style="info" %}
A `Wallet.ValidationUrl` kizárólag teljes cím lehet, és csak az Apple Pay gateway hosztjaira mutathat: `apple-pay-gateway.apple.com`, illetve az ugyanígy kezdődő regionális címek (például `apple-pay-gateway-cert-eu-west.apple.com`). Nem fogadható el, és `WrongParameter` eredménykódot ad:

* a `https`-től eltérő protokoll,
* a 443-tól eltérő port,
* a címbe ágyazott felhasználónév vagy jelszó,
* a protokoll nélkül megadott hostnév (például `apple-pay-gateway.apple.com`),
* minden más domain, beleértve az Apple domainre csak hasonlító címeket is (például `apple-pay-gateway.apple.com.pelda.hu`).

Az `onvalidatemerchant` eseményből kapott címet ezért mindig változtatás nélkül továbbítsa, és ne cserélje saját vagy közbeiktatott címre.
{% endhint %}

#### **Kötelező paraméterek Google Pay esetén**

<table data-full-width="true"><thead><tr><th>Paraméter</th><th>Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>Wallet.PayerEmailAddress</code></td><td>string</td><td>a vásárló e-mail címe</td><td>A fizetési szolgáltató a Google Pay-fizetéshez megköveteli a vásárló e-mail-címét. Adja át a Google Pay által visszaadott <code>paymentData.email</code> értéket. Rendszerünk ellenőrzi az átadott e-mail-cím formátumát. Ha nem ad át értéket, a vásárlás <code>Info</code> adataiban szereplő e-mail-címet használjuk. Ha egyik forrásban sincs e-mail-cím, a fizetési szolgáltató elutasíthatja a fizetés indítását.</td></tr></tbody></table>

A natív fizetési módot a `Wallet.Type` határozza meg, külön `PaymentMethods` megadása nem szükséges.

{% hint style="warning" %}
A fizetési tokent az inicializálás nem tartalmazhatja. A `Wallet.Token` mező puszta jelenléte `WrongParameter` eredménykódot okoz, üres vagy `null` értékkel is. A tokent a tranzakció indítása (`StartWallet`) adja át, mindkét mobiltárcánál.
{% endhint %}

#### **Mintakód**

Az alábbi, a kereskedő szerveréről indított példa kétlépcsős SimplePay Apple Pay inicializálást mutat. A hitelesítési és rendelési adatokat cserélje saját értékekre, és egészítse ki a kérést az adott vásárlás SCA adataival. A példákban szereplő tokenek, munkamenetek és azonosítók szemléltető értékek.

{% code overflow="wrap" %}

```php
curl --url 'https://system-test.paymentgateway.hu/api/payment/' \
  --user 'sdk_test:86af3-80e4f-f8228-9498f-910ad' \
  --user-agent 'InitWallet | merchant-store.com | PHP | 7.3.0' \
  --request 'POST' \
  --data 'method=InitWallet' \
  --data 'json={
    "StoreName": "sdk_test",
    "ProviderName": "OTPSimple",
    "ResponseUrl": "https://shop.example.com/payment/response",
    "NotificationUrl": "https://shop.example.com/payment/notification",
    "Amount": 1000,
    "AutoCommit": "false",
    "Currency": "HUF",
    "OrderId": "ORDER-123",
    "Wallet": {
      "Type": "apple_pay",
      "Environment": "web",
      "ShopUrl": "https://shop.example.com",
      "ValidationUrl": "https://apple-pay-gateway.apple.com/paymentservices/startSession"
    }
  }'
```

{% endcode %}

Barion Apple Pay esetén a `Wallet` objektum mezői azonosak, csak a `ProviderName` értéke `Barion2`.

A `ValidationUrl` helyére mindig az aktuális Apple esemény értékét tegye, a fenti cím csak szemléltetés.

Google Pay esetén mindkét szolgáltatónál az alábbi `Wallet` objektum használható az általános paraméterek mellett:

{% code overflow="wrap" %}

```php
{
  "Type": "google_pay",
  "Environment": "web",
  "PayerEmailAddress": "customer@example.com"
}
```

{% endcode %}

### **API válasz paraméterek**

<table data-full-width="true"><thead><tr><th>Paraméter</th><th>Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>TransactionId</code></td><td>string / null</td><td>egyedi tranzakció azonosító</td><td>A létrehozott tranzakció azonosítója a <em>Nevogate</em> rendszerében. Tárolja a további kérésekhez.</td></tr><tr><td><code>ResultCode</code></td><td>string</td><td><code>SUCCESSFUL</code> vagy hibakód</td><td><code>SUCCESSFUL</code>, vagy a hiba eredménykódja.</td></tr><tr><td><code>ResultMessage</code></td><td>string / null</td><td>szöveges magyarázat vagy null</td><td>Az egyes <code>ResultCode</code> értékek szöveges magyarázata.</td></tr><tr><td><code>ResponseId</code></td><td>integer</td><td>egyedi válaszazonosító</td><td>A válaszüzenet egyedi azonosítója a <em>Nevogate</em> rendszerében.</td></tr><tr><td><code>ApplePaySessionResponse</code></td><td>object</td><td>Apple Pay kereskedői munkamenet</td><td>Kizárólag Apple Pay inicializálásnál, sikeres kereskedői munkamenet-hitelesítés esetén. A fizetési szolgáltatótól kapott objektumot változtatás nélkül adja át a böngésző <code>completeMerchantValidation()</code> hívásának. Más fizetési módnál a mező nem szerepel a válaszban.</td></tr></tbody></table>

#### **Mintakód**

Sikeres Google Pay inicializálás mintaválasza:

{% code overflow="wrap" %}

```php
{
  "TransactionId": "992c8e75435e6d4dfdf6415f0714cae8",
  "ResultCode": "SUCCESSFUL",
  "ResultMessage": null,
  "ResponseId": "3202109280600047703"
}
```

{% endcode %}

Sikeres Apple Pay inicializálás mintaválasza:

{% code overflow="wrap" %}

```php
{
  "TransactionId": "992c8e75435e6d4dfdf6415f0714cae8",
  "ResultCode": "SUCCESSFUL",
  "ResultMessage": null,
  "ResponseId": "3202109280600047703",
  "ApplePaySessionResponse": {
    "...": "az Apple által kiadott kereskedői munkamenet adatai"
  }
}
```

{% endcode %}

Az `ApplePaySessionResponse` objektum tartalmát ne módosítsa és ne is dolgozza fel: változatlan formában adja át a böngésző `completeMerchantValidation(...)` hívásának. A mező csak Apple Pay inicializálásnál szerepel a válaszban, más fizetési módnál hiányzik.

Gyakori hibák: `MissingParameter` (hiányzó mobiltárcás adat), `WrongParameter` (hibás típus, környezet vagy URL), `UnauthorizedAccess` (a natív mobiltárcás fizetés nincs engedélyezve a boltban), `WrongProviderSettings` (a kiválasztott mobiltárca nincs engedélyezve a szolgáltatónál). Az általános inicializálási és szolgáltatói hibák is előfordulhatnak.
