自动更新IAP订阅用户流程&刷新收据

时间:2015-08-22 19:45:47

标签: ios in-app-purchase rmstore

我正在使用图书馆RMStore - 这就是我目前所拥有的。

1)购买汽车可再生订阅&验证退回的收据。

[[RMStore defaultStore]addPayment:[Environment environment].premiumProductIAPId success:^(SKPaymentTransaction *transaction) {
  [[RMStore defaultStore].receiptVerificator verifyTransaction:transaction success:^{

    //enable premium service

  } failure:^(NSError *error) {

  }];
} failure:^(SKPaymentTransaction *transaction, NSError *error) {

}];

2)在每次应用启动检查时,订阅对该日期有效,并启用高级服务(如果

RMAppReceipt *appReceipt = [RMAppReceipt bundleReceipt];
if (appReceipt){
  NSInteger isActive = [appReceipt containsActiveAutoRenewableSubscriptionOfProductIdentifier:[Environment environment].premiumProductIAPId forDate:[NSDate date]];
  //enable premium service if active
}

3)如果用户在其他设备上启动应用,则允许他们通过刷新收据(如果已存在)来恢复购买,并检查购买中是否存在有效订阅。

"In most cases, all your app needs to do is refresh its receipt and deliver the products in its receipt."

- 这是指南。这是代码:

[[RMStore defaultStore]refreshReceiptOnSuccess:^{

  if ([receipt containsActiveAutoRenewableSubscriptionOfProductIdentifier:[Environment environment].premiumProductIAPId forDate:[NSDate date]]){
   //enable
  }else{ 
   //no longer active
  }
} failure:^(NSError *error) {

}];

我的问题:

  • 当RMStore检查订阅是否有效时,它可以返回否,我查看收据并且它是正确的,我假设它没有自动续订。当我去购买另一个订阅时,我收到来自itunes的消息说我已经订阅了。在随后的发布中,我看到了新的收据。这表示收据需要在启动时刷新,但我不想刷新它,因为它会显示用户名和&密码弹出,这是不必要的。这里的最佳做法是什么?
  • 我是否以正确的方式恢复其他设备的订阅?似乎有时需要多次尝试才能恢复订阅。
  • 除了记录保存还有什么需要将订阅存储在我的服务器上吗?

0 个答案:

没有答案