8

ストアの領収書を確認したいアプリ内購入があります。Apple の iTunes API を使用して、インターネット上の任意のマシンからこれを確認したいと思います。トランザクションが完了した後、レシートは Parse に保存されます。Apple developer websiteのガイドに従っています。まず、Parse からトランザクションを取得します。

curl -X GET \
  -H "X-Parse-Application-Id: [...]" \
  -H "X-Parse-REST-API-Key: [...]" \
  https://api.parse.com/1/classes/Transactions/123456789

次のようになります。

{
    "transactionReceipt":{"__type":"Bytes","base64":"asdfqwertyASDFQWERTY="},
    "transactionType":"Purchased",
    "transactionIdentifier":"[...]",
    "transactionDate":{"__type":"Date","iso":"2012-09-10T06:58:44.071Z"},
    "createdAt":"2012-09-10T06:58:37.234Z",
    "updatedAt":"2012-09-10T06:58:37.234Z",
    "objectId":"HyPWJBlWzt"
 }

次に、transactionReceipt 内の base64 値を取得し、それを Apple エンドポイントに対してカールさせてレシートを取得します。

curl -H "Accept: application/json" \
     -H "Content-Type: application/json" \ 
     -X POST 
     -d '{"receipt-data":"asdfqwertyASDFQWERTY="}' \
     https://buy.itunes.apple.com/verifyReceipt

そして、私が返すのは、それほど役に立たないものだけです:

{"status":21002, "exception":"java.lang.IllegalStateException"}

これは、「領収書データ プロパティのデータの形式が正しくありませんでした」に対応すると思います。--trace-ascii を使用して curl で操作全体をダンプしても、関連性があると思われるものは何も明らかになりませんでした。問題は接続自体にあるのではないと確信しています。

ここでちょっと困った。トランザクションが最後に見つかったように見えます (領収書データの数バイトを微調整すると、java.lang.IllegalArgumentException がスローされます)。そのため、トランザクション自体に関係があると推測しています。誰もこれを見たことがありますか?

ありがとう!

4

1 に答える 1

1

同じエラーメッセージを検索した後、ここに着陸しました。私は最終的にそれを解決しました - 私ができる最善のアドバイスは、レシートが有効であり、正しい URL に投稿していることを再確認することです. 無効な領収書を使用していたときに正確なエラーが発生しました (または、おそらく間違った種類 - アプリ内購入の領収書ではなく、アプリの領収書でした)。プロダクションの検証 URL。

私は元々http://images.worldofapple.com/validating_051110.pdfのレシート データの例を使用していました。私はに投稿しようとしました:

どちらも同じエラーを出しました{"status":21002, "exception":"java.lang.IllegalStateException"}。根本的な原因は、これがアプリ内購入の領収書ではなく、アプリの領収書であることだと思います。

次に、 https: //gist.github.com/sauloarruda/2559455 から別のサンプル レシートを取得しました。

https://buy.itunes.apple.com/verifyReceiptで、同様に役に立たない応答を受け取りました。 {"status":21007}

最後に、https://sandbox.itunes.apple.com/verifyReceiptで期待どおりの応答を得ました。

{ "receipt":{"original_purchase_date_pst":"2012-04-30 08:05:55 America/Los_Angeles", "original_transaction_id":"1000000046178817", "original_purchase_date_ms":"1335798355868", "transaction_id":"1000000046178817", "quantity":"1", "product_id":"com.mindmobapp.download", "bvrs":"20120427", "purchase_date_ms":"1335798355868", "purchase_date":"2012-04-30 15:05:55 Etc/GMT", "original_purchase_date":"2012-04-30 15:05:55 Etc/GMT", "purchase_date_pst":"2012-04-30 08:05:55 America/Los_Angeles", "bid":"com.mindmobapp.MindMob", "item_id":"521129812"}, "status":0}

于 2013-04-09T20:01:19.620 に答える