上篇的内购准备工作已完成,接下来就只需集成代码咯~
part 2. 代码
1.在项目中引入“storekit.framework”,并加入头文件#import <StoreKit/StoreKit.h>
2.在.h文件中加入“SKPaymentTransactionObserver ,SKProductsRequestDelegate”监听
//
// LHYInAppPurchaseViewController.h
// LHY
//
// Created by scx on 16/2/28.
// Copyright © 2016年 scx. All rights reserved.
//
#import "LHYDetailBaseViewController.h"
#import <StoreKit/StoreKit.h>
@interface LHYInAppPurchaseViewController : LHYDetailBaseViewController<SKPaymentTransactionObserver , SKProductsRequestDelegate>
@end
3.在.m文件
@implementation LHYInAppPurchaseViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"购买航币";
//添加监听
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
self.productID = @"com.myTest.inappPurchase_prodect1";
}
// app内购
- (void)toPay:(id)sender
{
NSLog(@"____app内购 , %@" , self.productID);
NSString *product = self.productID;
if([SKPaymentQueue canMakePayments]){
[self requestProductData:product];
}else{
[LHYAlertView showAlert:@"您的手机没有打开程序内付费购买"];
}
}
//请求商品
- (void)requestProductData:(NSString *)type{
NSLog(@"-------------请求对应的产品信息----------------");
NSArray *product = [[NSArray alloc] initWithObjects:type, nil];
NSSet *nsset = [NSSet setWithArray:product];
SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:nsset];
request.delegate = self;
[request start];
}
//收到产品返回信息