アイテムが購入済みかどうかチェックする

指定したアイテムIDがアイテム内課金機能によって購入済みかどうかを調べる。

	//
	//	アプリ内課金でアイテムが購入済みかどうかチェック
	//
	//再インストール後など、購入履歴が残っていない場合は、購入済みでもfalseが返る
	//BillingService::RestoreTransactions();
	//により購入履歴を再取得する。
	//
	public bool BillingIsPurchased(String strItemID)//, ref int nQuantity)
	{
		Android.Database.ICursor cursor;

		Db db = new Db(ApplicationContext);

		if (db == null)
			return false;

		cursor = db.queryAllPurchasedItems();
		if (cursor == null)
			return false;

		try
		{
			//DBから列のインデックスを取得する
			int		nColumnProductID = cursor.GetColumnIndexOrThrow(Db.PURCHASED_PRODUCT_ID_COL);
			//int	nColumnQuantity = cursor.GetColumnIndexOrThrow(Db.PURCHASED_QUANTITY_COL);

			while (cursor.MoveToNext())
			{
				String	strProductID = cursor.GetString(nColumnProductID);

				if (strItemID == strProductID)
				{
					//nQuantity = cursor.GetInt(nColumnQuantity);
					cursor.Close();
					return true;
				}
			}
			cursor.Close();
		}
		catch (Java.Lang.IllegalArgumentException)
		{
			cursor.Close();
		}

		return false;
	}

※このコードは利用前にGoogle Play Developer Consoleでアプリ内課金を設定し、課金用のサンプルコードを実装する必要があります


カテゴリー「android C#」 のエントリー