3

    ではiOS6、商品を購入すると、取引の領収書を受け取ることができます。次に、このレシートをアプリ ストアに送信して検証します。検証結果がvalid(status=0)の場合、base64-encoded名前付きの文字列latest_receiptが返されます。次に、この新しいエンコードされた領収書を保存して、次回の検証に使用できます。

    に変更するまではすべて問題ありませんiOS7。トランザクションの領収書は非推奨です。代わりに、を使用して領収書ファイル パスを取得する必要があります[[NSBundle MainBundle] appStoreReceiptURL]。同じように、このレシート データをエンコードし、検証のためにアプリ ストアに送信します。もちろんlatest_receipt返品です。次に、これをもう一度検証のためにアプリストアに送信しようとしましたが、 と なしでlatest_receipt非常に奇妙な結果が得られました。最も奇妙なことは、ステータスが 0 であることです。latest_receipt_infolatest_receipt

{
"status": 0, 
"environment": "Sandbox", 
"receipt": {
    "receipt_type": "ProductionSandbox", 
    "adam_id": 0, 
    "bundle_id": "com.abcde.myapp", 
    "application_version": "1.0", 
    "download_id": 0, 
    "request_date": "2013-10-02 02:51:45 Etc/GMT", 
    "request_date_ms": "1380682305478", 
    "request_date_pst": "2013-10-01 19:51:45 America/Los_Angeles", 
    "in_app": [ ]
}

代わりに、常にレシートを取得appStoreReceiptURLしてアプリ ストアに送信すると、通常の結果を得ることができます。ただし、サブスクリプションの有効期限が切れると、ステータス コード21006は返されません。これは別の奇妙なことです。ユーザーの正当性を確認するために、すべての領収書を確認する必要がありますか?

誰かが何が起こるか知っていますか?ありがとう。

4

0 に答える 0