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的错误!
IOS应用内支付IAP从零开始详解的更多相关文章
- iOS应用内支付(IAP)的那些坑
本文转载至 http://blog.devtang.com/2013/04/07/tricks-in-iap/ 前言 udacity 中的在线课程 <How to build a startup ...
- Cocos2dx使用ios内支付IAP具体流程-白白
今天总结了一下cocos2d-x使用ios内支付iap的具体流程,封装好了调用接口,代码与具体说明在此 http://download.csdn.net/detail/u010229677/81566 ...
- Cocos2d-x使用iOS游戏内付费IAP(C++篇)
本文章转载 http://www.ityran.com/archives/5515.非本人原创! 前期准备 设备与账号 在开始编码之前我们需要准备测试环境. IAP只能真机测试,准备一台iOS设备是必 ...
- 李洪强iOS经典面试题156 - Runtime详解(面试必备)
李洪强iOS经典面试题156 - Runtime详解(面试必备) 一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...
- iOS应用内付费(IAP)开发步骤列表
iOS应用内付费(IAP)开发步骤列表 前两天和服务端同事一起,完成了应用内付费(以下简称IAP, In app purchase)的开发工作.步骤繁多,在此把开发步骤列表整理如下.因为只是步骤列表, ...
- C# 内置 DateTime类详解
C# 内置 DateTime类详解 摘抄自微软官方文档,用来方便自己查阅:网址:https://msdn.microsoft.com/zh-cn/library/system.datetime(v=v ...
- Spark2.1.0——内置Web框架详解
Spark2.1.0——内置Web框架详解 任何系统都需要提供监控功能,否则在运行期间发生一些异常时,我们将会束手无策.也许有人说,可以增加日志来解决这个问题.日志只能解决你的程序逻辑在运行期的监控, ...
- Spark2.1.0——内置RPC框架详解
Spark2.1.0——内置RPC框架详解 在Spark中很多地方都涉及网络通信,比如Spark各个组件间的消息互通.用户文件与Jar包的上传.节点间的Shuffle过程.Block数据的复制与备份等 ...
- 【Python】Python内置函数dir详解
1.命令介绍 最近学习并使用了一个python的内置函数dir,首先help一下: 复制代码代码如下: >>> help(dir)Help on built-in function ...
随机推荐
- leecode第七十八题(子集)
class Solution { public: vector<vector<int>> subsets(vector<int>& nums) { vect ...
- Java中 Tomcat 是干什么的?
Tomcat是web容器.它的作用稍后给你解释. 你在做web项目时,多数需要http协议,也就是基于请求和响应,比如你在百度输入一行内容搜索, 那么百度服务器如何处理这个请求呢,他需要创建servl ...
- 荧光原位杂交技术 RNA-FiSH (fluorescence in situ hybridization)
通俗理解:带有荧光标记的DNA探针可以用于检测活体内特定基因的表达情况,活体成像. 荧光原位杂交方法是一种物理图谱绘制方法,使用荧光素标记探针,以检测探针和分裂中期的染色体或分裂间期的染色质的杂交.荧 ...
- GEO数据下载分析(SRA、SRR、GEM、SRX、SAMN、SRS、SRP、PRJNA全面解析)
很多时候我们需要从GEO(https://www.ncbi.nlm.nih.gov/geo/)下载RNA-seq数据,一个典型的下载页面是https://www.ncbi.nlm.nih.gov/ge ...
- proc-virtual-file-system
内核代码中分别找出一处 proc 和 seq_file 的完整使用过程,记录下来 在用户空间进行相应"读"."写" 介绍 Proc 虚拟文件系统 操作 proc ...
- android -------- 混淆打包报错(warning - InnerClass annotations are missing corresponding EnclosingMember annotations)
最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations ...
- 架构探险笔记12-安全控制框架Shiro
什么是Shiro Shiro是Apache组织下的一款轻量级Java安全框架.Spring Security相对来说比较臃肿. 官网 Shiro提供的服务 1.Authentication(认证) 2 ...
- Integer to English words leetcode java
问题描述: Convert a non-negative integer to its english words representation. Given input is guaranteed ...
- Oracle11g温习-第十一章:管理undo
2013年4月27日 星期六 10:40 1.undo tablespace 功能 undo tablespace 功能:用来存放从datafiles 读出的数据块旧的镜像 [ ...
- 70. Climbing Stairs爬楼梯
网址:https://leetcode.com/problems/climbing-stairs/ 其实就是斐波那契数列,没什么好说的. 注意使用3个变量,而不是数组,可以节约空间. class So ...