新版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

相关文章

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

nodejs打包作为公共包使用的完整流程

《nodejs打包作为公共包使用的完整流程》在Node.js项目中,打包和部署是发布应用的关键步骤,:本文主要介绍nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言一、前置准备二、创建与编码三、一键构建四、本地“白嫖”测试(可选)五、发布公共包六、常见踩坑提醒

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载