Google IAB(In-App Billing)

本文详细介绍了Android Market IAB(In-app Billing)的工作原理及实现方式,包括其架构、消息传递流程、安全控制机制等内容,并提供了相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Google IAB(In-App Billing)猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢!原文地址: http://www.cocos2dev.com/?p=134今天要把我们上线的一款游戏移植到android上,由于游戏里面要用到内购,于是研究了下IAB。特整理了下资料。Android Market IAB(In-app Billing) 是一个提供应用程序内支付处理的Android Market服务,它对于开发者在Android平台盈利有很大帮助。以下是其基本概念和工作流程的一个简要说明。参考资料:http://developer.android.com/guide/market/billing/billing_overview.html主要原理:Android Market服务提供在你应用内的支付处理,服务会处理所有支付事物的细节,当支付完成后,服务会发送购买的细节给你的应用,包括订单号,订单时间,支付价格。你无需处理任何商业事物架构:IAB采用一种异步消息循环来在你的应用和Android Market服务器之间发送账单请求和应答。实际上,你的应用不会直接和Android Market服务器通讯,你的应用通过发送账单请求给Android Market的IPC并且从Android Market程序接收异步广播intents形式的应答。也可以采用私有的服务器进行内容发送和事务验证,私有服务器可以保存业务历史记录,或者进行各种IAB的账单安全处理任务,比如签名验证等。一个典型的IAB实现依赖与三个组件:BillingService处理应用的购买消息,发送付款请求BillingReceiver从Android Market 接收异步的账单处理的应答Security处理安全相关的任务,如签名验证,nonce生成等其他组件:ResponseHandler提供应用程序特定的对购买提示,错误和其他状态消息的处理PurchaseObserver负责发送回调消息给应用,对界面上的购买信息和状态进行更新。除了这些,你的应用还要提供存储用户购买信息的方法,以及给用户选择购买产品的界面。IAB消息:IAB请求MarketBillingService.sendBillingRequest(Bundle)Bundle参数BILLING_REQUEST(必须)CHECK_BILLING_SUPPORTED:查看Android Market 程序是否支持IABREQUEST_PURCHASE:发送购买消息GET_PURCHASE_INFORMATION:要求Android Market当购买成功、取消购买、退款等发生状态改变时,提示应用程序。CONFIRM_NOTIFICATIONS:Android Market会发送状态改变的提示给你,除非你确认了提示RESTORE_TRANSACTIONS:重装系统的情况下,可以通过发送这个请求来获取已购买的状态API_VERSIONPACKAGE_NAMEITEM_IDNONCENOTIFY_IDSDEVELOPER_PAYLOADIAB应答有同步和异步的应答同步应答是一个Bundle,包含RESPONSE_CODEPURCHASE_INTENTREQUEST_ID异步应答消息是独立的broadcast intents格式,包含:com.android.vending.billing.RESPONSE_CODEcom.android.vending.billing.IN_APP_NOTIFY包含一个或多个提示ID,当你接收到IN_APP_NOTIFY这个广播intent后,你要发送GET_PURCHASE_INFORMATION请求去获得消息详细内容。com.android.vending.billing.PURCHASE_STATE_CHANGED包含一个或多个事务的详细应答信息,用JSON格式表示消息序列购买请求的消息序列图安全控制Android Market为应答消息中的JSON数据签名。签名使用与Android Market账户关联的私钥进行。Android Market返回的账单应答中包括未加密的JSON和签名,应用收到签名的应答后可以使用公钥验证其签名。IAB同样也使用nonces(只能使用一次的随机数)来验证购买信息的完整性。当你发送GET_PURCHASE_INFORMATION和RESTORE_TRANSACTIONS请求的时候必须生成一个nonce。请求返回的时候,应用必须验证这个JSON中的nonce。IAB的限制必须是从Android Market中发布的应用必须有Google Checkout账户Android3.0,IAB必须5.0.12以上;其他版本需要IAB2.3.4以上版本。Android1.6以上设备只能买虚拟物品Android Market不提供内容必须联网
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值