use*_*584 5 iphone validation in-app-purchase ios receipt
我正在尝试使用iOS商店收据来区分购买和重新下载,具体取决于original_purchase_date和/或original_transaction_id.无论交易是新购买还是重新下载,商店收据始终返回新的original_purchase_date,其等于purchase_date值.
这是我收到的真实商店收据(这是对现有应用购买的重新下载 - 因为我目前不得不依赖UDID跟踪来区分它们)
{
"product_id": "com.myproduct.id",
"original_purchase_date_ms": "1329825956382",
"purchase_date_ms": "1329825956382",
"original_purchase_date": "2012-02-21 12:05:56 Etc/GMT",
"purchase_date": "2012-02-21 12:05:56 Etc/GMT",
"bvrs": "1.0",
"original_purchase_date_pst": "2012-02-21 04:05:56 America/Los_Angeles",
"purchase_date_pst": "2012-02-21 04:05:56 America/Los_Angeles",
"original_transaction_id": "1000000028387131",
"transaction_id": "1000000028387131",
"item_id": "452671574",
"quantity": "1",
"bid": "com.mybundle.id"
}
Run Code Online (Sandbox Code Playgroud)
无论我是使用沙箱URL并使用测试itunes connect帐户进行测试,还是使用实时URL进行实时购买以进行收据验证,这些值始终相同:
original_purchase_date_ms == purchase_date_ms
original_purchase_date == purchase_date
original_purchase_date_pst == purchase_date_pst
original_transaction_id == transaction_id
Run Code Online (Sandbox Code Playgroud)
我认为这些是您应该用来区分新购买和同一购买的重新下载之间的错误吗?显然,跟踪设备的UDID /制作应用程序GUID并跟踪它,是一种方法,但它不够准确(例如,拥有多个设备的用户)
有没有其他人有这个问题,这些值总是相同?
对此有任何帮助非常感谢!我已经筋疲力尽所有其他路线,并希望有人在这里知道答案.
这取决于您所说的“重新下载”是什么意思。
仅当您恢复购买时,该值original_purchase_date才会有所不同,因此 SKPaymentTransaction 会将您返回purchase_dateSKPaymentTransactionStateRestored。如果是这样的话,那就有问题了。
否则,例如,如果您要重新购买消耗品,这些日期将始终相同,并且一切正常。