//一、导入MKStore的包
在需要触发下载的地方写一个 弹出提示框
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"网络连接异常,下载失败"
message:@"请重新点击下载"
delegate:self
cancelButtonTitle:@"确定"
otherButtonTitles:nil, nil];
[alertView show];
[alertView release];
alertView = nil;
//点击确定的时候就会回调 实现代理的方法,触发buyAction 这个方法。
/** 购买操作 */
- (void) buyAction{
NSString *pid = PRODUCT_ID;
NSMutableArray * array = [NSMutableArray arrayWithCapacity:0];
[array addObject:pid];
[[MKStoreManager sharedManager] requestProductData:array];
[MKStoreManager sharedManager].delegate = self;
}
#pragma mark MKStoreManager Delegate Method
- (void)didRequestProductData:(NSArray *)skProducts {
//NSLog(@"paying......0 ");
if (skProducts == nil || [skProducts count] == 0) {
return;
}
SKProduct *product = [skProducts objectAtIndex:0];
NSLog(@"product is %@",product);
SKPayment *pay = [SKPayment paymentWithProductIdentifier:[product productIdentifier]];
[[SKPaymentQueue defaultQueue] addPayment:pay];
//NSLog(@"paying......");
}
/** 验证AppStore数据信息 */
- (void)finishedTransactionWithState:(TransactionState)state {
NSString *message = nil; //提示信息
switch (state) {
case TransactionPurchasing:
message = [NSString stringWithString: @"支付操作进行中...!"];
break;
case TransactionCompleted:
message = [NSString stringWithString: @"支付成功...!"];
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
[ud setObject:@"1" forKey:@"isbuy"];
break;
case TransactionRestored:
message = [NSString stringWithString: @"恢复支付操作!"];
break;
case TransactionFailed:
message = [NSString stringWithString: @"支付失败!"];
break;
default:
break;
}
//[Utils alertWithTitle: @"支付" message: message];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if(buttonIndex == 1){
[self buyAction];
}
}
ios如何实现内部购买的方法
最新推荐文章于 2024-10-16 16:43:07 发布