应用程序执行操作,并将收据发送到我的服务器,我的服务器将其发送到苹果服务器以验证收据。
IOS7更改了返回数据。
现在,返回数据如下:
{u'environment': u'Sandbox',
u'receipt': {u'adam_id': 0,
u'app_item_id': 0,
u'application_version': u'1.0',
u'bundle_id': u'com.mztimes.sanguo.international',
u'download_id': 0,
u'in_app': [{u'is_trial_period': u'false',
u'original_purchase_date': u'2014-10-24 06:54:20 Etc/GMT',
u'original_purchase_date_ms': u'1414133660000',
u'original_purchase_date_pst': u'2014-10-23 23:54:20 America/Los_Angeles',
u'original_transaction_id': u'1000000128944402',
u'product_id': u'com.mztimes.sanguo.international.60gold',
u'purchase_date': u'2014-10-28 01:56:45 Etc/GMT',
u'purchase_date_ms': u'1414461405000',
u'purchase_date_pst': u'2014-10-27 18:56:45 America/Los_Angeles',
u'quantity': u'1',
u'transaction_id': u'1000000128944402'},
{u'is_trial_period': u'false',
u'original_purchase_date': u'2014-10-24 06:52:30 Etc/GMT',
u'original_purchase_date_ms': u'1414133550000',
u'original_purchase_date_pst': u'2014-10-23 23:52:30 America/Los_Angeles',
u'original_transaction_id': u'1000000128944196',
u'product_id': u'com.mztimes.sanguo.international.300gold',
u'purchase_date': u'2014-10-28 01:56:45 Etc/GMT',
u'purchase_date_ms': u'1414461405000',
u'purchase_date_pst': u'2014-10-27 18:56:45 America/Los_Angeles',
u'quantity': u'1',
u'transaction_id': u'1000000128944196'},
{u'is_trial_period': u'false',
u'original_purchase_date': u'2014-10-28 01:56:45 Etc/GMT',
u'original_purchase_date_ms': u'1414461405000',
u'original_purchase_date_pst': u'2014-10-27 18:56:45 America/Los_Angeles',
u'original_transaction_id': u'1000000129320617',
u'product_id': u'com.mztimes.sanguo.international.980gold',
u'purchase_date': u'2014-10-28 01:56:45 Etc/GMT',
u'purchase_date_ms': u'1414461405000',
u'purchase_date_pst': u'2014-10-27 18:56:45 America/Los_Angeles',
u'quantity': u'1',
u'transaction_id': u'1000000129320617'}],
u'original_application_version': u'1.0',
u'original_purchase_date': u'2013-08-01 07:00:00 Etc/GMT',
u'original_purchase_date_ms': u'1375340400000',
u'original_purchase_date_pst': u'2013-08-01 00:00:00 America/Los_Angeles',
u'receipt_type': u'ProductionSandbox',
u'request_date': u'2014-10-28 02:50:09 Etc/GMT',
u'request_date_ms': u'1414464609873',
u'request_date_pst': u'2014-10-27 19:50:09 America/Los_Angeles',
u'version_external_identifier': 0},
u'status': 0}
查看 in_app 字段:文档说明:
在JSON文件中,此键的值是一个包含所有应用内购买收据的数组。在ASN.1文件中,有多个字段都具有类型17,每个字段都包含一个应用内购买收据。
在我的许多测试中, in_app 列表的最后一个元素是我发送给苹果服务器的收据信息。 但是其他两个元素是什么?
我发送不同的收据进行验证,其他两个元素始终相同。
为什么这样?救救我!
答案 0 :(得分:0)
正如doc所说,包含基于输入的base-64收据数据中存在的应用程序内购买交易的所有应用程序内购买收据。另请参阅iOS IAP in_app field in receipt和Removing in app purchases from a new version of the application(iOS)
应用内购买收据
应用内购买收据。
ASN.1字段类型17
应用内购买收据属性的ASN.1字段值设置
JSON字段名称in_app
应用内购买收据的JSON字段值数组
在JSON文件中,此键的值是一个包含所有 基于应用内购买交易的应用内购买收据 存在于输入的base-64收据数据中。对于包含的收据 自动续订的订阅,请检查 Latest_receipt_info键以获取最新续订的状态。
在ASN.1文件中,有多个字段都具有类型17, 每个都包含一个应用程序内购买收据。
注意:空数组是有效的收据。
易耗品的应用内购买收据已添加到 购买时的收据。它一直保存在收据中,直到 您的应用完成了交易。之后,将其删除 从收据下一次更新收据开始-例如, 当用户再次购买商品或您的应用明确 刷新收据。
非消耗性产品的应用内购买收据, 自动续订,非续订或免费 订阅将无限期保留在收据中。