一.设置付费协议

1.进入开发者平台,点击如下图所示:

设置

2.查看付费同意条款

  1. 设置付费协议

    添加这3个信息

    4.添加银行账户

    5.选择报税表

    默认美国

    6.根据报税表填写报税情况,根据自己实际情况,在这里我们需要选择NO,后面选了几个勾,以为可以,后面报错了!

    三者必须填写

    注意:这里可以随便填写。
    7.填写联系人,这几个部分可以填写同一人

二.添加内购项目

  1. 点击添加

    2.选择内购项目类型

    根据功能选择

    3.设置产品价格及名称

    4.显示信息

    5.审核信息

    注意:这些信息都要填完整,否则会提示元数据丢失。

    内购项目

三.创建沙盒技术测试号

添加账号

三.代码集成

在需要购买的控制器内

#import <StoreKit/StoreKit.h>
@interface HomeViewController ()<SKProductsRequestDelegate,SKPaymentTransactionObserver>@end
- (void)viewDidLoad {[super viewDidLoad];UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"总共免费使用5次,已消耗完" message:@"付费后可无限次使用" preferredStyle:UIAlertControllerStyleAlert];[alert addAction:[UIAlertAction actionWithTitle:@"付费" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {[IHUtility addWaitingView:@"支付中"];//监听购买结果[[SKPaymentQueue defaultQueue] addTransactionObserver:self];if([SKPaymentQueue canMakePayments]){[self requestProductData:@"com.IntelligentNetwork.QuickIdentificationDiagram.purchase1"];}else{NSLog(@"不允许程序内付费");}}]];[alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]];// 弹出对话框[self presentViewController:alert animated:true completion:nil];
}
//去苹果服务器请求商品
- (void)requestProductData:(NSString *)type{NSArray *product = [[NSArray alloc] initWithObjects:type,nil];NSSet *nsset = [NSSet setWithArray:product];SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:nsset];request.delegate = self;[request start];
}//收到产品返回信息
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{NSLog(@"--------------收到产品反馈消息---------------------");NSArray *product = response.products;NSLog(@"productID:%@", response.invalidProductIdentifiers);if(product.count==0){[WHToast showMessage:@"查找不到商品信息"  duration:1 finishHandler:^{}];return;}[IHUtility addWaitingView:@"支付中"];SKProduct *p = nil;for(SKProduct *pro in product) {NSLog(@"%@", [pro description]);NSLog(@"%@", [pro localizedTitle]);NSLog(@"%@", [pro localizedDescription]);NSLog(@"%@", [pro price]);NSLog(@"%@", [pro productIdentifier]);if([pro.productIdentifier isEqualToString: @"com.IntelligentNetwork.QuickIdentificationDiagram.purchase1"]){p = pro;}}SKPayment *payment = [SKPayment paymentWithProduct:p];NSLog(@"发送购买请求");[[SKPaymentQueue defaultQueue] addPayment:payment];
}//请求失败
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error{[IHUtility removeWaitingView];[WHToast showMessage:@"支付失败"  duration:1 finishHandler:^{}];
}- (void)requestDidFinish:(SKRequest *)request{[IHUtility removeWaitingView];
}//监听购买结果
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transaction{[IHUtility removeWaitingView];for(SKPaymentTransaction *tran in transaction){[self verifyPurchaseWithPaymentTransaction:[NSNumber numberWithInt:tran.transactionState]];switch(tran.transactionState) {case SKPaymentTransactionStatePurchased:{[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"buyed"];[[SKPaymentQueue defaultQueue] finishTransaction:tran];}break;case SKPaymentTransactionStatePurchasing:break;case SKPaymentTransactionStateRestored:{[[SKPaymentQueue defaultQueue] finishTransaction:tran];}break;case SKPaymentTransactionStateFailed:{[[SKPaymentQueue defaultQueue] finishTransaction:tran];[WHToast showMessage:@"购买失败"  duration:1 finishHandler:^{}];}break;default:break;}}
}//交易结束
- (void)completeTransaction:(SKPaymentTransaction *)transaction{NSLog(@"交易结束");[[SKPaymentQueue defaultQueue] finishTransaction:transaction];}- (void)dealloc{[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
}-(void)verifyPurchaseWithPaymentTransaction:(NSNumber*)resultState{//从沙盒中获取交易凭证并且拼接成请求体数据NSURL *receiptUrl=[[NSBundle mainBundle] appStoreReceiptURL];NSData *receiptData=[NSData dataWithContentsOfURL:receiptUrl];
}

四.注意事项

1.内购必须用真机测试
2.测试时必须退出App Store自己的Apple ID,登录沙盒的测试Apple ID .
3.本身请求美国服务器就慢,为防止审核人员误解,我们需要在购买时加载动画。

iOS苹果内购(详细步骤)相关推荐

  1. iOS苹果内购详细步骤

    一.设置协议等相关 1.点击协议.税务和银行业务. 点击协议.税务和银行业务.png 2.点击 Request Contracts 下面的 Request,一直点击直到主协议界面. Request.p ...

  2. iOS 苹果内购详细步骤

    一.设置协议等相关 1.点击协议.税务和银行业务. 2.点击 Request Contracts 下面的 Request,一直点击直到主协议界面. 主协议界面 Contact info :联系人信息 ...

  3. iOS_苹果内购详细步骤

    iOS苹果内购详细步骤 iOS开发支付的两种方式 1 Apple Pay + 调取外部支付,例如支付宝.微信.银联等 2 苹果内购IAP(In-App Purchase) 1 IAP规则详解 1.1 ...

  4. ios 内购正式环境_iOS苹果内购(详细步骤)

    #### 一.设置付费协议 1.进入开发者平台,点击如下图所示: 设置 2.查看付费同意条款 1. 设置付费协议 添加这3个信息 4.添加银行账户 5.选择报税表 默认美国 6.根据报税表填写报税情况 ...

  5. uni app ios 苹果内购

    app ios 苹果内购 的步骤 1,准备工作先要uniapp 开发ios 内购需要准备的沙盒 测试账号,在苹果手机登录沙盒账号 也就是把自己的Apple ID退出登录沙盒账号,manifest.js ...

  6. java(jfinal) 接入ios苹果内购(连续包月订阅),服务端将二次验证。

    大致流程: 1.ios端进行支付,然后收到苹果的一串数据(也叫收据),然后ios端将其转码为BASE64编码的字符串. 2.ios端请求服务端接口,将数据传给服务端,服务端拿到数据后,通过一系列处理后 ...

  7. iOS苹果内购流程(Apple Pay)

    好文:https://github.com/lintide/ApplePayDemo 苹果内购流程 字数631 阅读133 评论1 喜欢6 1.登录开发者中心[开发者中心链接](https://dev ...

  8. iOS 苹果内购 In-App Purchase 踩过的坑

    项目里面要接苹果支付,结果我研究了一个小时的apple pay,结果经理说是苹果内购,当时就感觉被耍了!好了,那就说说In-App Purchase这个吧,前面所有的准备工作经理做完了,我只是码代码, ...

  9. iOS IAP应用内购详细步骤和问题总结指南

    最近公司在做APP内购会员功能 遇到了很多问题 总结记录一下 首先一定要区分Apple pay 和IAP内购的区别 可以先去看一下官方文档地址 有每个步骤的详细解释 本篇文章分为:1. 内购支付流程: ...

  10. IOS,苹果内购和添加广告

    内购--应用内购买 通过苹果应用程序商店有三种主要赚钱的方式: 直接收费(与国内大部分用户的消费习惯相悖) 广告(降低用户体验 应用程序名称带Lite可以添加广告) O2O -> Online推 ...

最新文章

  1. Linux下不使用qt自带sleep,Linux下Qt多线程编程
  2. 腾讯全球数字生态大会进入倒计时,原生技术专场开放云报名
  3. 红帽linux iso镜像,红帽 Red Hat Linux相关产品iso镜像下载
  4. 给微软的依赖注入框架写一些扩展方法
  5. 工控蜜罐Conpot部署和入门及高级演变
  6. liunx 加入域控_[整理篇]linux加入windows域之完美方案
  7. Windows下编译sqlite3
  8. 知识图谱编辑器(KG-Editor)
  9. Go语言实战抽奖系统
  10. 智能家居APP设计规格
  11. aspectjweaver和aspectjrt的作用?(作用、说明、案例)
  12. 散列表的开放定址法以及再散列法(C语言)
  13. 【Hash篇】什么是哈希值?
  14. 分位数回归-Quantile regression
  15. 固件:BIOS和UEFI
  16. PWM电流源型逆变器
  17. 【Python】Python生成随机的姓名
  18. 爬虫遇到验证码必须要知道的解决办法(干货)
  19. 【阅读笔记】联邦学习实战——联邦学习攻防实战
  20. python randint什么分布_python随机数分布random均匀分布实例

热门文章

  1. Java操作Excel表读取的数字变成科学计数法
  2. 特征工程之特征选择(4)----嵌入法(Embed)
  3. 计算机播放音乐自录,怎么录制电脑上正在播放的视频音频
  4. zigbee模块和433无线模块的区别
  5. 3 步理清 Python 数据分析关键点,新手必看
  6. golang正则匹配中文字符,查询中文字符会panic退出的问题
  7. 表格里加横线一分为二_我告诉你excel表格分割线一分为二
  8. 【tcp】网络连接中的长连接和短连接是什么意思?
  9. 数据分析常用图表常用场景
  10. Python 读取5张Excel的Sheet自动生成3张Sheet分析结果(减轻同事的工作量,让原本大约2个小时的工作量缩减到1分钟内)