> For the complete documentation index, see [llms.txt](https://docs.ecommerce.seb.ee/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ecommerce.seb.ee/seb-docs-draft/seb-docs-public-lt/integracija/mobilusis-sdk/ios-sdk/gaires/integracija-galineje-sistemoje.md).

# Integracija galinėje sistemoje

Naudokite šį vadovą, jei kuriate iOS integracijos backend dalį.

Programa negali sukurti mokėjimo. Jį kuriant autentifikuojamasi naudojant OAuth 2.0 kliento kredencialus, naudojant jūsų parduotuvės kliento paslaptį, ir ši paslaptis turi likti jūsų serveryje. Skirstymas yra toks:

| Kas           | Ką daro                                                                                                    |
| ------------- | ---------------------------------------------------------------------------------------------------------- |
| Jūsų backend  | Sukuria mokėjimą, tada perduoda `paymentId`, `verificationKey` ir atsiskaitymo nuorodą į programą.         |
| SDK           | Parodo atsiskaitymo puslapį arba vykdo kortelės sesiją, nustato mokėjimo būseną, pateikia vieną rezultatą. |
| Jūsų programa | Pateikia tą rezultatą ekrane.                                                                              |
| Jūsų backend  | Išlieka atsakingas už įvykdymą, remiantis platformos pranešimais.                                          |

***

## Sukurkite mokėjimą

Vienas iškvietimas, prieš programai pradedant ką nors:

```
POST {api-host}/egw/v1/payments/cit
Authorization: Bearer {access token}
X-Request-Id: {uuid}
Content-Type: application/json
```

`X-Request-Id` yra privalomas ir turi būti tinkamas UUID formato. Išsaugokite reikšmę: pagal ją vėliau atsekamas nesėkmingas mokėjimas.

```json
{
  "participantId": "jūsų-dalyvio-id",
  "shopAgreementId": "jūsų-parduotuvės-sutarties-id",
  "channel": "BROWSER",
  "orderNumber": "ORD-1042",
  "instructedAmount": { "currency": "EUR", "amount": "40.12" },
  "customer": {
    "name": "Jane Doe",
    "email": "jane.doe@example.com",
    "phone": "+37129123456"
  },
  "shopRedirectUrl": "myapp://checkout/return",
  "preferredLocale": "en"
}
```

Sumos nurodomos dešimtainėmis eilutėmis, o valiutos yra ISO 4217 trijų raidžių kodai.

`kanalas` yra `BROWSER`. Palikite jį `BROWSER` tiek vietinei kortelės formai, tiek priglobtam atsiskaitymui.

`shopRedirectUrl` yra adresas, į kurį atsiskaitymo puslapis nukreipia pirkėją, kai viskas baigta, todėl nurodykite savo programos grįžimo URL. Programa turi perduoti tą pačią reikšmę kaip savo `returnURL`.

### Atsakymas

```json
{
  "paymentId": "019eb631-ee3c-7c4a-90aa-83e13b301e96",
  "orderNumber": "ORD-1042",
  "paymentStatus": "INITIALIZED",
  "instructedAmount": { "currency": "EUR", "amount": "40.12" },
  "environment": "sandbox",
  "participantId": "jūsų-dalyvio-id",
  "shop": { },
  "availablePaymentMethods": [ ],
  "createdAt": "2026-03-04T09:21:44Z",
  "_links": {
    "checkoutRedirect": {
      "href": "https://sandbox-checkout.example.com/en/checkout/019eb631-ee3c-7c4a-90aa-83e13b301e96/9f2c1a7e4b8d"
    }
  }
}
```

***

## Gaukite patvirtinimo raktą

Programai reikia trijų reikšmių. Dvi iš jų grąžinamos tiesiogiai, o trečioji gaunama iš atsiskaitymo nuorodos.

| Reikšmė            | Šaltinis                                                              |
| ------------------ | --------------------------------------------------------------------- |
| `paymentId`        | Tas `paymentId` laukas.                                               |
| `checkoutRedirect` | `_links.checkoutRedirect.href`.                                       |
| `verificationKey`  | Tas **paskutinis kelio segmentas** iš `_links.checkoutRedirect.href`. |

Atsiskaitymo nuoroda sudaroma taip `{checkoutHost}/{locale}/checkout/{paymentId}/{verificationKey}`; todėl paskutinio segmento nuskaitymas kainuoja vieną eilutę ir nereikalauja papildomo apsikeitimo. Aukščiau pateiktame pavyzdyje patvirtinimo raktas yra `9f2c1a7e4b8d`.

Arba iškvieskite `GET {api-host}/egw/v1/payments/{paymentId}`kuris grąžina `verificationKey` kaip lauką. Tai kainuoja antrą iškvietimą ir nepriklauso nuo URL struktūros.

Perduokite visus tris į programą.

### Kas yra patvirtinimo raktas

Tai kliento pusės prieigos kredencialas, susietas su vienu mokėjimu. Tai nėra parduotuvės kredencialas, o jis suteikia teisę į mokėjimui priskirtus iškvietimus, kuriuos SDK atlieka įrenginyje.

Jis sąmoningai matomas klientui, nes atsiskaitymo puslapis, kurį jūsų programa tuoj pat įkels, jį turi savo URL. Iš to seka du dalykai: jo negalima įrašyti į žurnalus ar saugoti ten, kur jis gali išlikti ilgiau nei pats mokėjimas, o vietinei kortelės formai jo reikia įrenginyje, nes kortelės sesijos iškvietimai keliauja iš programos į atsiskaitymo API ir būtent jis juos autorizuoja.

***

## Pasirinkite grįžimo URL

Jūsų `shopRedirectUrl` ir programos `returnURL` yra ta pati reikšmė. Turite dvi parinktis, o SDK jas traktuoja vienodai.

### Pasirinktinė schema

Paprasčiausias pasirinkimas, ir jo neįmanoma supainioti su tikru tinklalapiu. Užregistruokite ją programos `Info.plist`:

```xml
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array><string>myapp</string></array>
    </dict>
</array>
```

Tada naudokite tokį URL kaip `myapp://checkout/return`.

### Universalioji nuoroda

Toks `https://` jūsų valdomas URL, pvz. `https://shop.example.com/pay/done`. Rinkitės ją, jei jau esate sukonfigūravę universaliąsias nuorodas arba jei tas pats grįžimo URL naudojamas su žiniatinklio atsiskaitymu.

{% hint style="info" %}
Galite pridėti savo užklausos parametrus prie `shopRedirectUrl`. Platforma perduoda URL nepakeistą, o SDK, kai sutapimas randamas, ignoruoja užklausos dalį ir fragmentą. Žr. [grįžimo URL atitikimą](broken://pages/4174cfd8ea054147b1959755a653f98646e17a81#how-the-return-url-is-matched).
{% endhint %}

***

## Vienas mokėjimas, du apmokėjimo būdai

Vietinei kortelės formai nėra atskiro inicijavimo. Vienas mokėjimas gali būti apmokamas per priglobtą atsiskaitymą arba per jūsų pačių kortelės formą, todėl programa, siūlanti abu variantus, atlieka tą patį vieną iškvietimą ir leidžia pirkėjui pasirinkti.

Jei kortelės įvedimas yra vienintelis jūsų siūlomas metodas, `shopRedirectUrl` jis lieka nenaudojamas. Pirkėjas niekada nepabėga iš jūsų programos, o 3-D Secure iššūkis pateikiamas joje.

***

## Mokėjimo patvirtinimas programai

SDK būsenos užklausa yra `GET` jūsų backend'e:

```
GET {apiBaseURL}/checkout/api/egw/v1/payments/{paymentId}
```

Jei jūsų backend'as pateikia tokią struktūrą, nustatykite `apiBaseURL` ir viskas. Jei ne, vietoje to jūsų programa pateikia savo paiešką. Žr. [savo būsenos paieškos pateikimą](/seb-docs-draft/seb-docs-public-lt/integracija/mobilusis-sdk/ios-sdk/naudojant-sdk/rezultato-apdorojimas.md#supplying-your-own-status-lookup).

{% hint style="warning" %}
⚠️ **Užsakymus įvykdykite iš savo backend'o, niekada iš programos rezultato.** Įrenginys gali prarasti ryšį tarp mokėjimo užbaigimo ir momento, kai apie tai sužino jūsų programa. Vykdykite užsakymų įvykdymą remdamiesi platformos pranešimais, kuriuos ji siunčia jūsų backend'ui, o programos rezultatą laikykite tuo, ką reikia parodyti pirkėjui.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ecommerce.seb.ee/seb-docs-draft/seb-docs-public-lt/integracija/mobilusis-sdk/ios-sdk/gaires/integracija-galineje-sistemoje.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
