我正在编写一个关于Mac应用程序购买的示例。在购买第1项后,我第一次收到此JSON(按照此说明Online receipt validation for in app purchases for MAC):
{
environment = Sandbox;
receipt = {
"adam_id" = 0;
"app_item_id" = 0;
"application_version" = "1.0";
"bundle_id" = "com.mac.OSXReceipt";
"download_id" = 0;
"in_app" = (
{
"original_purchase_date" = "2014-11-20 23:43:28 Etc/GMT";
"original_purchase_date_ms" = 1416527008000;
"original_purchase_date_pst" = "2014-11-20 15:43:28 America/Los_Angeles";
"original_transaction_id" = 1000000132520356;
"product_id" = "com.mac.OSXReceipt.1";
"purchase_date" = "2014-11-20 23:43:28 Etc/GMT";
"purchase_date_ms" = 1416527008000;
"purchase_date_pst" = "2014-11-20 15:43:28 America/Los_Angeles";
quantity = 1;
"transaction_id" = 1000000132520356;
}
);
"original_application_version" = "1.0";
"original_purchase_date" = "2013-08-01 07:00:00 Etc/GMT";
"original_purchase_date_ms" = 1375340400000;
"original_purchase_date_pst" = "2013-08-01 00:00:00 America/Los_Angeles";
"receipt_type" = ProductionSandbox;
"request_date" = "2014-11-20 23:43:30 Etc/GMT";
"request_date_ms" = 1416527010147;
"request_date_pst" = "2014-11-20 15:43:30 America/Los_Angeles";
"version_external_identifier" = 0;
};
status = 0;
当我购买商品2时,我收到了这个JSON:
{
environment = Sandbox;
receipt = {
"adam_id" = 0;
"app_item_id" = 0;
"application_version" = "1.0";
"bundle_id" = "com.mac.OSXReceipt";
"download_id" = 0;
"in_app" = (
{
"original_purchase_date" = "2014-11-20 23:43:28 Etc/GMT";
"original_purchase_date_ms" = 1416527008000;
"original_purchase_date_pst" = "2014-11-20 15:43:28 America/Los_Angeles";
"original_transaction_id" = 1000000132520356;
"product_id" = "com.mac.OSXReceipt.1";
"purchase_date" = "2014-11-20 23:43:28 Etc/GMT";
"purchase_date_ms" = 1416527008000;
"purchase_date_pst" = "2014-11-20 15:43:28 America/Los_Angeles";
quantity = 1;
"transaction_id" = 1000000132520356;
},
{
"original_purchase_date" = "2014-11-20 23:44:25 Etc/GMT";
"original_purchase_date_ms" = 1416527065000;
"original_purchase_date_pst" = "2014-11-20 15:44:25 America/Los_Angeles";
"original_transaction_id" = 1000000132520389;
"product_id" = "com.mac.OSXReceipt.2";
"purchase_date" = "2014-11-20 23:44:25 Etc/GMT";
"purchase_date_ms" = 1416527065000;
"purchase_date_pst" = "2014-11-20 15:44:25 America/Los_Angeles";
quantity = 1;
"transaction_id" = 1000000132520389;
}
);
"original_application_version" = "1.0";
"original_purchase_date" = "2013-08-01 07:00:00 Etc/GMT";
"original_purchase_date_ms" = 1375340400000;
"original_purchase_date_pst" = "2013-08-01 00:00:00 America/Los_Angeles";
"receipt_type" = ProductionSandbox;
"request_date" = "2014-11-20 23:43:30 Etc/GMT";
"request_date_ms" = 1416527010147;
"request_date_pst" = "2014-11-20 15:43:30 America/Los_Angeles";
"version_external_identifier" = 0;
};
status = 0;
如果我继续购买其他商品,它也将被添加到此列表中。我检查了所有项目都是消耗品,我也在我的项目中调用了完成交易。所以我的问题是为什么收据中同时包含超过1个消耗品以及如何完成(删除)此列表中的旧项目。感谢。
答案 0 :(得分:0)
我遇到了这个寻找下一个问题的答案,但可以找到这个问题的答案here。
基本上这是因为iOS7的引入不会返回单个收据,但会返回该用户在该应用程序中的所有收据。我认为这必须支持订阅。