原地址: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. SQL Server附加数据库提示“版本为661,无法打开,支持655版本……”

    在我们使用别人导出的数据库的时候,有时候我们会通过附加数据库的方法,把别人导出的数据库附加到我们的电脑中,这时,或许你会遇到这种问题,附加时,提示版本为XXX,无法打开,支持AAA版本. 这是怎么回事 ...

  2. 【四边形不等式】POJ1160[IOI2000]-Post Office

    [题目大意] v个村庄p个邮局,邮局在村庄里,给出村庄的位置,求每个村庄到最近邮局距离之和的最小值. [思路] 四边形不等式,虽然我并不会证明:( dp[i][j]表示前i个村庄建j个邮局的最小值,w ...

  3. 【四边形不等式】HDU3516-Tree Construction

    [题目大意] 给定n个点(x,y),并且保证xi<xj&&yi>yj当i<j.要求建一颗树,树的边只能向上和向右生长,求将所有点都连起来树的长度最小. [思路] 定义 ...

  4. 2017-2018-1 JAVA实验站 冲刺 day03

    2017-2018-1 JAVA实验站 冲刺 day03 各个成员今日完成的任务 小组成员 今日工作 完成进度 张韵琪 写博客.进行工作总结 100% 齐力锋 部分按钮图片.对按钮图片进行ps 100 ...

  5. CountDownLatch源码分析

    CountDownLatch.Semaphore(信号量)和ReentrantReadWriteLock.ReadLock(读锁)都采用AbstractOwnableSynchronizer共享排队的 ...

  6. spring整合mybatis是如何配置事务的?

    作者:郭无心链接:https://www.zhihu.com/question/30206875/answer/84675373来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  7. Codeforces Round #FF (Div. 1) B. DZY Loves Modification

    枚举行取了多少次,如行取了i次,列就取了k-i次,假设行列单独贪心考虑然后相加,那么有i*(k-i)个交点是多出来的:dpr[i]+dpc[k-i]-i*(k-i)*p 枚举i取最大值.... B. ...

  8. 一段js的思考

    写了很久JS,还以为这段代码可以正常输出,谁知道输出超乎我的形象: <!DOCTYPE html> <html> <head> <meta charset=& ...

  9. 为jquery ajax请求增加正在运行提示

    在jquery源码中增加showMask()方法调用: if ( xhrSupported ) { jQuery.ajaxTransport(function( options ) { // Cros ...

  10. SIGSEGV异常时打印函数调用链

    C语言写的程序跑飞了,怎样打印出函数调用链呢? linux_dev_framework软件包中的trace_exception_test.c就是一个实现演示样例. 该程序有益产生一个内存訪问异常,然后 ...