google in-app billing(转)

转自:http://www.w3c.com.cn/google-in-app-billing

google iab 充值开发流程!
以下是google iab的交互流程
google in-app billing(转)_第1张图片
在开发开始之前,首先要确定的是你是否已经在google player的里发布了商品,并确定是否通过!

第二,确定是否已经开放了该区域的应用或游戏下载(比如在台湾区,把google player设为台湾区,如果可以直接在市场上搜到即可!)
第三,这是要注意的,在和谐社会里的应用或游戏是不能用google player的,但在国内使用其它地区的就可以付费。所以如果我们要测试的话,要准备好一张非大陆地区的信用卡或银行卡!
确定上面的条件后,我们就可以正式开发啦!
首先,下载google iab;
如果已经下载过了,那就可以跳过此步骤!
google in-app billing(转)_第2张图片下载完成以后,你在 /extras/google/market_billing/目录下会找到以下的文件夹 google in-app billing(转)_第3张图片,该目录下有v2和v3两个version,两个是有区别,并不是说v3就比v2好,这要视情况而定,具体可以参考官方文档 http://developer.android.com/google/play/billing/billing_overview.html
第二步:配置google iab环境。

添加 IMarketBillingService.aidl 文件到你的工程,操作如下:

  1. 在你的程序的 /src 目录下创建以下目录,最好是通过包的形势创建:

    com/android/vending/billing/

  2. 把 IMarketBillingService.aidl 文件复制到你的工程 /src/com/android/vending/billing/目录下.
  3. 重新build一下你的工程.
当你build完成以后,你会发现一个  IMarketBillingService.java  在你的工程的  gen  目录下!
当代码配置上去后,我们开始添加一些权限之类的东西到Manifest
  android:name = “com.android.vending.BILLING”  />
标签里添加
android:name="BillingService"/>

    android:name="BillingReceiver"]]
>

      
        android:name="com.android.vending.billing.IN_APP_NOTIFY"/>
        android:name="com.android.vending.billing.RESPONSE_CODE"/>
        android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED"/>
      

    
当然,还有一些网络之类的权限,我就不一一说明了!
第三步:使用;
全面点的使用方法,在官方文档里有很详细的说明,我就不多此一举了!我直接说快速使用吧!我也是被公司逼的!具体如下!
先来看一下官方给的v2的demo结构吧(我现在主要是以v2为主,关于v3的话,要使用就更为简单了,这个以后再说!)
File Description
IMarketBillingService.aidl Android Interface Definition Library (AIDL) 文件定义了有关google iab服务相关的 IPC  (MarketBillingService).
Dungeons.java 这个是官方给的demo mainActivity,(我们要改动的地方啦)
PurchaseDatabase.java 保存本地的购买数据!(我现在没有使用这个东西)
BillingReceiver.java  BroadcastReceiver这个是用来接收购买广播的,与其相关的是BillingService.
BillingService.java  Service 这个是用来绑定到MarketBillingService的.只有绑定后,我们才能发起购买,所以我们手机里必须要安装google player和能正常运行google Player.
ResponseHandler.java  Handler 这个类包含了许多购买相关的数据,和用来更新ui的方法;
PurchaseObserver.java 购买状态更改后的相关
Security.java 购买发起后,对数据的较验,最好是放在服务器端进行,这样更为安全
Consts.java 定义了一些宏,具体就自己去看文档去!
Base64.java and Base64DecoderException.java google 给出的加密类!
现在可以开始coding了!我们先把 Dungeons.java里的代码考贝一份到你工程的其中一个activity里,我是放到了第一个avtivity里,因为我是用c++开发的,所以我可能和你们有点不同!,在合并两个activity时,记得要注意一些重复的方法哦,我们只需要把重复的方法代码合并就行!去除或更改一些ui更新相关的的error后,项目基本是能运行起来的了!(注意:代码里的几个方法是我们在做测试时要去掉的!比如要我们填入key呀之类的,这些最好是放到服务器去处理,我们在代码里就乱填就行了!还要就是一些check检查,在大陆这个和谐社会里,你懂的!)
第四步:这也是最重要的一步了;
如果前面的都搞定那些error的话,能运行起来,那就行了!不信的话,你可以别期它地区的人来测一下!
每当我们发起购买后,拿到google player里的我们商品的数据时,我们在 Security.java里的 public static ArrayList verifyPurchase(String signedData,

String signature) 方法里获取到相关的数据,就是其中的signedData和signature,signedData是json格式的数据,里面有的是一些商品信息,signature就是我们要用公钥去较验的,匹配的话,我们才发起付费,如果不匹配还发起付费,后果我还真的不知道。

所以我们要在该方法的 if (!TextUtils.isEmpty(signature)) 在域里添加我们的验证,要发服务器呀之类的神马!
第五步:已经完了,没有啦!去测试去吧!

你可能感兴趣的:(google in-app billing(转))