> 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-inditasa-startwallet.md).

# Tranzakció indítása (StartWallet)

### Működés

A `StartWallet` az előzőleg inicializált mobiltárcás tranzakció fizetését indítja el. A művelet hitelesített API kérés, amelyet a kereskedő szerveréről kell indítani.

### **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>StartWallet</code></td><td><code>POST</code></td><td>method=<code>StartWallet</code><br><br>json={JSON encode-olt paraméterek}</td></tr></tbody></table>

#### **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>TransactionId</code></td><td>string</td><td>az InitWallet válaszban kapott azonosító</td><td>Az előzőleg inicializált mobiltárcás tranzakció azonosítója.</td></tr><tr><td><code>Wallet.Token</code></td><td>object / string</td><td>a mobiltárcától kapott fizetési token</td><td>Apple Pay esetén a teljes <code>event.payment.token</code> objektum vagy annak JSON szövege. Google Pay esetén a <code>paymentData.paymentMethodData.tokenizationData.token</code> változatlan szöveges értéke. A fizetési tokent minden mobiltárcánál ez a kérés adja át, az inicializálás nem tartalmazhatja.</td></tr></tbody></table>

A `Wallet` objektum a fizetési tokenen kívül más mezőt nem tartalmaz. A fizetési módot (`Wallet.Type`) és a kliens típusát (`Wallet.Environment`) a tranzakcióból oldjuk fel, a vásárló e-mail címét (`Wallet.PayerEmailAddress`) pedig az inicializáláskor kell átadni — ezeket a tranzakció indításakor ne ismételje meg.

#### **Mintakód**

Google Pay indítása mindkét szolgáltatónál:

{% code overflow="wrap" %}

```php
curl --url 'https://system-test.paymentgateway.hu/api/payment/' \
  --user 'sdk_test:86af3-80e4f-f8228-9498f-910ad' \
  --user-agent 'StartWallet | merchant-store.com | PHP | 7.3.0' \
  --request 'POST' \
  --data 'method=StartWallet' \
  --data 'json={
    "TransactionId": "992c8e75435e6d4dfdf6415f0714cae8",
    "Wallet": {
      "Token": "GOOGLE_PAY_TOKEN_FROM_BROWSER"
    }
  }'
```

{% endcode %}

Apple Pay esetén a `json` paraméter tartalma az alábbi szerkezetű. A `Token` teljes tartalmát a böngészőből kapott tokenre cserélje:

{% code overflow="wrap" %}

```php
{
  "TransactionId": "992c8e75435e6d4dfdf6415f0714cae8",
  "Wallet": {
    "Token": {
      "paymentData": {
        "version": "EC_v1",
        "data": "ENCRYPTED_PAYMENT_DATA",
        "signature": "SIGNATURE",
        "header": {
          "ephemeralPublicKey": "EPHEMERAL_PUBLIC_KEY",
          "publicKeyHash": "PUBLIC_KEY_HASH",
          "transactionId": "APPLE_TRANSACTION_ID"
        }
      },
      "paymentMethod": {
        "displayName": "Visa 1234",
        "network": "Visa",
        "type": "debit"
      },
      "transactionIdentifier": "APPLE_TRANSACTION_IDENTIFIER"
    }
  }
}
```

{% 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</td><td>egyedi tranzakció azonosító</td><td>A tranzakció azonosítója a <em>Nevogate</em> rendszerében.</td></tr><tr><td><code>ResultCode</code></td><td>string</td><td><code>SUCCESSFUL</code> vagy hibakód</td><td>A művelet eredménye: <code>SUCCESSFUL</code> vagy hibakód.</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>RedirectUrl</code></td><td>string / null</td><td>átirányítási URL vagy null</td><td>Ha nem üres, irányítsa ide a vásárló böngészőjét. SimplePay hitelesítéshez vagy függő fizetéshez is visszaadható.</td></tr><tr><td><code>ThreeDSAuthClientData</code></td><td>string / null</td><td>hitelesítési adat vagy null</td><td>Barion Google Pay további hitelesítésének adata. Nem üres értéknél a webes hitelesítés után <code>CompleteWallet</code> szükséges.</td></tr></tbody></table>

#### **Mintakód**

Hitelesítést igénylő Barion Google Pay mintaválasz:

{% code overflow="wrap" %}

```php
{
  "TransactionId": "992c8e75435e6d4dfdf6415f0714cae8",
  "ResultCode": "SUCCESSFUL",
  "ResultMessage": null,
  "ResponseId": "3202109280600047704",
  "ThreeDSAuthClientData": "BARION_AUTHENTICATION_DATA",
  "RedirectUrl": null
}
```

{% endcode %}

Gyakori hibák: `WrongTransactionStatus` (a tranzakció nincs elindítható állapotban: már elindították, hibás státuszba került, vagy lejárt), `MissingParameter` és `WrongParameter` (hiányzó vagy hibás fizetési token), `WrongProviderSettings` (a mobiltárca nincs engedélyezve a szolgáltatónál). Az általános és szolgáltatói hibakódok is előfordulhatnak.

{% hint style="warning" %}
A `SUCCESSFUL` itt a fizetésindítás műveletének eredménye, nem a fizetés sikerességét jelzi. A fizetés végleges státuszát `Result` kéréssel ellenőrizze. Már elindított tranzakcióra ne ismételje meg a `StartWallet` hívást: a válasz `WrongTransactionStatus` eredménykód lesz. Ismeretlen kimenetelű hálózati hiba után előbb a tranzakció eredményét kérdezze le (`Result`), és csak annak alapján döntsön.
{% endhint %}

{% hint style="info" %}
Paraméterhiba (`MissingParameter`, `WrongParameter`) esetén a tranzakció elindítható állapotban marad, ezért a `StartWallet` kérés javított adatokkal megismételhető. Ha viszont a fizetési szolgáltató hívása hiúsul meg, a tranzakció hibás státuszba kerül: ilyenkor új tranzakciót kell inicializálni (`InitWallet`), és a mobiltárcától új fizetési tokent kell kérni.
{% endhint %}
