我有一個應用內購買,我想要驗證商店收據。我想通過使用Apple的iTunes API從互聯網上的隨機機器驗證這一點。交易完成後,收據將存儲在Parse中。我正在關注Apple developer website上的指南。首先,我從解析獲得交易:使用Curl驗證App Store收據時發生IllegalStateException?
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"
}
然後我拿的base64值內transactionReceipt和捲曲它針對蘋果終端獲得收據:
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捲曲整個操作沒有透露任何我認爲是相關的東西,我確定這個問題不在連接本身。
稍微難倒了這裏。它看起來像事務被發現在他們的最後(在收據中調整了幾個字節 - 數據拋出了一個java.lang.IllegalArgumentException),所以我猜測它與事務本身有關。有沒有人看過這個?
謝謝!
響應「21007」不是無用的,它確切地告訴了什麼是錯誤的:沙箱收據正被髮送到現場製作環境ironment。這就是沙箱檢查工作的原因。 –