新版iOS内购(IAP)完整流程

2024-09-06 11:18
文章标签 流程 ios 新版 完整 内购 iap

本文主要是介绍新版iOS内购(IAP)完整流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

新版iOS内购(IAP)完整流程

苹果内购是用来做什么的?能不能吃?

iOS内购(以下简称IAP)是你可以实现一个应用内购买各种物品的功能,最常见的就是游戏中购买的道具,比如钻石。 新版的iOS内购从申请、审核以及代码的书写都充满了恶意,下面来介绍一下IAP的基本流程和我们遇到的问题以及一些解决办法。

1.创建应用和IAP项目

首先进入苹果的iTunesConnection(https://itunesconnect.apple.com)(当然你需要一个开发者账号),登陆之后点击我的APP然后点击左上角的加号新建一个APP项目,然后填入一些信息,如下:

tip:其中最重要的是套装ID 他是AppID-BundleID的格式 这里需要提前为该App申请一个AppID以及Xcode工程对应的BundleID,只要是申请成功了就会在选择列表中显示出来,工程中的BundleID以及后面用到的AppID要与这里一致
并且,要实现内购功能,必须保证这个ID的In-App Purchase是开启状态


接下来在iTunesConnection中点击刚才创建好的APP,然后点击功能,添加一个App内购项目

这里我们需要的是消耗类项目(就是用了就没了的东东,比如金币,非消耗类的比如汽车的赛道,消耗类的项目应用较多)

* tip:这个产品ID在后面会用到,这是你这个内购项目的唯一标识符,其他的信息点击?会有说明,需要注意的是后面的审核备注中要求写测试账户的用户名和密码,下面会着重说这个沙盒测试账户*

2.沙盒测试账户

点击iTunesConnection中的用户和职能,点进去之后点击沙箱技术测试员(我习惯叫沙盒)


我这边已经创建好了我的测试账户,如果没有点加号创建一个,然后要去邮箱验证一下,按照提示验证通过后就可以了
那么这个测试账号用来做什么的呢?等下测试的时候要登录这个账户来“购买”,这样你就不会真的花钱了,是不是很爽,咳咳。

3.提交审核

个人认为这才是最坑的地方,反正要用好久才审核过,比较麻烦的是这个


协议,税务和银行业务的这个东东,这里要申请一个iOS Paid Application(付费应用合同),需要填一些信息以及银行信息之类的,具体也不是我填的,我这里找到一个博客,相对比较详细
http://blog.csdn.net/wang_we/article/details/44303295
填完这个东东之后,才可以构建新的版本,提交一个含有内购版本的APP(貌似还需要提交二进制文件之类的,反正我不是很懂),等待不知道多久后,如果没问题我们的内购项目会显示一个“需要开发人员操作”的状态,这就很high了,证明我们这个productID可以用来测试啦,啦啦啦。

4.开始写代码

接下来终于能写代码了,有点high,建一个工程,BundleID和之前申请的一致,接下来介绍一下核心的代码:

1.首先引入苹果自带的StoreKit框架,遵循两个协议SKPaymentTransactionObserver, SKProductsRequestDelegate 然后点击购买按钮事件方法中,添加如下方法 其中_currentProId 是我们之前申请的内购项目的产品ID,然后向苹果服务器发送request
- (IBAction)buyAction:(id)sender {//单例支付队列 添加观察者[[SKPaymentQueue defaultQueue] addTransactionObserver:self];//创建的内购的productIDif ([SKPaymentQueue canMakePayments]) { // 判断用户是否允许内购[self requestProductData:_currentProId];} else {NSLog(@"-------用户禁止应用内付费购买------"); // 可以跳到设置界面提醒用户开启

这篇关于新版iOS内购(IAP)完整流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141856

相关文章

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

Nginx、Tomcat等项目部署问题以及解决流程

《Nginx、Tomcat等项目部署问题以及解决流程》本文总结了项目部署中常见的four类问题及其解决方法:Nginx未按预期显示结果、端口未开启、日志分析的重要性以及开发环境与生产环境运行结果不一致... 目录前言1. Nginx部署后未按预期显示结果1.1 查看Nginx的启动情况1.2 解决启动失败的

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问