0

iOSアプリだけでなく、Macでもアプリ内購入を行っています。

サンドボックス環境の領収書がhttps://buy.itunes.apple.com/verifyReceiptに対して検証されるときに私たちが理解していることは、ステータス コードとして 21007: を取得しますCargoBayStatusSandboxReceiptSentToProduction

これは iOS では完全に機能しますが、Mac アプリでは結果が異なります。

https://sandbox.itunes.apple.com/verifyReceiptを使用して検証した Mac アプリに有効なサンドボックス環境のレシートがあります。

https://buy.itunes.apple.com/verifyReceiptで同じ領収書を確認すると 、ステータス コードが 21007 に戻る必要がありますが、それが行われていません。代わりに、次の応答が返されます。

<html><head><title>Error</title></head><body>Your request produced an error.  <BR>[newNullResponse]</body></html>

基本的に、検証のためにこのアプリを Mac アプリ ストアに送信し、Apple の担当者がテスト ID を使用すると、本番 URL のレシート検証のステータス コードで失敗するサンドボックスのレシートを取得し、レシートの検証のためにサンドボックスの URL にフォールバックできます。 . しかし、説明したように、応答には有効なステータス コードが含まれていません。

ターミナルで次のコマンドを実行しました。

  1. Base 64 エンコーディングを使用して領収書をエンコードします。ここreceiptで、 は領収書ファイルのパスです。

      base64 -i receipt
    
  2. 領収書を確認するためにデータを送信します。

    curl -d '{ "receipt-data": "<your b64 string here>" }' https://sandbox.itunes.apple.com/verifyReceipt
    

    また

    curl -d '{ "receipt-data": "<your b64 string here>" }' https://buy.itunes.apple.com/verifyReceipt
    

本番 URL の応答は次のとおりです。

<html><head><title>Error</title></head><body>Your request produced an error.  <BR>[newNullResponse]</body></html>

理想的には、そうあるべきです{status code = 210007}。以前にこの問題に直面した人はいますか? または、何か不足していますか?

4

2 に答える 2

0

サンドボックスの領収書は iTunes の領収書とは異なります。サンドボックスの領収書をhttps://buy.itunes.apple.com/verifyReceiptに送信するとエラーが発生するとおっしゃいました。ただし、このサービスは iTunes ストアの領収書を対象としています。それらを混同しないでください。

于 2014-12-18T23:39:51.633 に答える