因公司APP的部分功能,需要走苹果内购,于是就在花费了点时间看看,总结一下;
1、根据创建的APPid在App Store Connect创建应用
此步骤就是创建一个应用程序,应该都会的。
2、配置APP内购项目
2.1 签署《付费应用程序协议》
1、添加银行和税务协议、联系人信息
上图中
1. 你要添加银行名字
2. 银行所在国家
3. 人民币
4. CNAPS码:添加时候可以通过 输入银行英文名、地址、邮编去查找 点击对应的银行支行就可以了
5. 银行账号 持有人姓名不能是中文 可以拼音
6. 选择银行卡类型 对公账号 或者个人账号
2、税务
选择美国点完成,然后进去输入几个名字和日期就好了
2.2 在 App Store Connect 中配置 App 内购买项目
1、选择你需要添加内购的APP,然后点功能
前往App内购买项目
并点按“添加”按钮(+)
2、根据需要选择消耗型或者非消耗型,然后创建
3、根据提示添加参考名称、产品 ID 和本地化显示名称等
4、点按"存储"或"提交以供审核"
2.3APP内代码实现
1、导入头文件 #import <StoreKit/StoreKit.h>
2、从本地或者服务器获取想卖商品的ProductId
NSArray *productIds = @[@"",@"","@"];
3、将ProductIds发送到苹果服务器,请求这些商品是否可卖
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
NSSet *productIdSet = [NSSet setWithArray:productIds];
SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdSet];
request.delegate = self;
[request start];
4、代理获取到数据,展示出来
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
//获取到数据并按照价格排序
self.products = [response.products sortedArrayWithOptions:NSSortConcurrent usingComparator:^NSComparisonResult(SKProduct *obj1, SKProduct *obj2) {
return [obj1.price compare:obj2.price];
}];
}
5、点击够买某个商品时候处理单个商品
// 取出模型数据
SKProduct *product = self.productsArray[indexPath.row];
// 1.创建票据
SKPayment *payment = [SKPayment paymentWithProduct:product];
// 2.将票据加到到交易队列中
[[SKPaymentQueue defaultQueue] addPayment:payment];
6、处理结果,根据支付结果做出相应处理
#pragma mark - 实现交易发生改变的回调方法
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction *transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchasing:
NSLog(@"正在购买商品");
break;
case SKPaymentTransactionStatePurchased:
NSLog(@"购买成功");
[queue finishTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
NSLog(@"购买商品失败");
[queue finishTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
NSLog(@"恢复购买");
[queue finishTransaction:transaction];
break;
case SKPaymentTransactionStateDeferred:
NSLog(@"最终状态未决定");
break;
default:
break;
}
}
}
3、测试内购
3.1配置测试账号
1.找到沙箱技术测试员添加一个测试用户
然后点邀请就ok了
3.2测试账号使用
1、退出自己的Apple ID账号 设置 ––> iTunes Store和AppStore ––>Apple ID ––>注销
2、执行内购时候回弹出输入框,输入添加的账号密码就ok了
图下图
购买一个产品: