ウォレット更新通知
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
備考
- ウォレット更新通知APIは、AGSプライベートクラウド環境でのみ利用可能で、デフォルトで有効になっています。
- 現在、通知はグローバルにオンまたはオフになっており、ゲームネームスペースごとに設定できません。ウォレット更新通知APIの設定についてサポートをリクエストするには、AccelByteテクニカルプロデューサーに連絡するか、AccelByteカスタマーサポートポータルからリクエストを送信してください。
はじめに
AccelByte Gaming Services (AGS) ウォレット更新通知APIは、プレイヤーのウォレットに関するリアルタイム更新を提供し、ゲームクライアント外で発生する変更を含め、プレイヤーが迅速に通知されることを保証します。
サポートされている通知タイプとサンプルペイロード
このセクションでは、AGSウォレットサービスでサポートされているウォレット更新通知のタイプをリストします。
ウォレットステータス変更通知
以下はwalletStatusChanged通知のサンプルペイロードです。
{
"type": "walletStatusChanged",
"payload": {
"action": "enable",
"data": {
"walletId": "3d9bc4562aae41ccb3d9fd49f6a588d5",
"userId": "f9b5c9c0f74c4987b5d091c9a4429e16",
"status": "ACTIVE",
"previousStatus": "INACTIVE"
}
}
}
以下の表は、ペイロード内の各フィールドの機能とサポートされている値を説明しています。
| フィールド | タイプ | 説明 | 値 |
|---|---|---|---|
action | String | ウォレットに対して実行されたアクション | 有効化: enableUserWallet無効化: disableUserWallet |
data | Object | ウォレットステータス変更の詳細を含む | |
data.walletId | String | ウォレットの識別子 | |
data.userId | String | ウォレットに関連付けられたユーザーの識別子 | |
data.status | String | ウォレットの現在のステータス | ACTIVE または INACTIVE |
data.previousStatus | String | ウォレットの以前のステータス | ACTIVE または INACTIVE |
ウォレット残高変更通知
以下はwalletBalanceChanged通知のサンプルペイロードです。
{
"type": "walletBalanceChanged",
"payload": {
"action": "credit",
"data": {
"namespace": "namespace123",
"userId": "user123",
"currencyCode": "USD",
"amount": 500,
"reason": "Purchase",
"origin": "System"
}
}
}
以下の表は、ペイロード内の各フィールドの機能とサポートされている値を説明しています。
| フィールド | タイプ | 説明 | 値 |
|---|---|---|---|
action | String | ウォレットに対して実行されたアクション | 支払い(減少): payWithUserWallet出金(減少): bulkDebit、debitByWalletPlatform、debitUserWalletByCurrencyCode、または debitUserWallet期限切れ(減少): これはウォレット期限切れジョブによってトリガーされます。 入金(増加): bulkCredit または creditUserWallet |
data | Object | ウォレットステータス変更の詳細を含む | |
data.namespace | String | ウォレットが存在するネームスペース | |
data.userId | String | ウォレットに関連付けられたユーザーの識別子 | |
data.currencyCode | String | 残高に関連付けられた通貨コード | |
data.amount | Long | ウォレット内の新規または更新された金額 | |
data.reason | String | 残高変更の理由 | |
data.origin | String | 残高変更の起源 |
ゲームクライアントとの統合
- OSS
FOnlineSubsystemAccelByte* AccelByteOSS = static_cast<FOnlineSubsystemAccelByte*>(IOnlineSubsystem::Get(ACCELBYTE_SUBSYSTEM));
if(AccelByteOSS == nullptr)
{
// Bail out if AccelByteOSS is not found
return;
}
FOnlineIdentityAccelBytePtr IdentityInterface = StaticCastSharedPtr<FOnlineIdentityAccelByte>(OnlineSubsystem->GetIdentityInterface());
FOnlineWalletAccelBytePtr WalletInterface = StaticCastSharedPtr<FOnlineWalletAccelByte>(OnlineSubsystem->GetWalletInterface());
const int32 LocalUserNum = 0;
// Make sure to connect to lobby first
IdentityInterface->ConnectAccelByteLobby(LocalUserNum);
// To Add a delegate
// walletStatusChanged
FDelegateHandle OnWalletStatusUpdatedHandle = WalletInterface->AddOnWalletStatusChangedNotificationDelegate_Handle(LocalUserNum, FOnWalletStatusChangedNotificationDelegate::CreateLambda([](int32 inLocalUserNum, const FUniqueNetId& UserId, const FAccelByteModelsWalletStatusChangedNotification& Response)
{
// Do Something
}));
// walletBalanceChanged
FDelegateHandle OnBalanceUpdatedHandle = WalletInterface->AddOnWalletBalanceChangedNotificationDelegate_Handle(LocalUserNum, FOnWalletBalanceChangedNotificationDelegate::CreateLambda([](int32 InLocalUserNum, const FUniqueNetId& UserId, const FAccelByteModelsWalletBalanceChangedNotification& WalletBalance)
{
// Do Something
}));
// To remove the delegate
// walletStatusChanged
WalletInterface->ClearOnWalletStatusChangedNotificationDelegate_Handle(LocalUserNum, OnWalletStatusUpdatedHandle);
// walletBalanceChanged
WalletInterface->ClearOnWalletBalanceChangedNotificationDelegate_Handle(LocalUserNum, OnBalanceUpdatedHandle);