In-App buy is used to buy extra material or update functions with regard to an program.
Step 2. Create a new program and update program information. You can know more about this in apple's Add new applications certification.
Step 3. Add a new product for in-app buy in Handle In-App Buying of your application's web page.
Step 4. Make certain you installation the lender information for your program. This needs to be installation for In-App buy to work. Also, make a analyze customer consideration using Handle Customers choice in iTunes link web page of your app.
Step 5. The next actions are relevant to managing rule and developing UI for our In-App buy.
Step 6. Build a single perspective program and get into the package identifier is the identifier specified in iTunes link.
Step 7. Update the ViewController.xib as proven below −
Step 8. Make IBOutlets for the three brands and the key labeling them as productTitleLabel, productDescriptionLabel, productPriceLabel and purchaseButton respectively.
Step 9. Choose your venture computer file, then select objectives and then add StoreKit.framework.
Step 10. Upgrade ViewController.h as follows −
Steps Involved
Step 1. In iTunes link, make sure that you have a exclusive App ID and when we make the program update with the package ID and rule deciding upon in Xcode with corresponding provisioning customer profile.Step 2. Create a new program and update program information. You can know more about this in apple's Add new applications certification.
Step 3. Add a new product for in-app buy in Handle In-App Buying of your application's web page.
Step 4. Make certain you installation the lender information for your program. This needs to be installation for In-App buy to work. Also, make a analyze customer consideration using Handle Customers choice in iTunes link web page of your app.
Step 5. The next actions are relevant to managing rule and developing UI for our In-App buy.
Step 6. Build a single perspective program and get into the package identifier is the identifier specified in iTunes link.
Step 7. Update the ViewController.xib as proven below −
Step 8. Make IBOutlets for the three brands and the key labeling them as productTitleLabel, productDescriptionLabel, productPriceLabel and purchaseButton respectively.
Step 9. Choose your venture computer file, then select objectives and then add StoreKit.framework.
Step 10. Upgrade ViewController.h as follows −
#import <UIKit/UIKit.h> #import <StoreKit/StoreKit.h> @interface ViewController : UIViewController< SKProductsRequestDelegate,SKPaymentTransactionObserver> { SKProductsRequest *productsRequest; NSArray *validProducts; UIActivityIndicatorView *activityIndicatorView; IBOutlet UILabel *productTitleLabel; IBOutlet UILabel *productDescriptionLabel; IBOutlet UILabel *productPriceLabel; IBOutlet UIButton *purchaseButton; } - (void)fetchAvailableProducts; - (BOOL)canMakePurchases; - (void)purchaseMyProduct:(SKProduct*)product; - (IBAction)purchase:(id)sender; @end
Step 11. Update ViewController.m as follows −
#import "ViewController.h" #define kTutorialPointProductID @"com.tutorialPoints.testApp.testProduct" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Adding activity indicator activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; activityIndicatorView.center = self.view.center; [activityIndicatorView hidesWhenStopped]; [self.view addSubview:activityIndicatorView]; [activityIndicatorView startAnimating]; //Hide purchase button initially purchaseButton.hidden = YES; [self fetchAvailableProducts]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(void)fetchAvailableProducts{ NSSet *productIdentifiers = [NSSet setWithObjects:kTutorialPointProductID,nil]; productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers]; productsRequest.delegate = self; [productsRequest start]; } - (BOOL)canMakePurchases { return [SKPaymentQueue canMakePayments]; } - (void)purchaseMyProduct:(SKProduct*)product{ if ([self canMakePurchases]) { SKPayment *payment = [SKPayment paymentWithProduct:product]; [[SKPaymentQueue defaultQueue] addTransactionObserver:self]; [[SKPaymentQueue defaultQueue] addPayment:payment]; } else{ UIAlertView *alertView = [[UIAlertView alloc]initWithTitle: @"Purchases are disabled in your device" message:nil delegate: self cancelButtonTitle:@"Ok" otherButtonTitles: nil]; [alertView show]; } } -(IBAction)purchase:(id)sender{ [self purchaseMyProduct:[validProducts objectAtIndex:0]]; purchaseButton.enabled = NO; } #pragma mark StoreKit Delegate -(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { for (SKPaymentTransaction *transaction in transactions) { switch (transaction.transactionState) { case SKPaymentTransactionStatePurchasing: NSLog(@"Purchasing"); break; case SKPaymentTransactionStatePurchased: if ([transaction.payment.productIdentifier isEqualToString:kTutorialPointProductID]) { NSLog(@"Purchased "); UIAlertView *alertView = [[UIAlertView alloc]initWithTitle: @"Purchase is completed succesfully" message:nil delegate: self cancelButtonTitle:@"Ok" otherButtonTitles: nil]; [alertView show]; } [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; break; case SKPaymentTransactionStateRestored: NSLog(@"Restored "); [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; break; case SKPaymentTransactionStateFailed: NSLog(@"Purchase failed "); break; default: break; } } } -(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { SKProduct *validProduct = nil; int count = [response.products count]; if (count>0) { validProducts = response.products; validProduct = [response.products objectAtIndex:0]; if ([validProduct.productIdentifier isEqualToString:kTutorialPointProductID]) { [productTitleLabel setText:[NSString stringWithFormat: @"Product Title: %@",validProduct.localizedTitle]]; [productDescriptionLabel setText:[NSString stringWithFormat: @"Product Desc: %@",validProduct.localizedDescription]]; [productPriceLabel setText:[NSString stringWithFormat: @"Product Price: %@",validProduct.price]]; } } else { UIAlertView *tmp = [[UIAlertView alloc] initWithTitle:@"Not Available" message:@"No products to purchase" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil]; [tmp show]; } [activityIndicatorView stopAnimating]; purchaseButton.hidden = NO; } @end
Note
You have to upgrade kTutorialPointProductID to the productID you have designed for your In-App Buy. You can add more than one item by upgrading the productIdentifiers's NSSet in fetchAvailableProducts. Similary, manage the purchasing relevant activities for item IDs you add.
Output
When we run the application, we'll get the following output −
Ensure you had signed out of your consideration in the configurations screen. On simply clicking the Start Purchase, select Use Current Apple ID. Get into your legitimate test consideration details. You will be shown the following aware in a couple of a few moments.
Once your product is bought efficiently, you will get the following aware. You can see appropriate rule for upgrading the program functions where we show this aware.
1 comments :
Write commentsVery nice blog,keep sharing more blogs with us.
Replyios app development course
Emoticon Emoticon