原地址:http://zengwu3915.blog.163.com/blog/static/27834897201375105236580?suggestedreading

发了几天时间在网上折腾了几天,终于把App内购给弄好了。分享一下个人经验

一、 在iTunesConnect中创建内购的App,然后为这个App设置一些产品(付费道具等)
打开iTunesConnect网站https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa。成功登录后进入管理页面
 

选择“Manage Your Apps”进入应用管理页面,并点击“Add New App”新建一个项目

新建App项目可以参考前面的苹果开发——向App Store提交应用,这里我们不做真实的提交,只进行到应用的状态为"Prepare

for Upload"就可以了。这里的Bundle ID 一定要与项目的info.plist中的Bundle ID保持一致,不然会内购不成功或到别人账户里去了。

选择“Manage In-App Purchases”进入产品管理页面。选择”Create New“来创建新的产品(付费道具)。

这里会出现五个项,如果你只看到一个”Free Subscription",这个时候,请先去完成“Contracts, Tax, and Banking”的资料填写,可以参考苹果开发——设置iTunes Connect中的Contracts, Tax, and Banking
类型说明:
1. Consumable 消耗品: 每次下载都需要付费, 游戏中的收付道具或充值一般都用这个类型来实现
2. Non-consumable 非消耗品: 仅需要付费一次, 游戏中如果有什么收费补丁或收费地图什么的,可以用这个
3. Auto-Renewable Subscriptions 自动订阅:允许用户购买一个持续时间更新的东西,并自动续期,游戏中少见,一般杂志订阅会用到

4. Free Subscription 免费订阅: 这个你懂的

5. Non-Renewing Subscription 非自动订况:
 
我们做游戏收费道具,选择第一个“Consumable”,之后设置一些产品的信息

Reference Name: 付费产品名称,这个自己看看就行了

Product ID:你产品的唯一id,通常格式是com.xx.xx,但它可以是任何形式(中文和特殊符号除久),不要求以程序的App ID作为前缀

Price Tier:选择价格,这里你选择价格后会出现各种货币对应的价格对照表。

Add Language:添加产品名称与描述语言,这里可以设置不同语言不同的描述。产品的名称会在购买时显示给玩家
Screenshot 截图:展示你产品的截图,测试时可以不用管。
 
一路Save保存回到“Manage In-App Purchases”页面中,你会看到我们新建的产品,同样的方法,你也可以创建多个产品。只要保证Product ID 不同就行,其他的随意。
做sandbox测试时,In-App Purchases设置到这里就可以了。但真正上线时还得继续设置下去。
这里没有上传截图的状态是“Waiting for Screenshot”,我们上传一个截图后状态变为"Ready to Submit",为什么不是“Submit for Review”

这里我们的App的状态是“Prepare for Upload”,在这我们需要将“In-App Purchases”加入到你的App应用中,这一步只能在App状态为“Ready for upload”之前去做,否则”In-App Purchase“就没法submit了。

如果产品都设置好了,点Done回到”App Information"中,确定为App状态为“Prepare for Upload”时,点“view Details”

在下面的In-App Purchases中,选择“Edit”

  选择App中所需要加入的产品

“Save” 保存,确定产品信息添加无误后,可以点下面的“Ready to Upload Binary”。

 

这后,App 应用的状态就是“Waiting for Upload",回过去再看产品时,状态变为了"Waiting for Review"

到此,App iTunes Connect上所有的设置都完成,直等上传二进制文件发布等待审核通过了。传说内购产品的审核在App审核通过之后才开始。
 
二、申请测试账号。利用sandbox测试模式模拟App Store购买流程
回到iTunes Connect主页面中,选择”Manage Users“ 然后选择”Test User“ 然后点”Add New User“,创建几个测试用的账号就可以了
记住账号和密码哈,记不住就删掉重新建 娃哈哈~(切记:不能用于真正的AppStore中使用此账号,不仅不能用,而且一旦AppStore发现后果你懂得~)

苹果开发——App内购以及验证store的收据(一)的更多相关文章

  1. 苹果开发——App内购以及验证store的收据(二)

    原地址:http://zengwu3915.blog.163.com/blog/static/2783489720137605156966?suggestedreading 三. 客户端使用Store ...

  2. ios 苹果内购订单验证 --- php实现

    验证函数: function appleVerify($receipt_data,$orderId = 0) { /* * 21000 App Store不能读取你提供的JSON对象 * 21002 ...

  3. 苹果内购服务器验证之receipt返回多组in_app思考

    最近有部分用户反映,苹果内购充值失败,经过测试总结有几个关键点出现问题 1.app购买成功苹果没有返回票据,属于票据遗漏(取决于苹果服务器的响应状况),只能客户端进行监听刷新等处理 2.app连续购买 ...

  4. 苹果APP内购客户付款成功,没收到相应虚拟产品的解决办法

    一.引导用户走申请苹果的退款 1.告知用户新版本可以使用支付宝.微信支付,更划算 2.苹果可申请90天以内的退款,一般情况申请后48小时内就有反馈. 参考链接 https://jingyan.baid ...

  5. iOS开发系列——内购、GameCenter、iCloud、Passbook系统服务开发汇总

    社交 Social 现在很多应用都内置“社交分享”功能,可以将看到的新闻.博客.广告等内容分享到微博.微信.QQ.空间等,其实从iOS6.0开始苹果官方就内置了Social.framework专门来实 ...

  6. iOS APP内购

    看到网上文章一大把,看了这个觉得挺不错的,谢谢 iOS大全 公众平台; 原文:http://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=2652 ...

  7. php苹果内购订单验证

    /** * 21000 App Store不能读取你提供的JSON对象 * 21002 receipt-data域的数据有问题 * 21003 receipt无法通过验证 * 21004 提供的sha ...

  8. c++ boost 苹果内购 IAP验证

    // 1111.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" #include <cstdlib> #include <i ...

  9. ios 苹果内购订单验证 --- nodejs实现

    实现代码 function IosPlayVerify(data,orderid,cb) { itunesPost(data,function (error,responseData) { if (e ...

随机推荐

  1. js冒泡处理

    <div id="first"> 外层 <span id="second"> 内层 </span> </div> ...

  2. Spring---介绍

    核心容器:Core.Beans.Context.EL模块 1.     Core模块:封装了框架依赖的最底层部分,包括访问资源.类型转换及一些常用工具类 2.     Beans模块:提供了框架的基础 ...

  3. Educational Codeforces Round 11 E. Different Subsets For All Tuples 动态规划

    E. Different Subsets For All Tuples 题目连接: http://www.codeforces.com/contest/660/problem/E Descriptio ...

  4. hihocoder1310 岛屿

    hihocoder1310 岛屿 题意: 中文题意 思路: dfs,面积和数量都很好求,问题在岛屿形状上,感觉让人比较麻烦,用vector保存各个点,只要两个岛之间每个点距离一样就好了,这里的形状的定 ...

  5. python 基本语法速览,快速入门

    https://zhuanlan.zhihu.com/p/24536868 学习参考于这个博文. 我做一个笔记. 关于python一些常用的语法快速的预览,适合已经掌握一门编程语言的人.零基础,没有任 ...

  6. linux基础命令学习 (七)压缩解压

    一.tar tar主要用来压缩和解压文件 语法: tar [主选项+辅选项] 文件或者目录 主选项: c 创建新的档案文件.如果用户想备份一个目录或是一些文件,就要选择这个选项.相当于打包. x 从档 ...

  7. jquery如何判断checkbox(复选框)是否被选中(转)

    谁都知道 在html 如果一个复选框被选中 是 checked="checked". 但是我们如果用jquery alert($("#id").attr(&qu ...

  8. Tasker 中文版(4.6u2)

    http://www.anzhi.com/soft_1868913.html Tasker绝对称得上是Android系统的神器之一,与Auto Memory Manager不同,Tasker不是加速型 ...

  9. promise和Rxjs的一点区别

    promise 代码 let promise = new Promise( (resolve) => { setTimeout(() => { resolve('chen'); },200 ...

  10. Openfire更服务器名称后报Found RSA certificate that is not valid for the server domain的解决方法

    原文:http://blog.sina.com.cn/s/blog_ae5a3d3f0102wdrb.html Openfire更服务器名称的方法: 1.登陆openfire管理页面,在主页面下方选择 ...