IOS应用内支付IAP从零开始详解
前言
什么是IAP,即in-app-purchase
这几天一直在搞ios的应用内购,查了很多博客,发现几乎没有一篇博客可以完整的概括出所有的点,为了防止大伙多次查阅资料,所以写了这一篇博客,希望大家能够跟着我,从零开始,写一个包含内购的应用出来
流程
一般有以下几种内购流程
1. 直接使用Apple的服务器进行购买和验证
2. 就是自己假设服务器进行验证
网上有几张图,不过是英文版的,看着流程也很复杂,其实很简单,我简单说一下
第一种流程就是用户在买你app里面的道具A的时候,点击了购买按钮
这时候你的app会发送一个请求给苹果服务器,告诉它,我要买A
由于苹果服务器那边你已经配置好了有哪些东西(后面会叫你怎么在那边配置你要卖的商品ABCD),苹果找出商品A,然后itunes store会向你确认是否真的要买A(只要用过苹果支付的基本都知道)
用户确定了以后,苹果服务器会给你返回一个购买凭证,app再把东西下发给用户,ok了
但是,一般的app都有自己的服务器,道具之类的物品也都是存在服务器的,所以,往往我们会采取第二种方式—把这个购买凭证发给我们自己的服务器,然后我们服务器通过给苹果服务器发送这个凭证来校验是不是真的,是真的,就下发道具,不是,则不下发!
基于上面的原因,所以我们一般采取第二种方式,第一种方式跟第二种方式大同小异,只是少了一些步骤,后面会详细讲
配置app,商品信息,银行卡信息,测试账号
1.进入到这个网站https://itunesconnect.apple.com/(注意,可能有些人进去后并不能看到下面的截图,可能是以下原因:1,未付费的开发者账号不能进入2,企业级开发者账号不能进入3,公司开发者账号下的Member权限不能进入)
2.如果配置了app的信息,则略过此步骤,没配置过可以继续
进入我的app
点击左上角+按钮,新建app,第一次创建可能会提示你需要套装id
点击注册,后面的流程比较多,由于不是IAP的重点,所以不再赘述,具体的细节可以参考这篇文章http://www.jianshu.com/p/259129a240cf
注册ok了以后,再次点击创建app,会出现下面的界面在这里有几个需要填写的地方,名称自己取,平台IOS,语言选择了简体中文,套装ID也就是你的Bundle Identifier,需要你在Certificates页面 申请BundleID,SKU可以理解为用户看一看到的唯一标示,会体现在你的app的App Store的链接中。
创建好了之后,会出现这个界面则大功告成!
3.配置商品信息
首先进入到这个页面
点击下方的加号+,开始准备添加你app里面要付费的东西了,钻石,会员啥的简单的解释一下:消耗型项目一般都是游戏或者app中供用户购买的钻石,元宝,金币之类的,绝大部分都是这一种,会员之类的,就是非续期订阅。
假设我们是要增加元宝,那么我们点击第一个,其他几个用法都差不多,进入到下面的界面,由于图片较长,我就分成了几个图片:填好了以后,点击右上角保存即可,然后重复几次,把自己需要卖的商品都添加好就行(注意:可能有人会发现,添加了几次以后,app内购项目还是显示为空,不要紧,其实已经添加了)
最后一步,也是很重要的一步,发现很多博客都没有,进入到下面这个界面往下拖,找到app内购项目点击+,把刚刚添加完的商品全部加进去,如下这一步很重要,否则你会发现,在你测试的时候,一直提示你的产品id是非法无效的,因为他一直找不到你的产品!
4.配置银行卡,税务等信息!
银行卡,税务等信息主要是为了让用户付费时候,能够把钱打入你的账户,如果没有配置的话,也会提示产品id非法无效!
进入到https://itunesconnect.apple.com/,再点击协议,税务和银行业务好吧,想了想,感觉这一章节东西也是挺多的,如果细细讲得话,会大幅度增加这边博客的长度,网上有篇文章讲得很好很详细,在此引用一下:http://www.jianshu.com/p/c7cf65911bc1照着这里面一步步来,就没有什么问题,这一部分也没有什么坑会被踩,所以大伙可以参考这篇文章!
5.配置沙盒测试账号
什么是沙盒?我们在开发的过程中,对于iap肯定要进行一定的测试,不过如果我们用真实的账号测试,走真实的接口,那么购买自己的东西的话,依然会有30%的利润进入到苹果的口袋。。如果是大量的测试或者购买的东西比较贵,肯定是比较坑爹的,所以,苹果提供了一套沙盒体系,在这个体系里面,用户用的是沙盒账号,走的是沙盒接口,这样无论用沙盒账号买啥,苹果都会给你返回购买成功!
沙盒验证接口:https://sandbox.itunes.apple.com/verifyReceipt
正式验证接口:https://buy.itunes.apple.com/verifyReceipt
上面两个接口一般是我们这边服务器这边来区分,测试时候就用沙盒接口,正式上线用正式接口。
好了步入正题,如何创建沙盒账号呢?还是进入到下面界面,点击用户和职能点击上图的沙盒技术测试按钮,进入到下面的界面:点击左上角的+,进入到下面的界面:上面的邮箱记得要填一个没有注册过app store的邮箱,可以用自己的qq邮箱或者网易游戏,密码也随便取个新密码,填满了以后,点击右上角进行保存就可以了!
注意:这里有个坑,这个沙盒测试账号一般使用的时候,记得要把你测试机上登录的app store之类的注销掉!填上自己的沙盒测试账号,否则你在购买时候,会直接给你返回连接不上itunes的错误!