問題タブ [android-inapp-purchase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-play - 突然 Google Play コンソールにアプリ製品を追加できなくなりました (問題については、以下のリストを確認してください。)
私のアプリは約 4 ~ 5 か月前に公開されました。アプリ内アイテムは問題なく動作します。突然、新しいアプリ内アイテムを追加または編集できなくなりました。「問題については、以下のリストを確認してください」というエラーが表示されます。ですが、リストに問題はありません。どんな助けでも大歓迎です。
android - Android アプリ内で InApp 購入を照会する
ユーザーが 1 つのアプリ内製品を購入して一部の機能のロックを解除できる Android アプリがあります。
https://developer.android.com/google/play/billing/billing_library_overview#javaのガイドをよく読みました。
ユーザーがアプリ内製品を購入できるようにするには、次のことを行う必要があることを理解しています。
- 呼び出しを使用して、利用可能な SKU のリストを取得します (この場合、私の唯一のアプリ内製品です)
querySkuDetailsAsync()
。これは、ユーザーのデバイスがアプリ内アイテムを管理できるかどうかを再確認するためのものです。 - 前回の呼び出しの結果に SKU が表示された場合は、[購入] ボタンを表示します (これは、ユーザーのデバイスのローカル Google Play インスタンスがアプリ内製品を処理できることを意味します)。
launchBillingFlow()
アプリ内製品の SKU を渡して呼び出し、Google 支払いプロセス フローを開始します (Google UI、カードの詳細を尋ねるポップアップなど)。- コールバックをリッスンして
onPurchasesUpdated()
リターン コード (基本的に、支払いが拒否された、支払いが成功した、または支払いがキャンセルされた) を取得し、それに応じて行動します。支払いが成功した場合は、購入トークンの署名をローカルで (Play 開発者の RSA 公開鍵のローカル コピーを使用して) 検証するか、同じ鍵を使用して安全なサーバーでリモートで検証します。 - アプリの有料機能のロックを解除する
それが物事が混乱するところです。Google のドキュメントの観点から、ユーザーの支払いを取得/購入/確認する方法を説明しました。ただし、アプリの起動時に支払いを記憶し、有料機能のロックを解除する方法についてはどこにも説明されていません.
ドキュメントには次のように記載されています。
ユーザーがアプリから行った購入に関する情報を取得するには、queryPurchases() を呼び出します。
そのため、アプリは何も覚えておく必要がないようです。queryPurchases()
起動時に を呼び出して、SKU が存在するか (ユーザーは既に支払い済み) かどうか (ユーザーはまだ有料版のアプリを購入していないか) を確認します。
したがって、私のアプリはまさにそれを行っており、queryPurchases()
起動時に呼び出して、SKU が存在するかどうかを確認します。この方法は、アプリがオフラインで開始された場合でも非常にうまく機能します。ただし、一部のユーザーは、アプリが有料モードで起動しないことがあるという事実を嘆いています。これは、(コードをデバッグした)queryPurchases()
デバイスがオフラインのときに関数が (時々) 失敗するためです。がqueryPurchases()
何らかの理由で以前の購入を追跡できないローカルの Google Play キャッシュを呼び出している可能性がありますか? (キャッシュパージなど...)
ユーザーの購入を記憶し、アプリの起動時に有料機能を有効にする適切な方法は何ですか?
android - アプリケーションを削除して再インストールした後に購入履歴を確認するにはどうすればよいですか
ユーザーがアプリ内購入を使用して購入できるようにするアプリケーションを開発しており、購入後に広告を削除したいと考えています。以下のコードで正常に購入できます
しかし、アプリを再度開いて以下のメソッドを呼び出すと、queryPurchaseHistoryAsync の結果が表示されません。
購入リスト.サイズ() == 0
「queryPurchaseHistoryAsync」メソッドはテスト購入を表示できませんか、それとも何か間違っていますか?
編集:queryPurchaseHistoryAsyncメソッドは、アプリを削除して再度インストールした後に購入を確認します。
google-play-developer-api - paymentState は試用期間から変更されません
私は Google Play でアプリ内サブスクリプションを実装しており、Google Play API へのポーリングを通じてそれらのステータスを同期しています。サブスクリプションには 3 日間の試用期間があり、試用期間が終了した後、Google API は paymentState=0(Pending) または 1(Received) を返すことを期待しています。これは、Google が paymentState=0 (無料試用版) を返し続けるため、支払いに失敗したお客様に常に発生するとは限りません。
Google は猶予期間を設けているようですが、このサブスクリプション タイプには猶予期間が設定されていません。
なぜこのようなことが起こるのか、また 3 日間の試用期間が終了したときに試用期間のステータスをどのように更新すればよいか分かりますか?
ありがとう