【发布时间】:2014-10-13 10:52:45
【问题描述】:
当用户购买应用内商品时,我正在尝试在设备上本地获取最新的收据信息。我的问题是我不知道如何从 latest_receipt_info 字段中的收据数组中获取最新的收据(应该是最新购买的收据)。不知何故,所有收据中的所有 pruchase_date_ms 字段都具有相同的值。
{
"expires_date" = "2014-07-09 20:32:10 Etc/GMT";
"expires_date_ms" = 1404937930000;
"expires_date_pst" = "2014-07-09 13:32:10 America/Los_Angeles";
"is_trial_period" = false;
"original_purchase_date" = "2014-07-09 20:27:10 Etc/GMT";
"original_purchase_date_ms" = 1404937630000;
"original_purchase_date_pst" = "2014-07-09 13:27:10 America/Los_Angeles";
"original_transaction_id" = 1000000116335839;
"product_id" = "product1";
"purchase_date" = "2014-10-13 10:28:39 Etc/GMT";
"purchase_date_ms" = 1413196119831;
"purchase_date_pst" = "2014-10-13 03:28:39 America/Los_Angeles";
quantity = 1;
"transaction_id" = 1000000116358850;
"web_order_line_item_id" = 1000000028383484;
},
{
"is_trial_period" = false;
"original_purchase_date" = "2014-09-15 13:34:17 Etc/GMT";
"original_purchase_date_ms" = 1410788057000;
"original_purchase_date_pst" = "2014-09-15 06:34:17 America/Los_Angeles";
"original_transaction_id" = 1000000123804432;
"product_id" = "product2";
"purchase_date" = "2014-10-13 10:28:39 Etc/GMT";
"purchase_date_ms" = 1413196119831;
"purchase_date_pst" = "2014-10-13 03:28:39 America/Los_Angeles";
quantity = 1;
"transaction_id" = 1000000123804432;
}
在上面的示例中,我实际上为 product2 进行了测试购买,但现在我也收到了具有相同 purchase_date_ms 的 product1 >。有谁知道为什么?
【问题讨论】:
-
你是怎么拿到收据的?从应用程序包?从恢复? “对于恢复之前交易的交易,购买日期为恢复日期。使用原始购买日期获取原始交易的日期”(developer.apple.com/library/ios/releasenotes/General/…)。我不记得 100%,但我认为原始购买日期总是更安全的选择。
-
我收到收据后发送到苹果服务器进行验证。我不明白的是,在上面的示例中,我在购买 product2 之前很久就购买了 product1,但在收据中,两种产品的购买日期相同
-
可以继续使用原购买日期吗?
标签: ios in-app-purchase receipt-validation