IOS 内部购买

本文介绍了iOS应用中IAP(In-App Purchases)的设置步骤与内购实现流程,详细讲述了如何在iTunes Connect中配置不同类型的内购产品,并提供了具体的代码示例来展示如何实现应用程序内的购买。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IAP是 In-App Purchases的缩写,是程序内部购买的意思。有四种类型:Consumable,Non-Consumable,Auto-RenewableSubscriptions,Non-RenewingSubscription。现在以第一种Consumable(消费品)为例。

步骤如下:在itunesconnect里的manage yourapplication,点击对应的App的图标,进入到App里,在右上角会有好几个蓝色按钮,其中有一个是Manage In-AppPurchases的按钮,点击进来,然后会出现Create New按钮,点击创建新的IAP,点击后,会出现所需IAP类型,选择Consumable,点击 choose后,先输入referencename,这个是参考名字(没多大讲究,相当于标识符),然后输入Product ID(这个有讲究,在程序里会用到),必须是app的bundle ID加上后缀,比如:

com.xxx.ooo.aaa,com.xxx.ooo是App bundleID,aaa是iap的标识符,输入完成后,点击add language 添加语言,displayname就是显示的名字,以及下面的现实描述,点击下面PriceTier选择售价,然后点击save,在itunesconnect的第一步就完成


  1. //一、导入MKStore的包  
  2. 在需要触发下载的地方写一个 弹出提示框  
  3.   
  4. UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"网络连接异常,下载失败"   
  5.                                                                 message:@"请重新点击下载"   
  6.                                                                delegate:self   
  7.                                                       cancelButtonTitle:@"确定"  
  8.                                                       otherButtonTitles:nil, nil];  
  9.             [alertView show];  
  10.             [alertView release];  
  11.             alertView = nil;     
  12. //点击确定的时候就会回调 实现代理的方法,触发buyAction 这个方法。  
  13.   
  14.   
  15.   
  16.   
  17. /** 购买操作 */  
  18. - (void) buyAction{  
  19.     NSString *pid = PRODUCT_ID;  
  20.     NSMutableArray * array = [NSMutableArray arrayWithCapacity:0];  
  21.     [array addObject:pid];  
  22.     [[MKStoreManager sharedManager] requestProductData:array];  
  23.     [MKStoreManager sharedManager].delegate = self;  
  24. }  
  25.   
  26.   
  27. #pragma mark MKStoreManager Delegate Method  
  28. - (void)didRequestProductData:(NSArray *)skProducts {  
  29.     //NSLog(@"paying......0 ");  
  30.     if (skProducts == nil || [skProducts count] == 0) {  
  31.         return;  
  32.     }  
  33.       
  34.     SKProduct *product = [skProducts objectAtIndex:0];  
  35.     NSLog(@"product is %@",product);  
  36.     SKPayment *pay = [SKPayment paymentWithProductIdentifier:[product productIdentifier]];  
  37.     [[SKPaymentQueue defaultQueue] addPayment:pay];  
  38.       
  39.     //NSLog(@"paying......");  
  40. }  
  41.   
  42. /** 验证AppStore数据信息 */  
  43. - (void)finishedTransactionWithState:(TransactionState)state {  
  44.       
  45.     NSString *message = nil;  //提示信息  
  46.       
  47.     switch (state) {  
  48.               
  49.         case TransactionPurchasing:   
  50.               
  51.             message = [NSString stringWithString: @"支付操作进行中...!"];  
  52.             break;  
  53.         case TransactionCompleted:  
  54.             message = [NSString stringWithString: @"支付成功...!"];  
  55.             NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];  
  56.             [ud setObject:@"1" forKey:@"isbuy"];  
  57.             break;  
  58.         case TransactionRestored:  
  59.               
  60.             message = [NSString stringWithString: @"恢复支付操作!"];  
  61.             break;  
  62.         case TransactionFailed:  
  63.               
  64.             message = [NSString stringWithString: @"支付失败!"];  
  65.             break;  
  66.         default:  
  67.             break;  
  68.     }  
  69.       
  70.     //[Utils alertWithTitle: @"支付" message: message];  

  1.  (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{  
  2.     if(buttonIndex == 1){  
  3.         [self buyAction];  
  4.     }  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值