2017-03-08 11 views
0

Apple/Itunes/Itunes Connectは、アプリ内購入コールバック時以外はいつでも生成されたレシートの詳細情報を提供しますか?バックトラックIOS受信情報アプリ内購入を使用して行われた支払い情報IOS

領収書IDの記録がある場合は、明らかにAppleサーバーにカールリクエストを送信できます。しかし、何らかの理由で、アプリ内購入からのコールバック時に領収書IDが記録されていない場合は、詳細な支払い情報の詳細をログとして記録することはできません。

AppleはPaypalとAuthorizeとは異なり、(おそらくプライバシーの理由から)各取引の詳細(transaction_id、subscription_idなど)を持つレポートを提供しているようではありません。

したがって、アプリ内購入でAppleに支払ったお支払いの紛失した領収書IDを追跡する方法はありますか?

+1

どのようなIAPを使用していますか?消耗品や自動更新を購入しない場合は、デバイスの領収書を調べ(必要に応じてサーバーに再送信する)、またはUIに「復元」機能を提供することで、過去の購入の詳細を取得できます。消耗品または非購読の購読の場合、お客様の側で必要な処理が完了するまで、コードがトランザクションを完了しないようにする必要があります。例えば。サーバーがダウンしている、または連絡が取れない場合、*トランザクションは完了しません。トランザクションは再試行できるように保留状態に保たれます。 – Paulw11

+0

コメントありがとうございます@ Paulw11サーバーが停止しているか連絡を取れない場合は、トランザクションを完了しないでください。トランザクションは、あなたが再試行するために保留状態に保たれます...私はバックエンドの人で、購入ボタンがクリックされ、購入が確認されるとすぐにIOSの終了からどのように動作するのだろうと思っていました正しい方法で請求するか、トランザクション状態が完了するまで待ってください....また、領収書は定期購読のみに対して生成されますか? – jsherchan

+1

[このドキュメント](https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/DeliverProduct.html#//apple_ref/doc/uid/TP40008267- CH5-SW4)特に、「トランザクションの終了」および「中断されたトランザクションのテスト」に関するセクション。ユーザーが支払ったものを確実に得るために必要な作業をすべて完了するまで、iOSアプリケーションは 'finishTransaction'を呼び出さないことが重要です。 – Paulw11

答えて

1

はい、Appleはアプリ内購入のトランザクションの詳細を提供しています。レシートデータを返信することでアップルのサーバーから検証することができる、アプリケーション内の領収書の詳細を受け取る完全なプロセスがあります。この全プロセスは以下の記事でも説明されています。

私はNodeJSで開発されたバックエンドAPIを使用してサーバー側からの領収書を検証することで、このプロセスを実装しました。

https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Introduction.html

https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Introduction.html

私は必要な任意のさらなる支援を知ってみましょう。

+0

すぐにコメントするために@Gurdevありがとうございます。はい、領収書IDを渡した場合、支払い詳細情報を提供できます。しかし、たとえば、バックエンドAPIが領収書ID(アプリ内購入のコールバックを追跡していないか、バックエンドサーバがコールバックに応答できなかった)を記録できず、有料のユーザーが支払いが実際に行われたと不平を言う場合は領収書を紛失した場所をどこで探すのかを決めるために、支払の領収書を確認しますか? – jsherchan

+0

はい、それは私が扱った有効で実用的な使用例です。サーバーから受信したレシートデータもローカルデバイスに保存し、サーバー側のデータベースが確実に更新されるように状態を維持します。私のケースでは、領収書の検証によってデータベースレコードが更新され、ローカル状態と同期しているかどうかをチェックし、領収書を検証するためのチェックはアプリの起動ごとに実装されます。それは、これに利用可能な他の組み込みサポートがないと思ったので、私が従ったアプローチでした。 –

+0

しかし、ユーザーが完全に新規で、サーバー側が最初のインスタンス自体に支払い領収書を記録できなかったという意味で、領収書の前回の記録がない場合はどうなりますか?新しいユーザーの紛失/欠落した領収書を追跡できますか? – jsherchan

関連する問題