首页 文章

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

提问于
浏览
5

我正在使用图书馆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检查订阅是否处于活动状态时,它可以返回否,我查看收据并且它是正确的,我假设它已经订阅了't been auto renewed. When I go to purchase another subscription I get a message from itunes saying I' . 在随后的发布中,我看到了新的收据 . 这表示收据需要在启动时刷新,但我不想刷新它,因为它会弹出不必要的用户名和密码弹出 . 这里的最佳做法是什么?

  • 我是否以正确的方式恢复其他设备的订阅?似乎有时需要多次尝试才能恢复订阅 .

  • 除了记录保存还有什么需要在我的服务器上存储订阅吗?

1 回答

  • 3

    我打算尝试回答我的问题 .

    可能存在更新,在发布时未检测到第一件事因此订阅显示为不活动 .

    我添加了一个观察者来监听已完成的事务(RMStore扩展了这个StoreKit功能) .

    每次收到此通知时,我都会检查(现在更新的)收据以查看有效订阅,并启用高级服务(如果有) .

    - (void)storePaymentTransactionFinished:(NSNotification*)notification
    {
      BOOL isActive = [[RMAppReceipt bundleReceipt] containsActiveAutoRenewableSubscriptionOfProductIdentifier:[Environment environment].premiumProductIAPId forDate:[NSDate date]];
      if (isActive){
        //enable premium
      }
    }
    

    这似乎有效 . 如果有人有任何其他建议,请告诉我 .

相关问题