見出し画像

MMORTBS開発記-033 課金アイテム管理その4

いつもありがとうございます。

スキマ時間開発のお時間です。よろしくお願いします。

前回までのあらすじ

  課金アイテム実装中。UnityIAPの設定まで作成しました。


まずは、Unityで画面を作成します。

酒場に入り口を作成(SHOPのボタン)



SHOPのLovを作成する。等幅フォントって良いですね。

次は、ボタン押下時の処理を作成します。
とりあえず100円のボタンを作成してみましょう。


		// 画面をロックする
		Lov_Seal.SetActive(true);

		// 購入個数を確認する(金額はそのままで、個数増量はするかもしれない)
		int p_buy_val = 0;
		SqliteDatabase sqlDB = new SqliteDatabase("接続文字列");
		String p_sql = "SELECT * FROM テーブル名";
		DataTable dataTable;
		Dictionary<string, string> p_placedtl_list = new Dictionary<string, string>();

		dataTable = sqlDB.ExecuteQuery(p_sql);
		foreach (DataRow dr in dataTable.Rows)
		{
			p_buy_val = Subgv_DRtoInt(dr, "項目名", 0);
		}

		// 購入処理を作成する
		MyInAppPurchase p_MyInAppPurchase = new MyInAppPurchase();
		p_MyInAppPurchase.Initialize();

		// サーバー登録成功時処理
		Action action2 = () =>
		{
			// 処理完了
			p_MyInAppPurchase.ConfirmPendingPurchase();

			// 画面ロックを解除する
			Lov_Seal.SetActive(false);
		};

		// 購入成功時処理
		Action<string> action1 = s =>
		{
			// サーバーに登録する
			StartCoroutine(CommunicationManager.ConnectServer("サーバー登録処理"
				, action2));
		};

		// 購入処理
		p_MyInAppPurchase.InitiatePurchase("プロダクトID", action1);


エディタでは購入確認が出ない。実機ではでるよね??


ちゃんとGooglePlayからダミーのレシートIDも発行されている

ダミーなので悪用はできない


じゃあ改めて、引数に商品マスタのコードを設定するよう、C#を変更して、Unity側もボタンに引数固定値で設定。

キャンペーン期間で増量とかをする場合は、マスタの値を変更すればOK。
といいつつ、ボタンのテキストは固定で埋めちゃってるので結局バージョンアップは必要な感じ。うむむ。

で、全ボタンに処理を設定したらこんな感じ。

1万個以上の表示もOK


データはサーバーに登録されているので、ローカルを改ざんしても無意味。

ちゃんと登録できてるね。


あと、サーバー側でレシートの検証が必要なはず。
ベータテストまでは性善説でよいはずなので、とりあえず後回しでいいかな。

次はリワードガチャの実装いってみましょうか。
ここも大変そうなイメージ。。。


最後まで読んでいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?