--- title: "Server to Serverの設定" slug: "game-gamepotserver" tags: ["GAMEPOT"] updated: 2026-09-17T09:23:32Z published: 2026-09-17T09:23:32Z canonical: "guide.ncloud-docs.com/game-gamepotserver" stale: true --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Server to Server の設定 Classic/VPC環境で利用できます。 アイテム支給やログイン検証のために、サーバからサーバへとリクエストを送信するように設定する方法を説明します。 ## 決済アイテム支給のリクエスト Webフックで HTTPリクエストを送信し、決済またはクーポンの使用によるアイテム支給を行うように設定できます。 アイテム支給のために Webフックで HTTPリクエストを送信するように設定する方法は、以下のとおりです。 1. 管理者アカウントでダッシュボードにログインします。 2. **プロジェクトの設定 > 一般**メニューを順にクリックします。 3. **Webhook**領域の**決済アイテム(サービス)** または **クーポンアイテム(サービス)** の入力欄に、以下のガイドを参照して HTTP/ HTTPS URLリクエストを入力します。 - 決済後のアイテム支給は、[決済後のリクエストおよびレスポンス](/docs/ja/game-gamepotserver#%EA%B2%B0%EC%A0%9C%ED%9B%84%EC%9A%94%EC%B2%AD%EB%B0%8F%EC%9D%91%EB%8B%B5)をご参照ください。 - クーポン使用後のアイテム支給は、[クーポン使用後のリクエストおよびレスポンス](/docs/ja/game-gamepotserver#%EC%BF%A0%ED%8F%B0%EC%82%AC%EC%9A%A9%ED%9B%84%EC%9A%94%EC%B2%AD%EB%B0%8F%EC%9D%91%EB%8B%B5)をご参照ください。 - テストユーザーにアイテムを支給する場合は、**(テストユーザー)** 表示のある入力欄にリクエストを入力します。 4. **[変更]** ボタンをクリックします。 ### 決済後のリクエストおよびレスポンス 以下の表およびコードを参照して HTTPリクエストおよびレスポンスを設定します。 - **リクエスト** ``` https://{domain}? userId={uuid}&orderId={orderId}&projectId={projectId}&platform={platform}&productId={productId}&store={store}&payment={payment}&transactionId={transactionId}&gamepotOrderId={gamepotOrderId}&uniqueId={uniqueId}&tp={tp} ``` | 属性 | タイプ | 最大長さ | 説明 | | --- | --- | --- | --- | | `userId` | `String` | 128 | ユーザー ID | | `transactionId` | `String` | 512 | 注文番号(GPA-xxxx-xxxx-) | | `store` | `String` | 64 | ストア情報(`apple`, `google`, `one`) | | `projectId` | `String` | 128 | プロジェクト ID | | `productId` | `String` | 256 | Google/Apple/ONE Storeに登録されている商品 ID | | `platform` | `String` | 128 | 運用プラットフォーム情報(`android`, `ios`) | | `payment` | `String` | 64 | 決済方法 | | `uniqueId` | `String` | 512 | Unique id(purchase apiの呼び出し時に入力した`uniqueId`) | | `gamepotOrderId` | `String` | 512 | GAMEPOT Order ID | | `serverId` | `String` | - | serverId(purchase apiの呼び出し時に入力した`serverId`) | | `playerId` | `String` | - | playerId(purchase apiの呼び出し時に入力した`playerId`) | | `tp` | `Integer` | - | 1: テスト決済 0: 一般決済 | | `etc` | `String` | - | etc(purchase apiの呼び出し時に入力した`etc`) | - **レスポンス** ``` { "status": 1, "message" : "" } ``` | 属性 | タイプ | 説明 | | --- | --- | --- | | `status` | `Integer` | 結果値 `0`: 失敗、`1`: 成功 | | `message` | `String` | エラー内容 | ### プレゼントするおよびクーポン使用後のリクエストとレスポンス 以下の表およびコードを参照して HTTPリクエストおよびレスポンスを設定します。 - **リクエスト** ``` https://{domain}? userId={userId}&projectId={projectId}&platform={platform}&store={store}&userData={userData}&itemId=[{itemData}, {itemData}, ...] ``` | 属性 | タイプ | 最大長さ | 説明 | | --- | --- | --- | --- | | `userId` | `String` | 128 | ユーザー ID(ダッシュボードで**ゲーム > プレゼントする > 対象**の値が全体の場合は、`all` ) | | `projectId` | `String` | 128 | プロジェクト ID | | `platform` | `String` | 128 | 運用プラットフォーム情報(`android`, `ios`) | | `store` | `String` | 64 | ストア情報(`apple`, `google`, `one`) | | `title` | `String` | - | **ダッシュボード > ゲーム > プレゼントする > タイトル**に入力した値 | | `content` | `String` | - | **ダッシュボード > ゲーム > プレゼントする > 説明**に入力した値 | | `target` | `String` | - | GAMEPOTダッシュボード > ゲーム > プレゼントする > 対象値 - 全体: all / ユーザー ID: user | | `expireMs` | `String` | - | **ダッシュボード > ゲーム > プレゼントする > 満了日**に入力した値の Timestamp(GMT+9) | | `userData` | `String` | - | クライアント SDKクーポン APIの呼び出し時に2個目のパラメータに入力した値、または**ダッシュボード > ゲーム > プレゼントする > UserData**に入力した値 | | `itemId` | `Array` | - | itemData Array - `itemData(JSON) {"item_id" : String, "store_item_id" : String, "count" : Number}` `item_id`: ダッシュボード**ゲーム > アイテム**で作成したアイテム項目の固有 ID `store_item_id`: 支給するアイテム ID `count`: 支給するアイテム数 | - **レスポンス** ``` { "status": 1, "message" : "" } ``` | 属性 | タイプ | 説明 | | --- | --- | --- | | `status` | `Integer` | 結果値 `0`: 失敗、`1`: 成功 | | `message` | `String` | エラー内容 | ## ログイン検証のリクエスト(任意) 会員がログイン完了後に取得した情報を用いて、GAMEPOTサーバにログイン検証をリクエストできます。 ログイン検証は1段階の GAMEPOTのトークン検証、2段階のソーシャルメディアのアカウント検証の順で行われます。 2段階の検証手続で検証に失敗した場合は、GAMEPOTの利用停止機能が動作し、そのアカウントが利用停止処理されます。 注意 1段階の GAMEPOTのトークン検証機能を同期処理しないでください。 1段階のトークン検証機能を同期処理する場合は、ネットワーク通信に遅延が発生する可能性が非常に高く、これにより会員が正常にゲームをプレイできないことがあります。 そのため、1段階のトークン検証機能を非同期に処理し、その後の過程で利用停止機能が適用されるように実装します。 1. 管理者アカウントでダッシュボードにログインします。 2. **プロジェクトの設定 > 一般**メニューを順にクリックし、**Auth Key**領域に各開発コンソールで取得した IDとキー値を入力します。 - 2段階の検証手続および利用停止機能を使用したくない場合は、この手続を省略してください。 3. 以下のリクエスト、レスポンスおよびエラーコードを参照してログイン検証をリクエストします。 ### リクエスト、レスポンスおよびエラーコード 以下の表およびコードを参照してログイン検証リクエスト、レスポンスおよびエラーコードを設定します。 - **リクエスト** ``` POST url : https://gamepot.apigw.ntruss.com/gpapps/v1/loginauth Header : 'content-type: application/json' data: { "projectId": {GamePot SDKの projectId}, "memberId": {GamePot SDKの memberid(ユーザー ID)}, "token": {GamePot SDKの Token}, "remoteip": {ログインしたアカウントの IPアドレス情報}, "platform": "" } ``` | 属性 | タイプ | 最大長さ | 説明 | | --- | --- | --- | --- | | `projectId` | `String` | 128 | GAMEPOT SDKのプロジェクト ID | | `memberId` | `String` | 128 | GAMEPOT SDKのユーザー ID | | `token` | `String` | 2048 | GAMEPOT SDKの Token | | `remoteip` | `String` | - | ログインしたアカウントの IPアドレス情報 (例: XXX.XXX.XXX.XXX) | | `platform` | `String` | - | pcプラットフォームを使用する場合にのみ pcに設定 | - **レスポンス** ``` { "status": 1, "message" : "" } ``` | 属性 | タイプ | 説明 | | --- | --- | --- | | `status` | `Integer` | 結果値 `1`: 成功 失敗は以下のエラーコードを参照 | | `message` | `String` | エラー内容 | - **エラーコード** | コード | 説明 | | --- | --- | | `0` | bodyに抜け漏れデータがある場合。 HTTPリクエスト時に`projectId`, `memberId`, `token`をすべて入力したか確認 | | `-1` | Token検証失敗。 Tokenが改ざんされた場合 | | `-2` | MemberId検証失敗。 Tokenのユーザー ID情報と bodyのユーザー ID情報が一致しない場合 | | `-3` | Token期限切れ。 SDK login apiが成功した時刻とその Authentication checkをリクエストした時刻の間に60分以上の差が生じた場合 | ## 外部決済 外部決済との連携のためにサーバ間のリクエストを設定できます。 その機能を使用する前に、必ず NAVERクラウドプラットフォームに詳しい使用方法についてお問い合わせください。 - [お問い合わせ](https://www.ncloud.com/support/question) ### リクエスト、レスポンスおよびエラーコード - **リクエスト** ``` POST url : https://gamepot.apigw.ntruss.com/gpapps/v2/thirdparty/purchase Header : 'content-type: application/json' Header : 'x-api-key: xxxxxxxxxxx' data: { "projectId": "e948e5bc-dccd-4729-b9b0-b547ae34b85d", "store": "tpay", "productId": "purchase_001", "transactionId": "t-123412812-sadl-2384-75847", "memberId":"89a907ed-0e1d-42fb-ae4d-75e95581220d", "currency": "KRW", "price":1000, "paymentId": "prepaid", "uniqueId": "" } ``` | ヘッダ | タイプ | 必須 | 説明 | | --- | --- | --- | --- | | `x-api-key` | `String` | 必須 | GAMEPOTで発行する認証キー | | 属性 | タイプ | 最大長さ | 説明 | | --- | --- | --- | --- | | `projectId` | `String` | 128 | GAMEPOT SDKのプロジェクト ID | | `store` | `String` | 64 | 決済ストア | | `productId` | `String` | 256 | 決済したアイテム ID | | `transactionId` | `String` | 512 | 決済の固有 ID | | `memberId` | `String` | 128 | GAMEPOT SDKのユーザー ID | | `currency` | `String` | 64 | 決済通貨 | | `price` | `Number` | - | 決済金額 | | `paymentId` | `String` | 64 | 決済手段 | | `uniqueId` | `String` | 512 | ゲーム内決済の固有 ID | - **レスポンス** ``` { "status": 1, "message" : "" } ``` | 属性 | タイプ | 説明 | | --- | --- | --- | | `status` | `Integer` | 結果値 `1`: 成功 失敗は以下のエラーコードを参照 | | `message` | `String` | エラー内容 | - **エラーコード** | コード | 説明 | | --- | --- | | `-1` | bodyに抜け漏れデータがある場合。 HTTPリクエスト時に`projectId`, `transactionId`, `productId`, `store`, `memberId`をすべて入力したか確認 | | `-2` | `price`の値が`number`タイプではない場合 | | `-3` | `projectId`がない場合 | | `-4` | プロジェクトがそのAPIに対応しない場合。 GAMEPOTにお問い合わせ | | `-5` | `transactionId`が既に存在する場合 | | `-6` | DBエラー。 GAMEPOTにお問い合わせ |