みなさん、こんにちは。GS2の丹羽です。
先日発表した GS2-Showcase の提供を開始しましたので、お知らせします。
いつも通り、GS2-Showcase を Unity から使う方法を軽く説明したいと思います。
まず、商品情報の登録が必要です。
先日のブログエントリでも説明したとおり、商品には「商品」と「商品グループ」があり
それらを「陳列商品」として陳列することでショーケースができあがります。
これらは GS2 のマネージメントコンソールで登録して、JSON形式の設定ファイルをエクスポートすることができます。
JSON形式の設定ファイルですので、独自の管理ツールを作成して、そちらで作ったファイルで運用することも可能です。
設定ファイルを「ショーケースマスター」としてアップロードすることで、実際に商品情報を反映出来ます。
商品情報が登録出来たら、次は Unity から商品一覧を取得してみます。
yield return gs2.Showcase.DescribeSalesItems ( result => { if(result.Error != null) throw result.Error; // 商品リストの取得に成功 foreach (var item : result.Result) { Debug.Log("商品の種類: " + item.ItemType); Debug.Log("数量: " + item.ItemAmount); Debug.Log("通貨の種類: " + item.CurrencyType); Debug.Log("販売価格: " + item.Price); } }, session, // GS2 ログインセッション ShowcaseName, // GS2-Showcase で作成したショーケース名 );
このようなコードを書くと、先ほど登録した商品情報が取得出来ます。
その際に、GS2-Schedule や GS2-Script で公開期間を設定していた場合は、期間外の商品は取得出来ません。
また、商品グループとして陳列した商品は条件を満たす1つの商品だけが結果に含まれます。
次に、商品を購入してみます。
yield return gs2.Showcase.BuyItem ( result => { if(result.Error != null) throw result.Error; // 商品の購入に成功 var stampSheet = result.Result; // スタンプシート }, session, // GS2 ログインセッション ShowcaseName, // GS2-Showcase で作成したショーケース名 itemId, // DescribeSalesItems() で取得した商品ID KeyName // 購入処理で使用する GS2-Key 暗号鍵名 );
購入したい商品の 商品ID と、購入処理で使用する「スタンプシート」の暗号化に使う暗号鍵を指定します。
スタンプシートの詳しい解説は以下のブログエントリを参照してください。
商品を購入すると、スタンプシートが発行されます。
この時点では対価などは消費されていませんし、購入したアイテムも付与されていません。
スタンプシートのタスクを実行することで、対価が消費されたり、購入したアイテムが付与されることになります。
なので、この後はスタンプシートのタスクを実行します。
stampSheet.OnCompleteTasks += () => { Debug.Log("購入した商品の種類: " + stampSheet.Item.ItemType); Debug.Log("入手した数量: " + stampSheet.Item.ItemAmount); } yield return stampSheet.RunTask ( result => { if(result.Error != null) throw result.Error; // 全てのタスクを完了 }, session, // GS2 ログインセッション KeyName, // 購入処理で使用する GS2-Key 暗号鍵名 new BuyConfig { StaminaMaxValue = 50, } // 購入時に使用するオプション値 );
スタンプシートには RunTask メソッドがあり、そちらを呼び出すことでタスクを実行出来ます。
エラーが発生すると、指定したコールバック関数にエラーが返ります。
エラーを気にせず、再び RunTask メソッドを呼び出すと、失敗したところから処理を再開することが出来ます。
リトライ回数をカウントしつつ、一定回数失敗したら諦めるような実装を推奨します。
スタンプシートの RunTask メソッドの引数で指定するコールバックの他に OnDoneTask / OnCompleteTasks といったコールバックを登録して待ち受けることも出来るようになっています。
扱いやすい方で購入完了処理をハンドリングしてください。
最後に料金についてですが、GS2-Showcase は完全IO課金となっており、
API呼び出し 1,000回あたり3円 に加え、以下の操作をしたときに追加の費用が発生します。
商品一覧/商品情報の取得 | 1円/1,000回 |
---|---|
購入処理 | 3円/1,000回 |
商品マスタのエクスポート | 1円/回 |
それでは、また。