問題タブ [auto-renewable]

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.

0 投票する
0 に答える
987 参照

in-app-purchase - Apple のステータス更新通知キーから original_transaction_id を取得できません

Apple のアプリ内購入プログラミング ガイドの ステータス更新通知を実装しています。https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subscriptions.html

サブスクリプション ステータス URL を設定し、Apple サーバーから応答を受け取りましたが、ドキュメントの表 6-3 でoriginal_transaction_idキーを取得できません。このキーを使用して、個々の顧客のサブスクリプションのトランザクションの領収書を取得できますか?.

original_transaction_idでフィールドを取得したことに気付き ましたlatest_receipt_info。外部キー ( l​​atest_receipt_info と同じレベルのオブジェクト キー)と同じ値original_transaction_idですか?

[アップデート]

original_transaction_idこの投稿では、顧客の領収書を検出するために使用すると述べました。original_transaction_id問題は、Apple サーバーの応答でフィールドを取得できないことです。私がどうかしましたか、まずいことでもありましたか?

自動更新サブスクリプションの Apple statusUpdateNotification を受信したときに、顧客/ユーザーをどのように判断しますか?

私の反応は

original_transaction_idキーの欠落

0 投票する
1 に答える
1761 参照

ios - iOS in App 購入 - 自動更新サブスクリプション

親愛なる、

「自動更新サブスクリプション」に固有の、アプリ購入の iOS に関する質問があります。無料機能と有料機能を含むアプリを開発しています。「月額サブスクリプションとユーザーには 1 週間の無料トライアル」に基づく有料機能

そして、すべてのプロセスは問題ありません。製品をフェッチし、ユーザーが購入でき、レシートを検証します (レシピには「is_trial..」と「Purchase_date」のフラグが含まれていることは知っています…)…..

親切に注意してください:購入直後または復元後に「レシピの検証」を呼び出します

しかし、私は以下の問題を抱えています:どうすれば以下を知ることができますか:

1- ユーザーがアプリを 2 回目に開いた場合、ユーザーがまだ試用期間中かどうかを知るにはどうすればよいですか?

2- ユーザーが 1 か月後にアプリを開いた場合: サブスクリプションの有効期限が切れているかどうかを知るにはどうすればよいでしょうか … (つまり、サブスクリプションの期限が切れた場合は、もう一度購入の電話をかけます …)

、ユーザーがアプリを開くたびに「レシピの検証」と呼ぶソリューションです。これにより、ユーザーが支払い済みか支払い済み期間後 (期限切れ) かを知ることができます…</p>

または、購入日をローカルに保存します(例:ユーザーのデフォルト)。ユーザーがアプリを開いたときに、現在の日付と購入日を比較します。ユーザーがデバイスの日付を変更する可能性があるため、これは本当の答えではありません….

アドバイスをお願いします…</p>

以下のコード:

だから今、アプリを開いたとき:私は製品をリクエストします:

製品を受け取るとき:

ユーザーがボタンを押すと:

以下のメソッドが呼び出されます

&私は領収書を検証します:

0 投票する
0 に答える
722 参照

ios - 本番環境で自動更新のサブスクリプション ステータス通知を受信しない

自動更新サブスクリプションを使用してアプリに取り組んでいます。オプションは 1 つだけです。1 週間の無料トライアル付きの毎月の自動更新サブスクリプションです。また、「サブスクリプション ステータス URL」を使用して、サブスクリプション通知を受け取ります。

アプリ自体は、複数のユーザー間でタスクを共有できる「TO DO LIST」アプリケーションに似ています。したがって、サーバー上にデータを保持します。

ユーザーがアプリをロードするか、タスクを作成するたびに、 current_subscription_status パラメーターを使用してサーバーからデータが取得されます。たとえば、レシートの有効期限をサーバー上の現在の日付と照合するだけで、サーバー上でサブスクリプション ステータスの検証を行います。

現在iOS版のみですが、Android版も開発中です。また、ユーザーは、異なる Apple ID を持つ異なるデバイスで自分のアカウントにサインインできる必要があります。

問題は、実際の購入 (サブスクリプション) 通知を受け取らないことです。たとえば、ユーザーが [1 週間の無料試用を開始] ボタンをタップしてサブスクライブすると、通知が届きます (タイプ INITIAL_BUY)。この1週間の試用期間の後、「RENEWAL」のようなタイプの別の通知を受け取るはずでしたが、何も受け取りません。

Apple 開発者サポートに連絡しましたが、本当の助けは得られませんでした。Apple のドキュメントへのリンクを送信するだけです。次のメモを見つけた場所 (ここにリンクがあります):

「イベントを処理する際に最新の情報を取得するには、アプリは App Store で最新のレシートを確認する必要があります。」

したがって、これに基づいて、考えられるユース ケース シナリオについて質問があります。

ユーザーは iOS デバイスで毎月の自動更新サブスクリプションに登録します。たとえば、彼/彼女は自分の Apple iTunes アカウントに請求されたいと考えています。しかし、最初の購入後、彼/彼女はアプリを終了 (強制終了) し、iOS デバイスで開くことさえしなくなりました。ユーザーはアプリを Android デバイスにダウンロードし、Android でのみアプリを使用します。そのため、App Store はこのユーザーに毎月課金し、ユーザーが iOS デバイスでアプリを二度と開いていない場合でも、サブスクリプション ステータス通知をサーバーに送信することになっていました。そのため、iOS アプリでは「...最新の受信確認...」は発生しません。これはどのように実装できますか?

技術詳細:

SwiftyStoreKit を使用しています。これらは、アプリ内購入の実装の 2 つの部分です。

  1. AppDelegate には次のものがあります。

    /li>
  2. ユーザーが「無料試用開始ボタン」をタップしたときに呼び出されるサブスクライブ関数は次のとおりです。

    /li>