UnityIAPを使っている場合、一度しか購入できない商品は NonConsumable として定義する。
が、テスト中は何回も買いたいので購入状態を戻す方法を調べていたのだが、どうも見つからなかった。 この関数 でクリアするのかなと思ったが、やっぱり購入しなおせない。
ので無理やりやる方法をメモ。
Google Play Store の場合
一旦 Consumable なものとしてInitialize しなおせばよい。
NonConsumableとして以下のように定義している場合
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct("test_product", ProductType.NonConsumable, new IDs { {"test_product", GooglePlay.Name}, }); ); UnityPurchasing.Initialize (this, builder);
ConsumableにしてInitialize
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct("test_product", ProductType.Consumable, new IDs { {"test_product", GooglePlay.Name}, }); ); UnityPurchasing.Initialize (this, builder);
これを実行した上で、また NonConsumable に戻すと買い直すことができる。
デバッグ時はアプリ起動時にこれをやればいいかも。試してないけど。(できなかったら一旦 Consumable にしてビルド→実行する。めんどい) もっと良い方法があったら教えてください。
iOS App Store
一度アプリを削除し再インストール、リストア処理をせずに もう一度購入動作を行えば、初回購入と同じ処理が走ります。