> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-SerialKey トランザクションアクション

検証/消費/入手の各トランザクションアクションの仕様




## Verify Action

検証アクション

### Gs2SerialKey:VerifyCodeByUserId

ユーザーIDを指定してシリアルコードの有効性を確認<br>

指定されたユーザーのシリアルコードを消費せずに検証します。特定のキャンペーンモデル名に対する検証をサポートし、コードがactive（未使用）かinactive（使用済み）かを確認できます。

**数量指定可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| code | string |  | ✓|  |  ~ 48文字 | シリアルコード<br>「XXXXX-XXXX-XXXXX-XXXX-XXXX」形式のシリアルコード文字列です。各コードは一意で、キャンペーン識別情報が含まれています。コードの形式とデータ長は固定で変更できません。 |
| campaignModelName | string |  | |  |  ~ 128文字 | キャンペーン名<br>このシリアルコードが属するキャンペーンモデルの名前です。キャンペーン情報はシリアルコード自体に埋め込まれているため、コード使用時にはネームスペースを指定するだけで利用できます。 |
| verifyType | 文字列列挙型<br>enum {<br>"active",<br>"inactive"<br>}<br> |  | ✓|  |  | 検証タイプ"active": 有効 / "inactive": 無効 /  |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2SerialKey:VerifyCodeByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "code": "[string]シリアルコード",
        "campaignModelName": "[string]キャンペーン名",
        "verifyType": "[string]検証タイプ",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2SerialKey:VerifyCodeByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  code: "[string]シリアルコード"
  campaignModelName: "[string]キャンペーン名"
  verifyType: "[string]検証タイプ"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("serialKey").verify.verify_code_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    code="[string]シリアルコード",
    campaignModelName="[string]キャンペーン名",
    verifyType="[string]検証タイプ",
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

## Consume Action

消費アクション

### Gs2SerialKey:UseByUserId

ユーザーIDを指定してシリアルコードの使用済み化<br>

指定されたユーザーによりシリアルコードを使用済みとしてマークします。コードが存在し、まだ使用されていないことを検証します。

**数量指定可能なアクション：いいえ**

**反転可能なアクション：はい**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| code | string |  | ✓|  |  ~ 48文字 | シリアルコード<br>「XXXXX-XXXX-XXXXX-XXXX-XXXX」形式のシリアルコード文字列です。各コードは一意で、キャンペーン識別情報が含まれています。コードの形式とデータ長は固定で変更できません。 |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2SerialKey:UseByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "code": "[string]シリアルコード",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2SerialKey:UseByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  code: "[string]シリアルコード"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("serialKey").consume.use_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    code="[string]シリアルコード",
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

## Acquire Action

入手アクション

### Gs2SerialKey:RevertUseByUserId

ユーザーIDを指定してシリアルコードを未使用化<br>

使用済みのシリアルコードを未使用状態に戻します。リバート前にコードが現在使用済み状態であることを検証します。

**数量指定可能なアクション：いいえ**

**反転可能なアクション：はい**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| code | string |  | ✓|  |  ~ 48文字 | シリアルコード<br>「XXXXX-XXXX-XXXXX-XXXX-XXXX」形式のシリアルコード文字列です。各コードは一意で、キャンペーン識別情報が含まれています。コードの形式とデータ長は固定で変更できません。 |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2SerialKey:RevertUseByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "code": "[string]シリアルコード",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2SerialKey:RevertUseByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  code: "[string]シリアルコード"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("serialKey").acquire.revert_use_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    code="[string]シリアルコード",
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

### Gs2SerialKey:IssueOnce

シリアルコードを1件発行<br>

シリアルコードを1件即座に発行します。コードはAES暗号化とbase32エンコーディングを使用してXXXXX-XXXX-XXXXX-XXXX-XXXXXの形式で生成されます。バッチ発行ジョブとは異なり、同期的にコードを生成して返却します。

**数量指定可能なアクション：いいえ**

**反転可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| campaignModelName | string |  | ✓|  |  ~ 128文字 | キャンペーンモデル名 |
| metadata | string |  | |  |  ~ 2048文字 | メタデータ<br>メタデータには任意の値を設定できます。<br>これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 |




**JSON**
```json
{
    "action": "Gs2SerialKey:IssueOnce",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "campaignModelName": "[string]キャンペーンモデル名",
        "metadata": "[string]メタデータ"
    }
}
```

**YAML**
```yaml

action: Gs2SerialKey:IssueOnce
request:
  namespaceName: "[string]ネームスペース名"
  campaignModelName: "[string]キャンペーンモデル名"
  metadata: "[string]メタデータ"
```

**GS2-Script**
```lua

transaction.service("serialKey").acquire.issue_once({
    namespaceName="[string]ネームスペース名",
    campaignModelName="[string]キャンペーンモデル名",
    metadata="[string]メタデータ",
})
```


---



