16

アプリ内購入の自動更新サブスクリプションに関するさまざまなスレッドを読んでおり、必要な情報のほとんどをまとめたと思いますが、不足している部分がいくつかあります. 誰かが私を助けてくれることを願っています。

状況: ユーザーが購読できるさまざまなサブスクリプション パッケージがあります (たとえば、パッケージ A は月 1 ポンド、パッケージ B は月 2 ポンドなど)。ユーザーのサブスクリプション情報をデータベースに保存します。ユーザーがログインすると、そのユーザーが使用しているパッケージと、有効期限が切れているかどうかを確認します。私のウェブサイト、アンドロイド、iOS はすべて同じデータベースを使用しているため、このアプローチは理にかなっているようです。

アプリ内購入でユーザーを購読するのは簡単に思えます。paymentQueue を確認し、支払いが決済されたら、データベースを更新できます。

私の質問:

1) 私の理解では、ユーザーは iTunes を使用してサブスクリプションを管理できます。たとえば、彼らが iTunes にアクセスしてサブスクリプションをキャンセルした場合、データベースを更新できるように通知するにはどうすればよいですか? ユーザーが更新したかどうかを確認するために期限切れのサブスクリプションをチェックするデーモンが必要ですか?

2) ユーザーがサブスクリプションをパッケージ A からパッケージ B にアップグレードしたい場合、価格はどのように処理すればよいですか? 1 月 1 日にパッケージ A を購入するとします。私は彼らに 1.00 ポンドを請求し、有効期限を 1 月 31 日に設定します。1 月 15 日に、アプリ内購入でパッケージ B にアップグレードしたいと考えています。理想的には、パッケージ B の 2 ポンドからパッケージ A のクレジット 0.50 ポンドを引いた金額を請求し、新しい有効期限を 2 月 14 日に設定します。しかし、Apple は私に、各パッケージを階層価格に関連付けることを強制しています。どうすればこれを処理できますか? ユーザーが月末まで待ってから上位パッケージに入れたくありません...月の途中でアップグレードした場合、新しいコンテンツ パッケージ B がすぐに配信されることをユーザーが望んでいることを意味します。

どんな助けでも大歓迎です!

ありがとう!

4

6 に答える 6

4

1) はい、領収書を再確認する必要があります。ドキュメントの領収書検証プログラミング ガイドを参照してください。彼らはいくつかの重要なキーについて言及しています:

  • status- レシートが有効な場合は 0、またはエラー コード
  • receipt- レシートの JSON レスポンス
  • latest_receipt(自動更新のみ) - 最新の更新の base 64 でエンコードされたレシート
  • latest_receipt_info- の JSON バージョンlatest_receipt

この情報を使用して、購入が行われると、検証のために領収書をバックエンドに送信します。バックエンドは領収書を DB に保持し、status = 0 で有効な領収書であることを確認します。そこから、毎日x、cron ジョブ、デーモンなどでそのレシートを検証し、再検証できます。毎回返される応答にはlatest_receipt_info、DB に保存する必要があるため、次のチェックイン日までに最新のレシートが得られますx。このようにして、常に最新の領収書を入手できます。ユーザーがサブスクリプションをいつキャンセルしたかを知らせる即時通知はありませんが、これにより、ユーザーがxまだサブスクリプションを持っているかどうかを毎日知ることができます.

2) 申し訳ありませんが、このような価格設定には対応できません。ユーザーがサブスクリプションで「アップグレード」することを意図したものではありません。この記事の執筆時点では、各サブスクリプションは独自の独占コンテンツにアクセスできます。ただし、顧客が電子メールで苦情を申し立てた場合は、ユーザー名を尋ねて、このユーザーが実際に月の途中でアップグレードしたかどうかを DB で把握し、適切に払い戻しを行うことができます。非常に古い学校であり、大規模なユーザーベースには適していませんが、うまくいけば、それほど多くはなく、ユーザーを満足させることができます.

于 2016-01-12T19:41:22.453 に答える
3

編集済み

2 番目の質問については、Apple の自動更新サブスクリプション システムは技術的に異なる製品間のアップグレード可能なプランを提供していません。

すべてのサブスクリプションはスタンドアロン製品であり、ユーザーは iTunes Store のサブスクリプション マネージャーを使用してサブスクリプションを手動でオン/オフにする必要があります。

ただし、パッケージ A とパッケージ B がまったく同じコンテンツを提供するだけで、ajay_nasaが正しいと言った期間とは異なる場合は、期間オプションが異なる単一の自動サブスクリプション製品を作成できます。ユーザーが 1 か月のサブスクリプションを使用している場合、ユーザーが 2 か月のサブスクリプションに変更しようとすると、App Store のサブスクリプション マネージャーにアクセスするように求める次のエラー メッセージが表示されます。

ここに画像の説明を入力

したがって、基本的に、ユーザーがサブスクリプションの長さを実際に変更できる唯一の場所は、App Store です。Apple が古いサブスクリプションの残りの金額を比例配分するか、現在のサブスクリプションに追加するかは、実際には Apple 次第です。各レシート エントリから[元の購入日] フィールドと[サブスクリプションの有効期限]フィールドを読み取り、サブスクリプションの開始日と終了日を決定することによって、サブスクリプションがアクティブである限り、ユーザーがサブスクリプションにアクセスできることを確認する必要があります。

于 2016-01-11T06:29:45.063 に答える
2

質問 1 に答えると、他の IAP と同じ方法でサブスクリプションの領収書を確認できますが、サブスクリプションの有効期限が切れているかどうかを定期的に確認する必要があります (有効期限が切れているかどうかは確認でわかります)。

Apple ドキュメントの詳細については、次を参照してください。

http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/RenewableSubscriptions/RenewableSubscriptions.html

于 2013-08-08T12:42:06.740 に答える
1

ここに画像の説明を入力実際、Apple の自動更新サブスクリプション システムでは、アップグレード可能なプランが提供されています。

これを実現するには、既存の自動更新サブスクリプションに期間を追加するだけです。すべての自動更新可能なサブスクリプションはサブスクリプションのファミリーである可能性があるため、開発者がサブスクリプションをアップグレードしたいときはいつでも、既存の自動更新可能なサブスクリプションに別の productID で期間を追加する必要があります。

ユーザーが月の間にプランをアップグレードすると、アップグレードプランは翌月から自動的に機能します。

于 2016-01-19T10:07:11.023 に答える