在iOS6
,当我们购买产品时,我们可以从交易中获得收据。然后我们将此收据发送到应用商店并验证。如果验证结果为valid(status=0)
,则会返回名为base64-encoded
的{{1}}字符串。然后,我们可以存储和使用这个新的编码收据,以便下次进行验证。
在更改为latest_receipt
之前,一切都很好。不推荐使用事务中的收据,而是使用iOS7
获取收据文件路径。同样,我对此收据数据进行编码并将其发送到应用商店进行验证。当然,返回[[NSBundle MainBundle] appStoreReceiptURL]
。然后我尝试将此latest_receipt
发送到应用商店再次进行验证,我得到了一个非常奇怪的结果,没有latest_receipt
和latest_receipt_info
。最奇怪的是状态为0.
latest_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
。这是另一件奇怪的事情。我是否需要检查所有收据以确认用户的有效性?
有人知道会发生什么吗?感谢。