iphone - Obj-C,Storekit restoreCompletedTransactions 返回零交易?

标签 iphone objective-c xcode cocoa-touch storekit

我在恢复已完成的交易时遇到了一些问题。

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

我已经添加了几个示例中提到的观察者,我已经尝试添加 paymentQueueRestoreCompletedTransactionsFinished 并且已经有 updatedTransactionspaymentQueueRestoreCompletedTransactionsFinished 说我有零笔交易。

我可以购买一个产品,如果我再次尝试购买,它会阻止我并说我已经使用此代码购买了该产品。

SKPayment *payment = [SKPayment paymentWithProductIdentifier:productIdentifier];
[[SKPaymentQueue defaultQueue] addPayment:payment];

我以为我的 bundle 标识符可能有问题,但这似乎没问题,否则购买将无法进行。

我一直在设备和模拟器上尝试这个,但结果是一样的。此外,如果我使用的是英国或美国商店,这也没有什么区别。

我真的很想知道为什么这对我不起作用?

最佳答案

尝试这样做并检查数组计数是否也返回零?

- (void) checkPurchasedItems
{
   [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}//You Call This Function

//Then this delegate Function Will be fired
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
  purchasedItemIDs = [[NSMutableArray alloc] init];

  NSLog(@"received restored transactions: %i", queue.transactions.count);
  for (SKPaymentTransaction *transaction in queue.transactions)
  {
      NSString *productID = transaction.payment.productIdentifier;
      [purchasedItemIDs addObject:productID];
  }
}

关于iphone - Obj-C,Storekit restoreCompletedTransactions 返回零交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10120050/

相关文章:

iphone - 应用程序未针对模拟器进行编译

ios - Objective-c 验证当前执行线程,以防万一,在正确的线程中重新执行该方法

objective-c - 更新 MKMapView (iPhone) 的中心点和缩放

objective-c - 静态库xcode的框架

iphone - iOS 5从应用程序发送电子邮件的最简单方法

iphone - 如何计算 UISegmentedControl 段的正确宽度?

ios - 以编程方式从 iphone 调用 USSD 代码

ios - AVPLayer + 全屏自定义播放器控件

ios - MFMailComposeViewController IOS

ios - UITableViewCell UILabel 多行对齐