- 浏览: 698738 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
javenwong:
你好,我现在需要给一个Composite做圆角处理,不知道怎么 ...
SWT圆角窗口绘制 -
whao189:
回家了详细看看
Storyboard 解析 -
zhaoyubetter:
确实够麻烦
IOS 开发环境,证书和授权文件是什么? -
datawarehouse:
一直对这两个认为是一样的,现在学习了。
Oracle DB中的Schema -
yulanfeiyang:
顶,mark
下载音频,在IOS设备上播放
自从10月16日苹果发送给所有开发者的那一封信,通知了程序内购买将可用于免费应用,我认为这也宣告了LITE版的时代结束。
成千上万的免费版的软件或游戏,将作为限制了功能的完整版免费发售,如果用户觉得有意购买,可以直接解锁完整版的功能或购买附加内容。
本文讲阐述如何为你现有的应用或游戏添加程序内购买(In App Purchase)功能。
阅读前提:假设了你拥有一定的iPhone SDK开发基础,和App Store实践经验。
你的程序需要唯一的Bundle ID, 如果已经发布的程序使用了通配符,那么就不能直接添加该功能。如果拥有了唯一的ID,请在program portal中添加你的app id,允许程序使用内购买(Enable In App Purchase)。
在设计好你的程序内购买的功能以后,首先需要定义元数据。来到iTunes Connect,在Manage Your In App Purchases中为你的程序添加一个程序内购买的商品。
上面第一个部分是添加的内部信息。参考名称,ID,类型,和价格。以及各种本地化信息。
这里简单说一下类型的选择,其他信息,以及In App Purchase支持什么类型的商品请查看Getting Started with In App Purchase。
Non-consumable 默认类型,非消耗品,具有持久性,特点是一次性购买,可用在所有设备。例如解锁游戏的储存关卡功能。
Consumable 消耗品,用完或使用后消失,可多次购买,不能用在所有的设备,例如游戏中的血瓶或技能书。
Subscription 订阅,和消耗品一样,除了可以在设备之间共享。
测试沙盒环境
只供给测试用户,并且设备上才有效,不能使用模拟器测试。
可以为每个国家的商店添加测试帐号。
不能用来测试其他的iTunes Store特性。
需要为每个测试添加唯一的email地址,可以考虑使用+
payam+usa@example.com—测试美国的商品
payam+uk@example.com—测试英国的商品
payam+jp@example.com—测试日本的商品
测试步骤,需要在设备的设置菜单中iTunes Store登出原有帐户。
然后不要在设置菜单中登录测试帐号,而是直接打开需要测试的程序进行测试。
在这之前需要在iTunes Connect的Manage Users菜单中添加In App Purchase测试用户。
财务报表
收入和应用程序同样的规则
你获得总收入的70%。
支付日程,使用税,报表等全部都一样。
报表
一样的报表格式。
贩卖的标示符栏显示物品的产品ID。
所有者标示符栏显示程序的ID。
本文部分内容参考自In App Purchase Programming Guide和WWDC 2009 Sessions,如需转载请注明出处。
成千上万的免费版的软件或游戏,将作为限制了功能的完整版免费发售,如果用户觉得有意购买,可以直接解锁完整版的功能或购买附加内容。
本文讲阐述如何为你现有的应用或游戏添加程序内购买(In App Purchase)功能。
阅读前提:假设了你拥有一定的iPhone SDK开发基础,和App Store实践经验。
你的程序需要唯一的Bundle ID, 如果已经发布的程序使用了通配符,那么就不能直接添加该功能。如果拥有了唯一的ID,请在program portal中添加你的app id,允许程序使用内购买(Enable In App Purchase)。
在设计好你的程序内购买的功能以后,首先需要定义元数据。来到iTunes Connect,在Manage Your In App Purchases中为你的程序添加一个程序内购买的商品。
上面第一个部分是添加的内部信息。参考名称,ID,类型,和价格。以及各种本地化信息。
这里简单说一下类型的选择,其他信息,以及In App Purchase支持什么类型的商品请查看Getting Started with In App Purchase。
Non-consumable 默认类型,非消耗品,具有持久性,特点是一次性购买,可用在所有设备。例如解锁游戏的储存关卡功能。
Consumable 消耗品,用完或使用后消失,可多次购买,不能用在所有的设备,例如游戏中的血瓶或技能书。
Subscription 订阅,和消耗品一样,除了可以在设备之间共享。
创建购买流程 大致可以分为十个步骤: 验证App Store存取权限 这样做是因为,家长控制或一些公司的配置文件阻止了此功能,使用支付队列的查询功能canMakePayments来确定用户是否有权限购买,返回值YES代表可以购买/NO代表没有权限购买。 载入目录 载入储存在本地或者远程的商品目录。 获得商品本地化信息 程序向App Store发起查询请求获得目录中商品的本地化信息。: myPossibleProds = [NSSet setWithObjects: @”myProd1”, @”myProd2”, @”myProd3, nil]; myProdRequest = [[SKProductsRequest alloc] initWithProductIdentifiers: myPossibleProds]; myProdRequest.delegate = myProductsRequestDelegate; [myProdRequest start]; 程序接收来自App Store的回应: -(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response response包含可能的信息 response.products //产品信息 response.invalidProductIdentifiers //错误的产品标示符 错误的产品可能由下面的原因导致: 商品未在 iTunes Connect中录入。 商品没有选择“Cleared for Sale”。 商品还没有传播到所有服务器。 创建商品信息 前面的步骤获得了产品信息的数组用以呈现: myAvailableProductsArray = response.products; for (SKProduct* aProduct in myAvailableProductsArray) { diplayTitle = aProduct.localizedTitle; displayDesc = aProduct.localizedDescription; displayPrice = aProduct.price; } 呈现商品信息 在UI中显示前面获得的信息 请求支付 myPayment = [SKPayment paymentForProductIdentifier: selectedProdID userInfo: nil]; 或 myPayment = [SKPayment paymentForProduct: selectedProduct userInfo: nil]; 然后提交到队列 defaultPaymentQueue = [SKPaymentQueue defaultQueue]; [defaultPaymentQueue addTransactionObserver: myObserver]; [defaultPaymentQueue addPayment: myPayment]; [defaultPaymentQueue addPayment: myRequest]; - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 验证支付的事务 for(SKPaymentTransaction *aTransaction in transactions) { switch (aTransaction.transactionState ) { // 商品进入购买流程 case SKPaymentTransactionStatePurchasing: ... break; // 成功购买商品 case SKPaymentTransactionStatePurchased: ... break; // 已经购买过该商品 case SKPaymentTransactionStateRestored: ... break; // 用户取消交易 case: SKPaymentTransactionStateFailed ... break; App Store的交易回执 aTransaction.transactionReceipt Used to validate e-commerce transaction Cryptographically signed chunk of data Contains information about the purchase Can validate using Web-based API 收到交易回执以后可以传送到你的服务器处理该交易。 你的服务器可以向苹果发送交易验证信息。 苹果的交易验证地址:https://buy.itunes.apple.com/verifyReceipt 验证数据格式:{ receipt-data : …} 苹果的返回值如果是{ status : 0 } 那么交易是正确,如果返回任何其他值 { status : any_other_value } 交易就是不成立。 你的服务器收到苹果的验证成功信息以后,返回给应用程序类似于解锁功能等消息。 解锁内置物品火提供远程存取地址 需要注意的地方 用户可能随时退出程序。 Store Kit 的交易队列是持久化的。 交易是持久化的。 验证存取。 移除交易。 [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 储存购买 需要将非消耗的购买记录在服务器上,以供用户更换设备或删除程序以后重新安装时再次解锁功能。 提供物品恢复 前面的代码中,已经购买过该商品的处理就是直接解锁。 defaultPaymentQueue = [SKPaymentQueue defaultQueue]; [defaultPaymentQueue restoreCompletedTransactions];
测试沙盒环境
只供给测试用户,并且设备上才有效,不能使用模拟器测试。
可以为每个国家的商店添加测试帐号。
不能用来测试其他的iTunes Store特性。
需要为每个测试添加唯一的email地址,可以考虑使用+
payam+usa@example.com—测试美国的商品
payam+uk@example.com—测试英国的商品
payam+jp@example.com—测试日本的商品
测试步骤,需要在设备的设置菜单中iTunes Store登出原有帐户。
然后不要在设置菜单中登录测试帐号,而是直接打开需要测试的程序进行测试。
在这之前需要在iTunes Connect的Manage Users菜单中添加In App Purchase测试用户。
财务报表
收入和应用程序同样的规则
你获得总收入的70%。
支付日程,使用税,报表等全部都一样。
报表
一样的报表格式。
贩卖的标示符栏显示物品的产品ID。
所有者标示符栏显示程序的ID。
本文部分内容参考自In App Purchase Programming Guide和WWDC 2009 Sessions,如需转载请注明出处。
发表评论
-
iphone编程之UILabel 用法详解
2012-12-18 14:38 1355这段代码动态的创建了一个UILabel,并且把相关常用的属 ... -
IOS用正则验证手机号
2012-12-14 12:01 17151- (BOOL)validateMobile:(NSStr ... -
UITableView技巧之去除UITableViewCell边框
2012-12-14 10:42 3559有时候想在UITableViewCell中加内容,但又不想要c ... -
MAC MySQL Workbench执行批量更新和删除的时候错误解决
2012-10-25 11:21 3957处理MySQL更新表时ErrorCode:1175.You a ... -
Objective-C编码风格指南
2012-10-17 17:00 1157参考资料: • Apple: Coding Guideline ... -
autorelease对象具体什么时候释放?
2012-09-19 15:21 999在项目中,会有一个默认的Autorelease pool,程序 ... -
Objective-C内存管理教程和原理剖析
2012-09-10 14:44 856此文涉及的内存管理是针对于继承于NSObject的Clas ... -
IOS开发内存释放小结
2012-09-03 17:34 5310内存释放是iphone开发过程中比较重的地方,所以在开辟内存后 ... -
为什么Android没有iOS那么顺滑
2012-08-29 14:38 863虽然很多Android手机的配 ... -
UITextView关闭键盘
2012-08-29 14:13 141481.如果你程序是有导航条的,可以在导航条上面加多一个Done的 ... -
Mac系统下查看鼠标所在点的RGB值--数码测色计
2012-08-29 14:05 1746苹果电脑的Mac OS X系统自带鼠标所在点颜色RGB值查看工 ... -
UIView你知道多少
2012-08-21 09:49 781曾经有人这么说过,在i ... -
Objective-C内存管理总结〜CC专版
2012-08-17 18:24 755iPhone系统中的Objective-C的内存管理机制是比较 ... -
iOS内存管理
2012-08-17 18:19 27961. 内总管理原则(引用计数) IOS的对象都继承于 ... -
IOS 获取当前系统时间的年、月、日、小时、分、秒
2012-08-14 17:33 6553NSCalendar *calendar = [[NSCa ... -
IOS判断是否为数字
2012-08-13 17:59 4857判断是否为整形: - (BOOL)isPureInt:(N ... -
self.用法
2012-08-09 14:55 814MyClass.h @interface MyClass ... -
#import与@class的区别
2012-08-08 17:13 8981.import会包含这个类的所有信息,包括实体变量和方法,而 ... -
iphone图标去掉光晕效果
2012-08-07 16:53 1113图片背景是透明的 如果想去掉光晕效果,就在info.plist ... -
去掉 App Store 内图标上部高亮效果的办法
2012-08-07 16:52 844苹果默认会在 App Store 里的应用图标上半部自 ...
相关推荐
使用测试用户进行In App Purchase测试 注册In App Purchase 从产品页面 从iTunes Connect主页 提供In App Purchase信息 创建自动续费的In App Purchase 测试您的In App Purchase 提交In App Purchase给Apple...
安装ANE二进制文件(InAppPurchase.ane)位于bin文件夹中。 您应该将其添加到应用程序项目的Build Path中,并确保将其与您的应用程序打包在一起(更多信息)。 在示例项目的应用程序描述符中查看它。 < extensions> ...
易于购买 Android在应用程序购买中的...用法增加依赖将此添加到build.gradle项目级别allprojects { repositories { maven{ url 'https://jitpack.io' } }} 将此添加到build.gradle Module:app implementation '...
在您的iOS应用中将IAPReceiptVerifier添加到您的Podfile中,然后运行pod update 。 在iOS应用中使用类似以下内容的代码来验证收据。 // Insert your Heroku app URL here.let url = URL ( string : " ...
用于在 iOS 上集成应用内购买的 Air Native 扩展 请注意,我们不再能够支持这个项目,也没有为它做出贡献。 这是 iOS 平台上的应用内购买集成的。 版本 这是此扩展的 0.6.0 版。 二进制文件 bin 文件夹包含编译后的...
InApp购买按钮一个简单且可自定义的应用内购买按钮,以Swift编写。安装最方便的安装方法是将与Podfile使用: pod 'InAppPurchaseButton' 或使用并在Cartfile添加一行: github "PGSSoft/InAppPurchaseButton"或 ...
1、介绍 2、在您开始之前 3、iTunes Connect概览 4、查看销售数据和趋势统计 5、合约、税务以及银行信息 6、查看财务报告 7、用户管理 8、添加新的应用程序 ...13、In App Purchase管理 14、最佳实践
React Native Cafe Bazaar的构建旨在为InApp Billing for Cafe Bazaar提供一个简单的界面, 安装 npm install --save react-native-cafe-bazaar或yarn add react-native-cafe-bazaar 在android/settings.gradle...
Android-MonetizeApp一个示例,该示例使用Google的Play计费库,并进行InApp购买和订阅。入门在您的Android Studio项目中添加Play Billing Library依赖性。 使用您的Google Play开发者控制台中使用的应用程序ID。 ...
一个轻量级的库,用于在本地读取和验证Apple In App购买收据。 产品特点 提取所有应用内收据属性 哈希验证 验证捆绑软件版本和标识符 签名验证 安装 可可豆 要使用CocoaPods将TPInAppReceipt集成到您的项目中,...
创建帐户后,将您的应用添加到。 或阅读有关添加应用程序的。 3.下载Nami框架 克隆或下载此存储库! 要求 iOS 11以上,iPadOS 13以上 为Xcode 11构建,如果您仍然使用Xcode 10.3,请使用Xcode10-3文件夹中的框架。 ...
MerchantKit极大地简化了独立开发人员为向其应用程序中添加高级可货币化组件所要做的工作。 跟踪购买的产品,提供自动续订的订阅,恢复交易等等。 MerchantKit专为具有有限数量可购买产品的应用程序而设计,是一种...
本文是使您可以轻松添加到应用程序中的应用程序内购买的文章。 我写下了您必须做的事情,您可以从那里开始,也可以下载文件并进行测试。 要添加到AndroidManifest 要添加到AppBuildGradle implementation ' ...