4

我目前正在测试我的自动更新订阅代码。在大多数情况下,它按预期工作。但是,有时,我会看到意想不到的结果。

我购买了一个新订阅,我收到了一张收据(transaction_id = 1000000075229775)。在收到此收据后(在到期日期之前),我将此收据发送到 sandbox.itunes.apple.com,它会返回具有不同交易 ID 的新收据(latest_receipt_info,transaction_id = 1000000075229779)。我没想到会在第一个到期日期之前收到这张新收据(带有不同的交易 ID)。这是两张收据的摘录。请注意,到期日期非常接近(相差不到一秒)。

你能帮我理解发生了什么吗?

谢谢。

["receipt"]=>object(stdClass)#14 (19) {
    ["original_purchase_date_pst"]=>string(39) "2012-12-03 08:20:49 America/Los_Angeles"
    ["unique_identifier"]=>string(40) "af430ef98d6bdbbf92ed34e4addec2e834bc25d6"
    ["original_transaction_id"]=>string(16) "1000000059708880"
    ["expires_date"]=>string(13) "1369421691100"
    ["transaction_id"]=>string(16) "1000000075229775"
    ["quantity"]=>string(1) "1"
    ["expires_date_formatted"]=>string(27) "2013-05-24 18:54:51 Etc/GMT"
    ["purchase_date"]=>string(27) "2013-05-24 18:49:51 Etc/GMT"
    ["purchase_date_ms"]=>string(13) "1369421391100"
    ["original_purchase_date"]=>string(27) "2012-12-03 16:20:49 Etc/GMT"
    ["original_purchase_date_ms"]=>string(13) "1354551649000"
    ...
}
["latest_receipt_info"]=>object(stdClass)#12 (19) {
    ["original_purchase_date_pst"]=>string(39) "2012-12-03 08:20:49 America/Los_Angeles"
    ["unique_identifier"]=>string(40) "345fade172e62c805d0d354edda97575fc9b9d50"
    ["original_transaction_id"]=>string(16) "1000000059708880"
    ["expires_date"]=>string(13) "1369421691000"
    ["transaction_id"]=>string(16) "1000000075229779"
    ["quantity"]=>string(1) "1"
    ["expires_date_formatted"]=>string(27) "2013-05-24 18:54:51 Etc/GMT"
    ["purchase_date"]=>string(27) "2013-05-24 18:49:51 Etc/GMT"
    ["purchase_date_ms"]=>string(13) "1369421391000"
    ["original_purchase_date"]=>string(27) "2012-12-03 16:20:49 Etc/GMT"
    ["original_purchase_date_ms"]=>string(13) "1354551649000"
    ...
}
["status"]=>int(0)
4

1 回答 1

1

看看 original_transaction_id 就不用担心transaction_id了。在某些情况下(例如:恢复购买时),您可能会获得不同的 transaction_id。我不认为 transaction_id 何时可能更改的所有详细信息都已记录在案。

根据 Apple 关于自动更新订阅的文档(此处:https ://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/RenewableSubscriptions/RenewableSubscriptions.html#//apple_ref/doc/uid/TP40008267 -CH4-SW2):

original_transaction_id - 保存初始购买的交易标识符。此订阅的所有后续续订和恢复的交易都共享此标识符。

此 id 将始终反映最初进行购买的交易的 id。

于 2013-06-27T17:22:35.137 回答