iphone - 消耗品应用内购买

标签 iphone ios cocos2d-iphone in-app-purchase

您好,我正在尝试在我的游戏中创建一个应用内商店,供玩家购买虚拟货币,这是消耗品。但我有点不确定我的方法是否正确。所以我认为在这里寻求帮助可能会很好。

按下“购买”按钮后,将调用 buyProductIdentifier

- (void)buyProductIdentifier:(NSString *)productIdentifier {

  NSLog(@"Buying %@...", productIdentifier);

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

}  

然后是 paymentQueue

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{


  CCLOG(@"PAYMENT QUEUE CALLED!");

  for (SKPaymentTransaction *transaction in transactions)
  {
    switch (transaction.transactionState)
      {
        case SKPaymentTransactionStatePurchased:
            [self completeTransaction:transaction];
            break;
        case SKPaymentTransactionStateFailed:
            [self failedTransaction:transaction];
            break;
//      case SKPaymentTransactionStateRestored:
//          [self restoreTransaction:transaction];
        default:
            break;
      }
  }
}

我尝试注释掉 SKPaymentTransactionStateRestored 案例,以便让玩家每次都完成购买,而不是弹出一条消息说“您已经购买了此内容,但尚未下载”。

这种方法正确吗?如果没有,你们能给我一些提示吗?

非常感谢。

最佳答案

我不认为这是代码问题。

您确定已在 iTunes Connect 中将应用内购买创建为“消费品”吗?

如果您选择“非消耗品”,则只能购买该元素一次。

关于iphone - 消耗品应用内购买,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958128/

相关文章:

c++ - OpenGL、C++ -> 如何在屏幕上布置对象?

iphone - 应用程序在启动期间崩溃并出现 valueForUndefinedKey 错误

iphone - NSPredicate用于字符串长度依赖性

ios - @property 在 Objective-C 中保留、分配、复制、非原子性

iphone - 使用 NSUserDefaults 持久化 MPMediaItemCollection 对象

cocos2d-iphone - Cocos2d : How to play a video in the background of a CCLayer

iphone - 在特定点点击时更改 Uislider 值

ios - Swift 4 - 以编程方式在 AutoLayout UITableViewCell 中切碎多行标签

ios - 滑动删除时,TableView 的页眉和页 footer 分也会滑动

objective-c - 用Cocos2d绘制CGRect