Steamworks dokumentáció
Mikrotranzakció megvalósítási útmutató

Áttekintés

A Steam játékon belüli fizetési rendszer célja megkönnyíteni a fejlesztők számára tetszőleges áruk eladását a felhasználóknak úgy, hogy soha ne kelljen elhagyniuk a játékélményt. Az teljesen a kereskedőn múlik, hogy mit akar eladni. Lehetnek játékon belüli tárgyak, mint a fegyverek vagy lőszer, játékbeli fizetőeszköz, például érmék vagy arany, vagy akár öltözék a játékos karakterének. Olyan sok vagy olyan kevés tárgy lehet a játékodban, amennyit szeretnél, és árusítani tudod azokat egyenként vagy összecsomagolt csoportokként. A Steam nem korlátozza, mit és hogyan adsz el, és nem zárja ki a játékod egyéb mechanizmusainak használatát sem tárgyak eladásához. A rendeltetése olyan közös fizetési élményt hozni a játékodba, amelyet a felhasználók ismernek a Steam platformról, és lehetővé tenni számukra Steam Pénztárca-összegük egyszerű elköltését termékeidre. Az ilyen típusú integráció használatával a játékod azonnal el fogja érni az új Steam felhasználókat és fizetési módokat, amint azok elérhetővé válnak.

E rendszerrel a vásárlás teljesen a te irányításod alatt áll. A vásárlási kérelemre adott sikeres válasz eredményeként a felhasználó számlája megbízhatóan lesz megterhelve, te pedig pozitív és azonnali értesítést kapsz az eseményről. A vásárlás jóváhagyása után a te dolgod a tárgyak megadása és kezelése. Ha például egy tárgy időalapú, a rendszered határozza meg, hogy az a tárgy mennyi ideig használható fel.

A játékon belüli vásárlás mellett a rendszer további funkciókat is biztosítani fog, amelyeket a könyvelési és támogatási rendszereid tudnak használni:
  1. Értesítést kaphatsz, ha a vásárlók fizetése sikertelen.
  2. Visszatérítéseket adhatsz, és lekérdezheted a tranzakciók állapotát a webes szolgáltatáson keresztül.
  3. Hozzáférésed lesz részletes jelentésekhez a tárgy- és játékeladásokat élőben mutató Steamstats partneroldalunkon.

Bevált módszerek játékon belüli vásárlásokhoz

Ha játékon belüli vásárlásokkal rendelkező játékod Steamre hozásán dolgozol, van néhány javaslatunk, bevált gyakorlatunk és információforrásunk az induláshoz. Akár ingyenesen játszható játékod van, akár előre meg kell vásárolni azt, minden játékon belüli vásárlásokat tartalmazó játékban vannak közös elemek, amiket hasznos figyelembe venni, amikor a Steamen való kiadáson dolgozol.

Javaslatokért és bevált módszerekért a játékon belüli gazdaságokhoz nézd meg a Mikrotranzakciók (játékon belüli vásárlás) dokumentációt.

A fizetési rendszer működése

A fizetési rendszer a játékon belüli vásárlási folyamatod, a Steam számlázási webes szolgáltatás és a vásárlói jóváhagyási folyamat kombinációja.

A vásárlási folyamat a következő sorrendben történik. A felhasználód mindig a játékodban kezdi el és fejezi be a megrendelését.
  1. Amikor egy felhasználó vásárolni szeretne valamit a játékban, a játékod vásárlási kérést küld a vásárlási szerverednek. A vásárlási szerver lehet bármilyen szolgáltatási entitás, amellyel a játékrendszered rendelkezik a vásárlási kérések kezeléséhez. Lehet webszerver vagy a hitelesítő rendszered. A szervernek HTTP-n keresztül kell kommunikálnia a Steam számlázási szerverekkel. A vásárlási szervered le tudja kérni a Steam számlázási szerverekről a felhasználó országát, nyelvét és pénznemét is. Ezeket az adatokat felhasználhatod az árad szükség szerinti állításához.
  2. A vásárlási szervered ezután fizetési tranzakciót kezdeményez a kliens nevében a Steam webszolgáltatás felé. A kérés egy biztonságos HTTP POST. E kérés tartalma magában foglalja a felhasználó metaadatait, valamint a felhasználó által megvásárolni kívánt minden egyes tárgy leírását és árát.
  3. E kérés beérkezésekor a Steam automatikusan aktiválni fogja a Steam átfedést, és párbeszédablakot jelenít meg a felhasználónak, felsorolva az összes tárgyat, azok árát és egy gombot a tranzakció megerősítésére vagy jóváhagyására. Ha a felhasználónak nincs elegendő összeg a Steam fiókján, az átfedés végig fogja vezetni egy összeghozzáadási folyamaton. A Steam átfedés kezeli a felhasználó összes számlázási információjának összegyűjtését. A befejezés után a felhasználó értesítést fog kapni, hogy a vásárlás engedélyezésre vagy elutasításra került. A játékodnak regisztrálnia kell egy callback fogadására ehhez az értesítéshez, és továbbítani az eredményt a vásárlási szerverednek.
  4. A vásárlási szervered megkapja az értesítést, és FinalizeTransaction hívást küld a Steamnek a művelet befejezéséhez. Sikeres válasz esetén a felhasználó számlája meg lesz terhelve, és ezt követően megadhatod a felhasználónak a tárgyat.

Alternatív megoldásként azoknál a játékoknál, amelyek vásárlási lehetőségei jellemzően egy weboldalon keresztül vannak kiszolgálva, vagy ha a Steamet közvetlenül a weboldaladon szeretnéd fizetési módként kínálni, opcionálisan tudsz böngészőalapú integrációt készíteni. Ehhez a megoldáshoz a vásárlási folyamat a következő sorrendben történik:
  1. A felhasználó vásárolni szeretni valamit a játékodban vagy a weboldaladon. Ha a játékban vásárol, megnyílik egy, a weboldaladra vezető böngésző.
  2. A vásárlási szervered a felhasználó nevében webes tranzakciót kezdeményez biztonságos HTTP POST formájában. Ha ez sikeres, egy egyedi Steam URL-t fog visszaadni, amire ezután át tudod irányítani a felhasználó böngésző-munkamenetét, és ott jóvá tudja hagyni a tranzakciót. Amikor átirányítod, meg fogsz adni egy visszatérési URL-t is, ahová a felhasználó vissza lesz irányítva a jóváhagyás befejezése után.
  3. Amikor a felhasználó vissza lett irányítva a weboldaladra, a vásárlási szervered lekéri a tranzakció állapotát, és ha az sikeresen jóvá lett hagyva, át tudod venni az összeget egy Steamnek küldött FinalizeTransaction hívással.

Kapcsolat létrehozása

Előzetes feltételek

Először hozz létre egy WebAPI kiadói kulcsot. Útmutató a Authentication using Web API Keys oldalon található. Ez a kulcs továbbításra kerül minden webszerverkéréssel, és a szerverkérések hitelesítésére van használva. Ezt key=<a te kulcsod> paraméterként kell elküldeni a kérésekkel.

Tárold a megrendelést

Későbbi hozzáféréshez minden egyes megrendelést tárolj a rendszeredben. Használj egyedi, 64 bites megrendelésazonosítót a Steamen belüli tranzakciókra hivatkozáshoz.

Kérések beküldése

Minden kérést HTTP 1.1 GET vagy POST használatával, biztonságos TLS kapcsolaton keresztül kell beküldeni. A Content-Type legyen "application/x-www-form-urlencoded", a POST paramétereknek pedig a kérés törzsében kell lenniük szabványos űrlap urlencoding formátumban. Szöveget UTF-8 formátumban kell továbbítani.

A kérelmek az alábbi alap URI-n keresztül mennek át:
https://partner.steam-api.com/ISteamMicroTxn/*

Egyes parancsok visszaadnak egy sikeres vagy sikertelen eredményt. Sikertelen eredmény visszaadása esetén egy további hibakód és leírás is hozzá lesz fűzve. Sikeres válasznál ezek a kulcsok nem lesznek jelen.

A válaszok alapértelmezetten JSON formátumban lesznek visszaküldve. Lehetőségként megadhatsz XML formátumot a "format=xml" paraméternek a kéréshez adásával.
Megjegyzés: olyan rugalmas JSON vagy XML megoldást kell megvalósítanod, amely lehetővé teszi paraméterkulcsok tetszőleges sorrendű küldését és visszaadását.

Tesztelés

A Steam fejlesztői homokozót kínál az integrációd teszteléséhez. A homokozó támogatja a szokásos API-n keresztül elérhető összes kérést, de a tesztelő Steam Pénztárcájából nem lesz ténylegesen összeg levonva.

A homokozó egy másik alap URI-n keresztül érhető el:
https://partner.steam-api.com/ISteamMicroTxnSandbox/*

Integrációs lépések

Játékon belüli vásárlás


Ez olyan játékokhoz való, amelyeknek beépített áruháza van, és a felhasználói élmény a játékon belül marad.
  • 1. lépés:
    Játékodat a Steamworks API-t tartalmazva kell kiadni. Ez egy header fájl hozzáadását, egy .lib fájl linkelését, és a termékeddel együtt egy .dll kiadását jelenti. Részletekért lásd az Steamworks API Overview dokumentációt. A Steamworks API-t sikeresen inicializálni kell a folytatás előtt!
  • 2. lépés:
    A felhasználó egy vagy több tárgy megvásárlása mellett dönt a játékodban. A tárgy(ak) meghatározása után játékodnak össze kell gyűjtenie néhány metaadatot a felhasználóról:
    • SteamID – Ez a 64 bites szám egyedülállóan azonosítja a felhasználót a Steam rendszerben.
    • Országkód – A felhasználó ISO 3166 szabványos országkódja jelzi, honnan vásárol a felhasználó. Használd ezt annak meghatározására, milyen árat kell alkalmazni a vásárláshoz.
    • Pénznemkód – Az ISO 4217 formátumú pénznemkód, amelyben a felhasználó számlája meg lesz terhelve.
    • Játékkliens nyelvkódja – Az ISO 639-1 szabványú nyelvkód, amelyen a Steames játékkliens jelenleg fut.

    A SteamID és a nyelv lekérhető az alábbi Steamworks API hívásokkal:

    A felhasználó országának és pénznemének lekéréséhez használd az ISteamMicroTxn/GetUserInfo webes API kérést, átadva annak a felhasználó SteamID-jét.

    Ezeket a felhasználói metaadatokat kötegelni kell, és el kell küldeni a szokásos vásárlási adataiddal együtt a vásárlási szerverednek.
  • 3. lépés:
    A vásárlási szervered vásárlási kérést kezdeményez a Steam webes szolgáltatáson keresztül a Steam kliens nevében. Ehhez használd az e dokumentációban később ismertetett ISteamMicroTxn/InitTxn-t. A kéréssel a következő adatokat kell elküldeni:
    • OrderID – Egyedi 64 bites szám, amit ehhez a vásárláshoz rendelsz. Ez a szám a kulcsod a tranzakcióhoz. A Steam rendszerben ez hivatkozik a tranzakcióra.
    • SteamID – A 3. lépésben a Steam klienstől kapott felhasználóazonosító.
    • AppID – Steames játékod egyedi azonosítója.
    • Language – Annak a nyelvnek az ISO 639-1 formátumú nyelvazonosítója, amelyen tárgyaid meg vannak jelenítve.
    • Currency – Annak a pénznemnek az ISO 4217 formátumú pénznemkódja, amellyel tárgyaid meg vannak jelenítve. Ha ez nem egyezik a felhasználó 2. lépésben megadott pénznemkódjával, akkor az aktuális piaci árfolyamon automatikus valutaátváltásra kerül sor. A Steam a felhasználónak a helyi pénznemben fogja megjeleníteni az átváltott árat jóváhagyásra. A legjobb ügyfélélmény érdekében javasoljuk, hogy minden olyan pénznemben adj meg konkrét árazást, amelynek használatára vásárlóidnál számítasz.
    • A vásárló által megvásárolni kívánt egy vagy több tárgy listája. Minden egyes tárgynál meg kell adnod a következő adatokat:
      • ItemID – Saját 32 bites azonosítód a tárgyhoz.
      • Quantity – Az ilyen típusú tárgyak darabszáma a tranzakcióban.
      • Amount – Az összeg (század helyi értékig), amit fel akarsz számítani a felhasználónak ezért a tárgyért. Egyes pénznemekben egész értékekben kell számlázni; további információkért lásd a Támogatott pénznemek dokumentációt. Ha e tárgy Quantity értéke egynél nagyobb, ez a teljes összeg, ami fel lesz számítva (Amount = Quantity x tárgyár).
      • Item Description – Szöveges leírás a tárgyhoz. Ez lesz megjelenítve a felhasználónak a tranzakció-jóváhagyás kérésekor. Ezt a leírást a Steam kliens által jelzett nyelvkód alapján lokalizálhatod.
      • Item Category – Elhagyható szöveges leírás arról a kategóriáról, amibe ezt a tárgyat csoportosítani kellene. Ez az érték az értékesítési adatok csoportosítására van használva a Steam jelentési háttérfolyamatban, és sosem jelenik meg a felhasználónak.

    Ha a Steam elfogadja a tranzakciót, a Steam kliens automatikusan értesítést kap a vásárlás engedélyezéséről. Ha hiba lett visszaadva, akkor a problémát ki kell javítani, és új vásárlási tranzakciót kell beküldeni.
  • 4. lépés:
    Egy sikeres ISteamMicroTxn/InitTxn kísérlet eredményeképp a felhasználó a Steam játékon belüli átfedésen keresztül értesítést kap arról, hogy a tranzakciót jóvá kell hagyni. A tranzakció részletei a vásárlási kérésed által megadott tárgyleírások használatával vannak megjelenítve. A felhasználó ezután engedélyezheti a tranzakciót. Ha a felhasználónak nincs elegendő összege a fiókján, a Steam automatikusan végig fogja vezetni egy összeghozzáadási folyamaton. Végezetül a játékod értesítést kap arról, hogy a tranzakciót engedélyezték vagy elutasították.

    Az engedélyezési (vagy elutasítási) eseményértesítés fogadáshoz játékodnak regisztrálnia kell egy ISteamUser::MicroTxnAuthorizationResponse_t callback kezelőt. Ez a callback eredmény tartalmazza a tranzakció AppID-jét, OrderID-jét és engedélyezési állapotát. A játékod elküldheti ezt az eredményt a vásárlási szerverednek, hogy az tudja, véglegesítenie kell a tranzakciót. További részletekért nézd meg a Callbackek dokumentációt.
  • 5. lépés:
    A vásárlási szervered az ISteamMicroTxn/FinalizeTxn API parancsot használva befejezi a tranzakciót a következő paraméterekkel:
    • OrderID – A tranzakció kezdeményezéséhez általad létrehozott rendelésazonosító.
    • AppID – Steames játékod egyedi azonosítója.

    A sikeres válasz azt jelenti, hogy a vásárlást elfogadták, és a tételeket meg kell adni. A hiba válasz azt jelzi, hogy a vásárlás nem fejeződött be megfelelően, és vissza van adva a megfelelő hibaüzenet.
  • 6. lépés
    A vásárlási szerverednek rendszeresen meg kell hívnia az ISteamMicroTxn/GetReport API-t, hogy értesítést kapjon a tranzakciók elszámolási állapotának változásairól. Naponta legalább egyszer meg kellene hívnod ezt az API-t az elszámolási frissítések összehangolásához, de nem észszerűtlen ezen API akár percenkénti meghívása sem, hogy a szervereid biztosan naprakészek maradjanak a tranzakciós frissítésekkel.

    Az ISteamMicroTxn/RefundTxn API-val a belátásod szerint vissza tudod téríteni a vásárlói tranzakciókat. Vannak azonban más módok is a tranzakciók visszafordítására, amelyek valószínűleg a figyelmedet igénylik. Amikor egy tranzakció visszafordított állapotba kerül (pl. Refunded, PartialRefund, Chargedback, RefundedSuspsectedFraud vagy RefundedFriendlyFraud – lásd: „A” melléklet: állapotértékek), a háttérfolyamatodnak meg kellene próbálnia visszaszerezni a visszafordított tranzakciókhoz kapcsolódó tételeket, ha lehetséges. Kérjük, tekintsd át a Felkészülés a csalásokra dokumentációnkat, és győződj meg róla, hogy megtetted a lépéseket a leggyakoribb típusú csalások megelőzésére.

Web alapú vásárlás

Ha játékbeli áruházad weboldal, vagy csak fizetési módként akarod hozzáadni a Steamet meglévő áruházad kasszájához, akkor az alábbi lépéseket használhatod az integrációhoz:
  • 1. lépés:
    Kérd le a felhasználó SteamID-jét.
    • Ha a felhasználó jelenleg játékban van, használd a Steamworks API-t a SteamID visszaadására: ISteamUser::GetSteamID.
    • Ha a felhasználó a weboldaladon van, a Steamworks OpenID API használatával biztonságosan lekérheted a felhasználó SteamID-jét. Az OpenID részletei a Steamworks Web Browser based authentication with OpenID dokumentáció-oldalán találhatók.

    Megjegyzés: Javasoljuk, hogy kapcsold össze a felhasználó játékfiókját a SteamID-jével, hogy csak egyszer kelljen elvégeznie ezt a másodlagos bejelentkezést.
  • 2. lépés:
    Kérd le a felhasználó országát és pénznemét az ISteamMicroTxn/GetUserInfo webes API kérés használatával, átadva annak a felhasználó SteamID-jét. Ezen adatok használatával az áruházad a felhasználónak megfelelő árazással és pénznemben jeleníthető meg.

    Megjegyzés: A GetUserInfo-nak van egy opcionális IP-cím paramétere, amelyet használva jelezheted a Steamnek, honnan érkezett a felhasználó. Küldd el a felhasználó nyilvános IP-címét minden webes vásárláshoz, vagy bármikor, amikor a felhasználó nincs aktívan bejelentkezve a Steam kliensen keresztül, és a játékoddal játszik.
  • 3. lépés:
    A vásárlási szervered vásárlási kérést kezdeményez a Steam webes szolgáltatáson keresztül az ISteamMicroTxn/InitTxn használatával. Két további adatot kell megadni azon felül, amire a szokásos játékon belüli vásárlásnál van szükség:
    • usersession – Ennek értéke "web" kell legyen annak jelzésére, hogy a felhasználó webböngészőn keresztül fogja engedélyezni a tranzakciót.
    • ipaddress – A felhasználó nyilvános IP-címe.

    Amikor a usersession értéke "web", az initTxn kérés egy további, steamurl nevű paramétert fog visszaadni. Ez egy egyedi URL, amelyre átirányíthatod a felhasználó webes munkamenetét, és az ezzel az API-hívással létrehozott tranzakciót azonosítja.

  • 4. lépés:
    A vásárlási szervered átirányítja a felhasználó webes munkamenetét az InitTxn API-hívásban visszaadott Steam URL-re. Az átirányításhoz fűzd hozzá a saját URL-ed, ahová a tranzakció engedélyezése (vagy elutasítása) után a felhasználó vissza lesz küldve. Teljesen meghatározott URL-t használj (pl. https://www.steamgames.com), a következő módon:
    returnurl=ide_kerül_a_te_URL-ed
    A felhasználónak a Steam URL-re átirányításkor jóváhagyás előtt be kell jelentkeznie a Steambe. Ha a felhasználó fizetési módként választja a Steamet a weboldaladon, ez volna a várható viselkedés a felhasználó szempontjából. Ha azonban a felhasználó már bejelentkezett a Steambe és a játékoddal játszik, kívánatos lenne kihagyni ezt a második bejelentkezési követelményt. Ezt a játékátfedés beépített webböngészőjének használatával lehet elérni. Amikor a játékfedés böngészőjét használja a jóváhagyáshoz, a felhasználó automatikusan be lesz jelentkeztetve. A böngésző elindításához használd a következő Steamworks API hívást:
    ISteamFriends::ActivateGameOverlayToWebPage

    A játékátfedés használatának összes tudnivalója itt található meg.
  • 5. lépés:
    Amikor a felhasználó visszatér a weboldaladra, adj ki egy ISteamMicroTxn/QueryTxn API hívást az eredmény lekérésére. Ha a rendelés állapota "Approved", akkor az ISteamMicroTxn/FinalizeTxn API hívással vedd le az összeget. Bármilyen más állapot visszaadásakor hagyd el a tranzakciót.

    Megjegyzés: Ha a felhasználó bezárja a böngészőt, vagy valami más történik, ami más módon akadályozza meg a visszatérést a weboldaladra, hagyd el a tranzakciót, és ne adj ki FinalizeTxn hívást. Még ha a felhasználó jóvá is hagyta a tranzakciót, de valahogy nem lett visszairányítva, hagyd el és kezdd újra.
  • 6. lépés
    A vásárlási szerverednek rendszeresen meg kell hívnia az ISteamMicroTxn/GetReport API-t, hogy értesítést kapjon a tranzakciók elszámolási állapotának változásairól. Naponta legalább egyszer meg kellene hívnod ezt az API-t az elszámolási frissítések összehangolásához, de nem észszerűtlen ezen API akár percenkénti meghívása sem, hogy a szervereid biztosan naprakészek maradjanak a tranzakciós frissítésekkel.

    Az ISteamMicroTxn/RefundTxn API-val a belátásod szerint vissza tudod téríteni a vásárlói tranzakciókat. Vannak azonban más módok is a tranzakciók visszafordítására, amelyek valószínűleg a figyelmedet igénylik. Amikor egy tranzakció visszafordított állapotba kerül (pl. Refunded, PartialRefund, Chargedback, RefundedSuspsectedFraud vagy RefundedFriendlyFraud – lásd: „A” melléklet: állapotértékek), a háttérfolyamatodnak meg kellene próbálnia visszaszerezni a visszafordított tranzakciókhoz kapcsolódó tételeket, ha lehetséges. Kérjük, tekintsd át a Felkészülés a csalásokra dokumentációnkat, és győződj meg róla, hogy megtetted a lépéseket a leggyakoribb típusú csalások megelőzésére.

„A” melléklet: állapotértékek

Ezek az ISteamMicroTxn webes API által visszaadott lehetséges állapotértékek. Az ezeket az értékeket hordozó válaszkulcs neve általában status.
  • Init – A megrendelés létrejött, de a felhasználó nem engedélyezte.
  • Approved – A felhasználó jóváhagyta a rendelést.
  • Succeeded – A rendelés feldolgozása sikeresen megtörtént.
  • Failed – A rendelés sikertelen vagy el lett utasítva.
  • Refunded – A rendelés vissza lett térítve, így a játéknak vissza kell vonnia a terméket. A visszatérítést a vásárló is kezdeményezhette.
  • PartialRefund – A kosárban lévő egy vagy több tétel vissza lett térítve. A részletekért nézd meg minden egyes tétel itemstatus mezőjét.
  • Chargedback – A rendelés csalás eredménye vagy vitatott, így a játéknak vissza kell vonnia a terméket.
  • RefundedSuspectedFraud – A Valve visszatérítette a rendelést, mert csalás gyanúja merült fel. A játéknak vissza kell vonnia a terméket.
  • RefundedFriendlyFraud – A Valve „friendly fraudnak” minősítve azt visszatérítette a rendelést. A játéknak vissza kell vonnia a terméket.

„B” melléklet: hibakódok

Ezek az ISteamMicroTxn webes API által visszaadott lehetséges hibakódok. Az ezeket az értékeket hordozó válaszkulcs neve általában errorcode.
  • 1 – Sikeres
  • 2 – A művelet sikertelen
  • 3 – Érvénytelen paraméter
  • 4 – Belső hiba
  • 5 – A felhasználó nem hagyta jóvá a tranzakciót
  • 6 – A tranzakció már megtörtént
  • 7 – A felhasználó nincs bejelentkezve
  • 8 – A pénznem nem egyezik a felhasználó Steam fiókjának pénznemével
  • 9 – A fiók nem létezik, vagy átmenetileg nem elérhető
  • 10 – A felhasználó megtagadta a tranzakciót
  • 11 – A tranzakció elutasítva, mert a felhasználó korlátozott országban tartózkodik
  • 12 – A tranzakció elutasítva, mert a számlázási szerződés nem aktív
  • 13 – A számlázási szerződés nem dolgozható fel, mert a típus nem "GAME"
  • 14 – A számlázási szerződés függőben van számlázási vita vagy visszaterhelés miatt
  • 15 – A számlázási szerződés nem dolgozható fel, mert nem a típus nem "STEAM"
  • 16 – A felhasználónak már van számlázási szerződése ehhez a játékhoz
  • 100 – Elégtelen fedezet
  • 101 – A véglegesítés időkorlátja túllépve
  • 102 – A fiók le van tiltva
  • 103 – A fióknak nem engedélyezett a vásárlás
  • 104 – A tranzakció csalásészlelés miatt megtagadva
  • 105 – Nincs tárolt fizetési mód
  • 106 – A tranzakció meghaladná a számlázási szerződésben meghatározott költségkeretet
  • 107 – A felhasználónak függőben lévő tranzakciója van, amelyet új tranzakció megkezdése előtt végre kell hajtani

További kérdéseid vannak?

Tegyél fel kérdéseket az In-Game Purchasing Integration témafórumban.