Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 应用内购买订阅自动续订_Iphone_In App Purchase_Subscription - Fatal编程技术网

Iphone 应用内购买订阅自动续订

Iphone 应用内购买订阅自动续订,iphone,in-app-purchase,subscription,Iphone,In App Purchase,Subscription,几个月前,我在我的两个应用上实现了应用内自动续费订阅。我存储了我的用户的旧收据,并在订阅期结束时从我的服务器联系苹果公司,检查订阅是否仍然有效。 我注意到我的一些用户正在从客户端代码本身自动更新。 我的应用程序在进入时调用[[SKPaymentQueue defaultQueue]addTransactionObserver:myObserver]并且当SKPaymentTransactionStatePurchased或SKPaymentTransactionStateRestored返回时,

几个月前,我在我的两个应用上实现了应用内自动续费订阅。我存储了我的用户的旧收据,并在订阅期结束时从我的服务器联系苹果公司,检查订阅是否仍然有效。 我注意到我的一些用户正在从客户端代码本身自动更新。 我的应用程序在进入时调用[
[SKPaymentQueue defaultQueue]addTransactionObserver:myObserver]
并且当
SKPaymentTransactionStatePurchased
SKPaymentTransactionStateRestored
返回时,它调用我的服务器来验证收据并向我的用户提供订阅

我花了相当长的时间试图理解客户在续约期结束时收到的事务通知背后的逻辑。有人知道为什么只有部分用户收到通知,其余的用户需要服务器重新验证他们的收据吗?我试着去想也许这和调用addTransactionObserver有关。可能是这些用户在后台杀死了应用程序,并在订阅期结束后再次进入该应用程序,导致addTransactionObserver:被触发,通知到达。 如果我能让我的所有用户都得到这个通知,我就不必在订阅期结束时再运行服务器调用,因为它们会在需要时从客户端被触发

任何洞察都肯定会有助于理解这个难题

谢谢


Roi

根据我的经验,您需要继续定期验证服务器上的收据。我和你一样注意到,这些新收据发送到应用程序时不一致。我认为,如果客户在新续费的某个时间段内刚刚启动应用程序,苹果会将收据发送给客户。

我从未见过我的应用程序中的
SKPaymentTransactionStateRestored
自动续费子系统中触发:(