問題タブ [receipt-validation]
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.
ios - Apple レシート検証の問題
皆さん、サーバーで領収書を検証しようとしていますが、Apple のドキュメントはせいぜいあいまいです。
ドキュメントの最後の段落から ( https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html ):
The values of the latest_receipt and latest_receipt_info keys are useful when checking whether an auto-renewable subscription is currently active. By providing any transaction receipt for the subscription and checking these values, you can get information about the currently-active subscription period. If the receipt being validated is for the latest renewal, the value for latest_receipt is the same as receipt-data (in the request) and the value for latest_receipt_info is the same as receipt.
電話が送信した受信文字列が、Appledata.latest_receipt
から返された文字列と一致するかどうかを確認しましたが、一致しません!
Apple から返された JSON オブジェクトを見ると、latest_receipt_info
と内のオブジェクトreceipt
も異なります。
誰かが私に彼らの経験を教えてもらえますか? また、領収書が有効であることをどのように検証しますか?
ios - アプリの購入で領収書を取得して保存する
私のアプリには、自動更新サブスクリプションのサーバー側のレシート検証があります。
特に、アプリを再起動するたびに、レシートがまだ有効かどうかを確認する必要があります。
iOS7 では、レシートを取得できるコード行だけで、かなり簡単に思えます。
iOS6 では にフォールバックするようtransactionReceipt
です。取得するには、2 つのオプションがあります。
- 購入後保存
- 復元購入として再度依頼する
ここに問題があります。最初のケースでは、領収書はサブスクリプション期間のみ有効であり、どこに保存するのが正しいと思いますか?.
2 番目のケースでは、購入を復元すると App Store のポップアップ メッセージが表示され、スタートアップのたびにそれを尋ねるのはかなり退屈です。
誰かが正しい道を教えてくれますか?
ios - iOS 7 スタイルの領収書を使用してアプリ内購入の最新の領収書を見つける方法
ユーザーがアプリ内アイテムを購入したときに、最新のレシート情報をデバイスでローカルに取得しようとしています。私の問題は、latest_receipt_info フィールドの領収書の配列から最新の領収書 (最新の購入で生成されたもの) を取得する方法がわからないことです。どういうわけか、すべてのレシートのすべての pruchase_date_ms フィールドの値が同じです。
上記の例では、実際に product2 のテスト購入を行っていますが、同じpurchase_date_msのproduct1のレシートも持ってい ます。誰でも理由を知っていますか?
ios - IAP の transactionReceipt の廃止をどうするか?
transaction.transactionReceipt
現在、文字列サーバー側として base64encoded を検証しています。問題は、transaction.transactionReceipt
現在廃止されており、アプリ内購入のためにこれを何に置き換えるかがわからないことです.
新しいドキュメントでは の使用が推奨されてNSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
いますが、ドキュメントでは、これはアプリ購入の検証のみを目的としており、アプリ内購入には使用できないと記載されています。
この場合、どうすればよいですか?
ios - Apples Receipt Validation Endpoint を使用して非消耗品のアプリ内購入が有効かどうかを確認するにはどうすればよいですか
最近、 Apple のドキュメントに従って、iOS からの購入を検証および記録するサービスをセットアップしました 。数回購入した後、テーブルを確認したところ、ステータス コード 0 で返された 45 件の購入があったことがわかりました。これは、Apple のドキュメントによると、それらが有効であることを意味します。問題は、iTunes アカウントにログインしたときに、有効な購入が 22 回しか記録されていなかったことです。ステータスが 0 の Apple からの JSON 応答を詳しく調べたところ、次の 2 つのバリエーションが見つかりました。
最初のアプリ内オブジェクト配列は空ですが、2 番目には実際に IAP のレシートがあるように見えることに注意してください。私の想定では、アプリ内配列が取り込まれたレシートを確認する必要があります。私の問題は、アプリ内配列なしで領収書を解析したことです.25の有効な購入がまだ残っています(Appleによって記録されたものより3つ多い)。
次に考えたのは、これらの購入品の一部が復元されたものではないかということでした。このメモは、領収書検証プログラミング ガイドで見つけました。元のトランザクション識別子の下に次のように記載されています。
「以前のトランザクションを復元するトランザクションの場合、元のトランザクションのトランザクション ID。それ以外の場合は、トランザクション ID と同じです。」
有効な領収書をすべて調べたところ、original_transaction_id
とtransaction_id
が異なる例は見つかりませんでした。さらに言えば、重複して購入したため、アイテムが既に購入されているというプロンプトが表示され、無料で復元するかどうか尋ねられました. そうして領収書を確認したところ、この場合でも 2 つのトランザクション ID が同じであってはならないことがわかりました。
問い合わせをしたところ、iTunes の IAP セクションが正常に動作しているという定型文の返信を受け取りました。Apple の IAP の最終的な数と一致するようにこれらをより適切にフィルタリングする方法について、誰かが光を当てるのを助けることができれば、それは大歓迎です!
ios - iOS アプリが App Store からダウンロードされているかどうかを確認する方法は?
アプリ内購入のないアプリがあると仮定すると、アプリが実際に App Store からダウンロードされたことを確認するだけで済みます。
これを検索して見つけたすべての情報は、アプリ内購入の領収書の検証に関するものです。App Store のダウンロードかどうかを確認するには、App Store の領収書が存在し、有効かどうかを確認するだけで十分ですか? これをサンドボックスでテストする方法はありますか?
編集
サンドボックスでテストするには、次のようにします。
いつも「領収書が見つかりません」と出ます。
私もこれをしました:
まだ領収書が見つかりません。