`

Google IAB(In-App Billing)介绍

阅读更多

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 程序是否支持IAB
                        REQUEST_PURCHASE:发送购买消息
                        GET_PURCHASE_INFORMATION:要求Android Market当购买成功、取消购买、退款等发生状态改变时,提示应用程序。
                        CONFIRM_NOTIFICATIONS:Android Market会发送状态改变的提示给你,除非你确认了提示
                        RESTORE_TRANSACTIONS:重装系统的情况下,可以通过发送这个请求来获取已购买的状态
                    API_VERSION
                    PACKAGE_NAME
                    ITEM_ID
                    NONCE
                    NOTIFY_IDS
                    DEVELOPER_PAYLOAD
        IAB应答
            有同步和异步的应答
                同步应答是一个Bundle,包含
                    RESPONSE_CODE
                    PURCHASE_INTENT
                    REQUEST_ID
                异步应答消息是独立的broadcast intents格式,包含:
                    com.android.vending.billing.RESPONSE_CODE
                    com.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不提供内容
            必须联网

分享到:
评论

相关推荐

    Godot-Myket-In-App-Billing:适用于Godot Game Engine的软应用内结算插件

    Godot-Myket-In-App-Billing插件的源代码包含在Godot-Myket-In-App-Billing-master压缩包中,开发者可以通过阅读源代码来了解其工作原理和实现细节,也可以根据自己的需求对其进行修改和扩展。这个插件的出现,极大...

    skubit-iab:Skubit InApp计费库

    【描述】"skubit-iab"库是为Android开发者提供的一种工具,旨在处理与Google Play In-App Billing相关的所有复杂性。通过这个库,开发者可以快速且可靠地实现购买验证、商品展示、交易处理等功能,而无需深入了解In-...

    WordPress for Android.zip

    2. **WordPress.IAB (In-app Billing)**:这可能表示项目集成了Google Play的内购服务。IAB(In-app Billing)是Android开发者用来在应用内销售数字商品或服务的工具。通过这个服务,开发者可以为应用添加付费内容,...

    android-billing:该库使用 OpenIAB 作为计费实现,并为带有 cardlib 的 sku 添加了通用 ui

    在Android应用开发中,内购(In-App Billing,IAB)是一项重要的功能,它允许开发者在应用内部向用户售卖虚拟商品或服务。OpenIAB(Open In-App Billing)是一个开源项目,它为Android应用提供了与Google Play Store...

    cordova-markets-iab:科尔多瓦所有市场IAB

    此插件支持IAB(In-app Billing)服务,这是Google Play中用于处理应用内购买的系统,同时也可能支持其他市场平台的类似服务。 为了实现这个功能,插件的核心是基于Java的后端,因为Java是Android开发的基础语言。...

    Google Play应用内结算演示应用

    提供的**Google-Play-In-App-Billing-Demo-App.pdf**文档可能是对整个示例应用的详细指南,包括步骤解释、截图和最佳实践。而**TestInAppBilling_src.zip**则包含了源代码,开发者可以直接下载、编译并运行来亲身...

    icehx-openiab:OpenIAB 的 Openfl 扩展 - 打开应用内计费。 http

    在移动应用开发领域,应用内计费(In-App Billing,IAB)是一种常见的商业模式,它允许用户在应用内部购买虚拟商品或服务。OpenIAB(Open In-App Billing)是一个开源项目,旨在为Android开发者提供一个统一的接口来...

    IInAppBillingService.zip

    Google Play 是全球最大的 Android 应用市场,为开发者提供了丰富的功能,其中之一就是应用内支付(In-App Billing, IAB)服务。IInAppBillingService.zip 文件正是与这个服务相关的,其中包含了 ...

    go-iap:go-iap通过AppStore,GooglePlayStore,AmazonAppStore和Huawei HMS验证购买收据

    闲聊 go-iap通过AppStore,GooglePlayStore或Amazon AppStore验证购买​​收据。 当前的API文档: 应用商店: GooglePlay: 亚马逊应用商店: 华为HMS:安装go get github....

    billingx,扩展到计费支持库以支持调试生成。.zip

    在深入 BillingX 的功能之前,让我们了解一下应用内购买(In-App Billing, IAB)的基本概念。IAB 允许用户在应用程序内部购买虚拟商品或服务,如游戏内的道具、高级功能解锁等。Google Play 提供了一个官方的 IAB ...

    SpriteBuilderGoogleIABSample

    此示例的目的是为 SpriteBuilder 开发人员提供一种从 Objective-C 使用 Google In App Billing 的清晰方法 ###先决条件: 下载 SpriteBuilder 安装 SpriteBuilder Android 插件(重要提示:这仅适用于插件的独立...

    Android-InAppBilling-TrivialDrive:Google在Android中实现应用内结算的示例应用

    在移动应用开发领域,应用内购买(In-App Billing, IAB)已经成为许多开发者的重要收入来源,尤其是对于游戏和增值服务应用而言。Google为Android平台提供了官方的InAppBilling服务,而TrivialDrive则是Google为...

Global site tag (gtag.js) - Google Analytics