How to do in-app purchase in ios5?

来源:互联网 发布:辐射4原版捏脸数据 编辑:程序博客网 时间:2024/05/17 21:54

I have used the following code for in-app purchase.


- (void)viewDidLoad {if ([SKPaymentQueue canMakePayments]) {    NSLog(@"Can Buy Product");    SKProductsRequest *productRequest=[[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObject:@"com.mycompany.myproduct.productpack"]];    productRequest.delegate=self;    [productRequest start];}else {    NSLog(@"Product Can't be purchased");}}-(IBAction)purchasePack1 {SKPayment *payment=[SKPayment paymentWithProductIdentifier:@"com.mycompany.myproduct.productpack"];[[SKPaymentQueue defaultQueue] addTransactionObserver:self];[[SKPaymentQueue defaultQueue] addPayment:payment];}-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {validProduct=nil;int count=[response.products count];if (count>0) {    NSLog(@"Product Avail");    validProduct=[response.products objectAtIndex:0];}else {    NSLog(@"No Product avail");    [purchaseBtn setHidden:TRUE];}}-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {for (SKPaymentTransaction *transaction in transactions) {    switch (transaction.transactionState) {        case SKPaymentTransactionStatePurchasing:            NSLog(@"Purchasing");               [activityIndicatorObj setHidden:FALSE];            [activityIndicatorObj startAnimating];            break;        case SKPaymentTransactionStatePurchased:            UIAlertView *alt=[[UIAlertView alloc]initWithTitle:@"Congrats" message:@"Thanks For Purchasing " delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];            [alt show];            [alt release];            NSLog(@"Purchased");            [activityIndicatorObj stopAnimating];            [activityIndicatorObj setHidden:TRUE];            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];            break;            case SKPaymentTransactionStateFailed:            if (transaction.error.code!=SKErrorPaymentCancelled) {                NSLog(@"Cancelled");            }            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];            UIAlertView *alt1=[[UIAlertView alloc]initWithTitle:@"Sorry" message:@"Some Error Encountered!" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];                [alt1 show];                [alt1 release];            NSLog(@"Failed");            [activityIndicatorObj stopAnimating];            [activityIndicatorObj setHidden:TRUE];            break;            case SKPaymentTransactionStateRestored:            NSLog(@"Restored");            [activityIndicatorObj stopAnimating];            [activityIndicatorObj setHidden:TRUE];            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];            break;        default:            break;    }}}

原创粉丝点击