play_billing
Android SDK の Google エクストラのサンプルを、独自のアプリ パッケージ名と公開キーを使用するように調整しました。管理アイテムの購入とアプリからの定期購入ができました。
ただし、サブスクリプションなどInventory.getAllPurchases()
のメソッドを呼び出すと、アプリを再起動して再インストールした後でも、ユーザーのインベントリに返されません。
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inventory)
{
if(result.isFailure())
{
log.error("In-app billing inventory query failed: " + result);
return;
}
for(Purchase purchase : inventory.getAllPurchases())
{
log.info("Purchase: " + purchase.getSku());
}
}
出力:
Purchase: premium
通常の 1 回限りの購入 ( premium
) はご覧のように出力されますが、定期購入 ( ) は出力されpaid_app
ません。サブスクリプションを再度購入しようとすると、既に購入済みと表示されます。
知っていることはすべて試しましたが、これがわかりません。通常のアイテムは意図したとおりに機能しているため、サブスクリプションがどのように機能するかを完全に理解していない限り、サブスクリプションが返されない理由はわかりません.
APK を下書きとしてアップロードしました。テスター リストに電話のメール アドレスがあります。電子メールは私の開発者の電子メールではありません。サブスクリプション アイテムはアクティブです。私がテストしている電話には、最新バージョンの Google Play が搭載されています。
編集:まだ運がありません。ただし、関連する場合に備えて、別の更新があります。Google ウォレットにアクセスしても、トランザクションが表示されません (表向きはテスト トランザクションであるため)。また、サブスクリプションの下で Google Play にアクセスしたときのテスト ユーザー アカウントの場合、リストには表示されません。それでも二度と購入させてくれません。そのため、購入したサブスクリプションがクエリを実行しても表示されないだけでなく、キャンセルして再度テストすることもできません。
ここでのアイデアは大歓迎です。