自动续期订阅相较于普通内购,需要一个共享密钥,这个共享密钥在申请内购时获得。秘钥用于向苹果服务器请求收据信息。
购买过程不再赘述。
购买成功后,自动续期订阅最大的问题在于购买成功后是否续期成功,和到期时间。
解决这个问题,需要利用秘钥和收据请求苹果服务器,得到返回的收据解决。
请求苹果服务,可以APP内,也可以服务器轮询。因为内购时不强制用户登录,所以选择了APP内请求。
出第一次购买,每次续期成功后都要走购买代理
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
因此,每次APP启动需要添加监听
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
记得退出时remove.
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
int i = 0;
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchasing: // 0
break;
case SKPaymentTransactionStatePurchased: // 1