GS2-Money トランザクションアクション
検証/消費/入手の各トランザクションアクションの仕様
ConsumeAction
消費アクション
Gs2Money:WithdrawByUserId
ユーザーIDを指定してウォレットから残高を消費
指定されたユーザーのウォレットから指定量の通貨を消費します。
paidOnly が false の場合、無償通貨が先に消費され、次に有償通貨が消費されます。
数量指定可能なアクション:はい
反転可能なアクション:はい
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID#{userId} と設定することでログイン中のユーザーIDに置換されます。 | ||
| slot | int | ✓ | 0 ~ 100000000 | スロット番号 プラットフォームやコンテキストごとにウォレット残高を分離するための識別子。 異なるスロットにより、別々の有償通貨プールを管理できます(例: iOS購入はスロット0、Androidはスロット1)。 無償通貨はネームスペースの shareFree 設定により、全スロット間で共有することもできます。 | ||
| count | int | ✓ | 1 ~ 2147483646 | 消費する課金通貨の数量 | ||
| paidOnly | bool | false | 有償通貨のみを対象とするか | |||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
{
"action": "Gs2Money:WithdrawByUserId",
"request": {
"namespaceName": "[string]ネームスペース名",
"userId": "[string]ユーザーID",
"slot": "[int]スロット番号",
"count": "[int]消費する課金通貨の数量",
"paidOnly": "[bool]有償通貨のみを対象とするか",
"timeOffsetToken": "[string]タイムオフセットトークン"
}
}action: Gs2Money:WithdrawByUserId
request:
namespaceName: "[string]ネームスペース名"
userId: "[string]ユーザーID"
slot: "[int]スロット番号"
count: "[int]消費する課金通貨の数量"
paidOnly: "[bool]有償通貨のみを対象とするか"
timeOffsetToken: "[string]タイムオフセットトークン"transaction.service("money").consume.withdraw_by_user_id({
namespaceName="[string]ネームスペース名",
userId="[string]ユーザーID",
slot="[int]スロット番号",
count="[int]消費する課金通貨の数量",
paidOnly="[bool]有償通貨のみを対象とするか",
timeOffsetToken="[string]タイムオフセットトークン",
})Gs2Money:RecordReceipt
レシートを記録
ストアプラットフォーム(Apple App Store / Google Play)からの購入レシートを記録・検証します。
不正防止のためプラットフォームのサーバーに対してレシートが検証されます。リプレイ攻撃防止のため重複レシートは拒否されます。
数量指定可能なアクション:いいえ
反転可能なアクション:いいえ
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID#{userId} と設定することでログイン中のユーザーIDに置換されます。 | ||
| contentsId | string | ✓ | ~ 1024文字 | ストアプラットフォームで販売されているコンテンツID | ||
| receipt | string | ✓ | ~ 524288文字 | レシート | ||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
{
"action": "Gs2Money:RecordReceipt",
"request": {
"namespaceName": "[string]ネームスペース名",
"userId": "[string]ユーザーID",
"contentsId": "[string]ストアプラットフォームで販売されているコンテンツID",
"receipt": "[string]レシート",
"timeOffsetToken": "[string]タイムオフセットトークン"
}
}action: Gs2Money:RecordReceipt
request:
namespaceName: "[string]ネームスペース名"
userId: "[string]ユーザーID"
contentsId: "[string]ストアプラットフォームで販売されているコンテンツID"
receipt: "[string]レシート"
timeOffsetToken: "[string]タイムオフセットトークン"transaction.service("money").consume.record_receipt({
namespaceName="[string]ネームスペース名",
userId="[string]ユーザーID",
contentsId="[string]ストアプラットフォームで販売されているコンテンツID",
receipt="[string]レシート",
timeOffsetToken="[string]タイムオフセットトークン",
})AcquireAction
入手アクション
Gs2Money:DepositByUserId
ユーザーIDを指定してウォレットの残高に加算
指定されたユーザーのウォレットに指定量の通貨を追加します。
価格が 0 の場合は無償通貨として、それ以外の場合は有償通貨として扱われます。
数量指定可能なアクション:はい
反転可能なアクション:はい
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID#{userId} と設定することでログイン中のユーザーIDに置換されます。 | ||
| slot | int | ✓ | 0 ~ 100000000 | スロット番号 プラットフォームやコンテキストごとにウォレット残高を分離するための識別子。 異なるスロットにより、別々の有償通貨プールを管理できます(例: iOS購入はスロット0、Androidはスロット1)。 無償通貨はネームスペースの shareFree 設定により、全スロット間で共有することもできます。 | ||
| price | float | ✓ | 0 ~ 100000.0 | 購入価格 | ||
| count | int | ✓ | 1 ~ 2147483646 | 付与する課金通貨の数量 | ||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
{
"action": "Gs2Money:DepositByUserId",
"request": {
"namespaceName": "[string]ネームスペース名",
"userId": "[string]ユーザーID",
"slot": "[int]スロット番号",
"price": "[float]購入価格",
"count": "[int]付与する課金通貨の数量",
"timeOffsetToken": "[string]タイムオフセットトークン"
}
}action: Gs2Money:DepositByUserId
request:
namespaceName: "[string]ネームスペース名"
userId: "[string]ユーザーID"
slot: "[int]スロット番号"
price: "[float]購入価格"
count: "[int]付与する課金通貨の数量"
timeOffsetToken: "[string]タイムオフセットトークン"transaction.service("money").acquire.deposit_by_user_id({
namespaceName="[string]ネームスペース名",
userId="[string]ユーザーID",
slot="[int]スロット番号",
price="[float]購入価格",
count="[int]付与する課金通貨の数量",
timeOffsetToken="[string]タイムオフセットトークン",
})Gs2Money:RevertRecordReceipt
ユーザーIDを指定してレシートの記録を削除
トランザクションIDを抽出して対応するレコードを削除することで、以前に記録されたレシートを取り消します。
ストアプラットフォームからの返金やチャージバック処理に使用します。
数量指定可能なアクション:いいえ
反転可能なアクション:いいえ
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID#{userId} と設定することでログイン中のユーザーIDに置換されます。 | ||
| receipt | string | ✓ | ~ 524288文字 | レシート | ||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
{
"action": "Gs2Money:RevertRecordReceipt",
"request": {
"namespaceName": "[string]ネームスペース名",
"userId": "[string]ユーザーID",
"receipt": "[string]レシート",
"timeOffsetToken": "[string]タイムオフセットトークン"
}
}action: Gs2Money:RevertRecordReceipt
request:
namespaceName: "[string]ネームスペース名"
userId: "[string]ユーザーID"
receipt: "[string]レシート"
timeOffsetToken: "[string]タイムオフセットトークン"transaction.service("money").acquire.revert_record_receipt({
namespaceName="[string]ネームスペース名",
userId="[string]ユーザーID",
receipt="[string]レシート",
timeOffsetToken="[string]タイムオフセットトークン",
})