IOS7 验证 IAP 收据,in_app 字段是什么意思?

3

应用程序执行了内购操作,将购买收据发送到我的服务器,我的服务器会将其发送到苹果服务器进行验证。

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列表的最后一个元素是我发送给苹果服务器的收据信息。 但另外两个元素是什么?
我发送不同的收据进行验证,其他两个元素始终相同。
为什么会这样?帮帮我!
1个回答

0
根据文档所述,它包含基于输入的base-64收据数据中存在的应用内购买交易的所有应用内购买收据。另请参阅iOS IAP 收据中的 in_app 字段从应用程序的新版本中删除应用内购买(iOS)
应用内购买收据 应用内购买的收据。 ASN.1 字段类型 17 ASN.1 字段值为应用内购买收据属性的 SET。 JSON 字段名称 in_app JSON 字段值为应用内购买收据的数组。 在 JSON 文件中,此键的值是包含基于输入的 base-64 收据数据中存在的应用内购买事务的所有应用内购买收据的数组。对于包含自动续订订阅的收据,请检查 latest_receipt_info 键的值以获取最近续订的状态。 在 ASN.1 文件中,有多个字段都具有类型 17,每个字段都包含单个应用内购买收据。 注意:空数组是有效的收据。 可消耗产品的应用内购买收据在购买时添加到收据中。它会保留在收据中,直到您的应用完成该交易。在那之后,它将在下次更新收据时从收据中删除,例如当用户进行另一次购买或者您的应用明确刷新收据时。 非消耗品、自动续订订阅、非续订订阅或免费订阅的应用内购买收据将无限期地保留在收据中。

何时在iOS中刷新收据而不是恢复购买? - LF00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接