8

仮想コイン(消耗品)を購入するために、IAPを使用してiOSアプリを作成しました。バックエンドは Ruby on Rails です。今のところ、ソリューション全体についていくつかの懸念があります。

私の現在の IAP プロセスは次のように説明されています。

  • ステップ 1 - iOS クライアントがバックエンドにリクエストを送信し、製品 ID を取得します。
  • ステップ 2 - クライアントは、ステップ 1 の ID を使用して Store Kit から製品リストを取得します。
  • ステップ 3 - ユーザーが [購入] をクリックすると、クライアントが Store Kit に支払い要求を送信します
  • ステップ 4 - トランザクションが終了すると、クライアントはレシート トークンをバックエンドに送信します
  • ステップ 5 - サーバーは最初に領収書を検証し、それが有効な検証であることを確認します
  • ステップ 6 - サーバーは App Store を呼び出してレシートを確認し、交換を処理します (DB のリチャージ アカウント)
  • STEP 7 - クライアントは応答を受け取り、口座残高を表示します

私は以前に電子商取引/支払いソリューションに取り組んでいました.IAPは逆ですが、通常、支払いゲートウェイは検証のために領収書をサーバー間で送信します. そして、すべてのトランザクションが安定して保守可能であることを確認するために、メッセージ キューのようなソリューションを常に用意しています。

私の質問は次のとおりです。

  1. IAP の受領を確認するためのベスト プラクティスは何ですか? サーバーからの検証の中断を回避するには? (例: ユーザーはクライアントでお金を使ってトランザクションを終了しますが、サーバーで領収書を確認するときに失敗します。IAP 復元トランザクションはサポートされていません。)

  2. Apple IAP は、おそらく完璧なクライアント ソリューションです。特に私の場合、ユーザーの支払い後、彼はすぐにコインを受け取りたいと思っていますが、トランザクションが処理中であり、アカウントがすぐに履行されると伝えた場合ではありません。モバイル デバイスでレスポンシブ UX を実現することが優先されます。サーバーでまだメッセージキューを使用していますか?

御時間ありがとうございます。

4

3 に答える 3

1

質問 1: Apple のドキュメント (こちら) によると、常にサーバーでレシートを検証する必要があります。バックエンドで Apple のサーバーと通信するのに役立つ ruby​​ gem がいくつかあります。

https://github.com/gabrielgarza/monza

主催:https ://getmonza.com

https://github.com/nomad/venice

https://github.com/nov/itunes-receipt

質問 2: これは、あなたが詐欺にどの程度関心を持っているかによって異なります。領収書を検証しないと、詐欺にさらされることになります。サーバー側で検証することを強くお勧めします。

アプリ内購入の優れた基礎については、この WWDC ビデオをご覧ください

于 2016-06-19T09:08:38.697 に答える
1

http://helios.io/が役に立つかもしれません。これは、4 つの便利な iOS 関連の gem を組み合わせたもので、そのうちの 1 つがhttps://github.com/mattt/rack-in-app-purchaseです。

于 2013-04-03T03:26:03.840 に答える
0

質問を正しく理解していれば、これに使用できる itunes-receipt という gem があるようです。宝石はここにあります: https://github.com/nov/itunes-receipt

この問題に対処する NSScreencast もあり、ショー ノート内の手順はかなり完全に見えます。http://nsscreencast.com/episodes/45-validating-iap-receipts

于 2014-03-26T02:42:04.540 に答える