一、非消耗品(比如单本杂志购买,苹果服务器支持恢复)

1.先验证服务器有没有购买记录,如果有,则不处理,此次操作成功 ;
2.如果服务器没有购买记录,则到苹果服务器验证
(1)首先到正式验证地址验证收据,如果返回状态非0,则再向测试验证地址验证收据。
(2)如果最后返回的状态为0,表示是有效购买,则插入,增加权限,此次操作成功。
(3)否则失败。
二、消耗品(比如鱼食,苹果服务器不支持恢复)
1.首先到正式验证地址验证收据,如果返回状态非0,则再向测试验证地址验证收据。
2.如果最后返回的状态为0,表示是有效购买,则插入,增加权限,此次操作成功。
3.否则失败。
三、自动续订的订阅(产品定义有时长,过期自动续订,苹果服务器支持恢复)
1.购买时:
(1).首先从正式验证地址验证收据,如果返回状态是21007,则再从测试验证地址验证收据.
(2).如果苹果返回状态为0,则表示订阅还有效,在苹果返回json的latest_receipt_info或者receipt结构中(latest_receipt_info优先)取出最新过期时间,插入或者更新过期时间,并赋予对应权限,此次操作成功。
(3).如果苹果返回状态为21006,则表示订阅过期,但是还有效。在苹果返回json的latest_expired_receipt_info结构中,取出交易时间(“purchase_date”,过期的订阅交易记录中,没有过期时间字段),[交易时间+订阅时长]为结束,赋予权限。    
(4).否则失败
2.过期验证时:
(1)当用户第一次购买订阅之后,会有一个最后的过期时间记录在服务器,以此计算剩余时间。如果算出此时剩余时间等于0了,取出当前用户最新的一条订阅记录(receipt),通过苹果验证接口进行验证。
(2)首先从正式验证地址验证收据,如果返回状态是21007,则再从测试验证地址验证收据.
(3)如果苹果最后返回结果中状态值为0,表示已经续订,在latest_receipt_info或者receipt结构中(latest_receipt_info优先),取出最新的过期时间,更新服务器过期时间,并赋予对应权限,remaindDays用新的过期时间算。
(4)如果返回状态为21006,表示已经退订,但是还有效。在苹果返回json的latest_expired_receipt_info结构中,
取出交易时间(“purchase_date”,过期的订阅交易记录中,没有过期时间字段),以[交易时间+订阅时长]为过期时间,更新服务器过期时间。
四、非自动续订的订阅(产品定义没有时长,时长自己控制,可以多次购买,类似于消耗品,苹果服务器不支持恢复)
1.验证过程和消耗品相同
五、免费订阅(只能在Newsstand里面用,永不过期,苹果服务器支持恢复)
1.验证过程和非消耗品相同

应用内购买(IAP)各类型在服务端的验证规则相关推荐

  1. (SVN笔记)https外网IP端口映射内网IP端口访问SVN服务端

    目录 1.前言 2.花生壳优点与相关技术 3.设置SVN服务器 4.外网IP映射内网IP访问SVN Server 5.总结 1.前言         上一章介绍了局域网内https服务端配置与客户端联 ...

  2. 启动go服务_内网穿透工具 FRP公网服务端、内网客户端快速配置文件说明

    内网穿透工具 FRP 公网服务端.内网客户端 frps.ini .frpc.ini 配置文件常用设置展示及说明 公网服务端 frps.ini 配置文件常用设置 公网服务端配置文件:frps.ini [ ...

  3. (SVN笔记)https内网IP端口配置SVN服务端+内网SVN客户端联合使用

    目录 1.前言 2.SVN服务端设置 3.开始使用SVN (1)新建版本库 (2)迁入项目到SVN服务端 (3)检索项目/拉取项目check out (4)提交代码commit (5)更新代码upda ...

  4. 苹果应用内购买(IAP)—从入门到放弃

    文本总结了大量IAP相关的规则.设计开发要点和实践经验,适合产品需要做IAP和所有对IAP知识感兴趣的策划.交互.开发.测试. ●●● IAP规则详解 本文所述IAP(In-App Purchase) ...

  5. iOS内购 - 服务端票据验证及漏单引发的思考

    因业务需要实现了APP内购处理,但在过程中出现了部分不可控的因素,导致部分用户反映有充值不成并漏单的情况. 仔细考虑了几个付费安全上的问题,凡是涉及到付费的问题都很敏感,任何一方出现损失都是不能接受的 ...

  6. 内网穿透------frp配置(服务端客户端配置)超详细的那种~~~

    强调:配置文件中每行代码最后一定不要留空格!!! 配置文件中尽量不要有注释,必须写的话,要用符合的语法写: 分号; 第一步:云服务器上域名解析添加(前提是有域名已经备案) 这里有对应操作截图文件 第二 ...

  7. frp 内网穿透服务器搭建frps服务端和frpc客户端

    1 工具 一台具有公网ip的服务器 2 下载frp frp下载地址 打开上面的frp下载地址 公网服务器上 打开下载文件 frps是服务端,在公网服务器上部署 frpc是客户端,在需要内网穿透的电脑上 ...

  8. (Frp第一篇)Frp内网穿透安装教程#Frps服务端一键安装脚本#

    系统:CentOS7 内存:1G CPU:单核1G 客户端安装教程:(Frp第二篇)Frp内网穿透安装教程#Frp OpenWrt客户端安装#图形化管理 注意事项:记得给使用的端口开放防火墙,开放防火 ...

  9. 苹果支付流程以及服务端php验证

    苹果支付和常规国内的支付流程完全不一样,流程如下: 步骤如下: 1.上架产品 首先需要在苹果网站上架对应的app产品,有对应的id和价格,名称等数据 2.前端拉起商品列表 用户登录app后,进入商品购 ...

最新文章

  1. 物联网安全:LED灯中存在多个安全漏洞
  2. 一句话回复:关于'SqlMembershipProvider' requires a database schema compatible with schema version '1'...
  3. Docker容器学习梳理--日常操作总结
  4. PostgreSQL的 initdb 源代码分析之二十三
  5. Mobile first 设计思路在 SAP 电商云 Spartacus UI 中的设计体现一例
  6. 高校各部门老师真实生活图鉴,哈哈哈哈哈哈哈
  7. npm修改全局包安装路径
  8. if __name__ == __main___一文搞懂 if __name__ == #39;__main__#39;
  9. 2472 莫斯方块——题解与C++示例代码
  10. 剧情插件Cutscene Creator uSequencer 1.3.7.1使用说明二
  11. win10 清理回收站右键
  12. cad抠图 lisp_[原创]几个超级有用的裁剪用autocad--lisp程序
  13. eclipse转Androidstudio AAPT: error: file failed to compile.
  14. JQuery-layer web弹窗层
  15. 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
  16. ios(苹果)设备直播流媒体 服务搭建
  17. IKEv2协议中的EAP-TLS认证处理流程
  18. ubuntu大于4T分区 12T硬盘分区
  19. 酒仙网将上市:营销促营收增长,深陷纠纷案,部分股权被法院冻结
  20. 克己慎独 2008-9-23 13:32:00 (21ic)

热门文章

  1. 应用安全 - 渗透测试 - .net网站
  2. Asp.net MVC在Razor中输出Html的两种方式
  3. itextsharp c# asp.net 生成 pdf 文件
  4. 开发者账号申请 真机调试 应用发布
  5. MySQL Connector/ODBC 5.2.4 发布
  6. Spring常用注解的讲解
  7. LeetCode 771. 宝石与石头
  8. php输出mysql的数据结构_php课程 13-43 mysql的数据结构是什么
  9. asp:dropdownlist如何去掉三角箭头_一棵悬崖三角枫的培养过程
  10. oracle segment extent block,Oracle的基础问题segment extent block