最近项目中使用到了google 支付,总结以下:
一般将自己的产品上传到google paly 上后大概需要2-3小时后才能生效
而且 提供给了接口,可以查询与应用程序相关的APP产品细节。
获取产品详细信息,调用 queryInventoryAsync(boolean, List, QueryInventoryFinishedListener) 方法在iabHelper实例中。
queryInventoryAsync(boolean, List, QueryInventoryFinishedListener):
参数1:boolean,表示的是是否检索产品细节
参数2:List,是由一个或更多的产品ID(也叫SKU)的产品,你想查询。
参数3:queryinventoryfinishedlistener,该参数指定侦听器收到通知时,查询操作完成和处理查询的响应。
例如:
查询两个产品ID的细节sku_apple、sku_banana
List additionalSkuList = new List();
additionalSkuList.add(SKU_APPLE);
additionalSkuList.add(SKU_BANANA);
mHelper.queryInventoryAsync(true, additionalSkuList, mQueryFinishedListener);
如果查询成功,将查询结果放入到List中,
那么如何在结果集中检索详细信息,例如:项目价格
IabHelper.QueryInventoryFinishedListener
mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory)
{
//如果检索失败
if (result.isFailure()) {
// handle error
//做出相应的处理
return;
}
//获取到了相应的产品价格
String applePrice = inventory.getSkuDetails(SKU_APPLE).getPrice();
String bananaPrice = inventory.getSkuDetails(SKU_BANANA).getPrice();
//根据查询到的结果改变UI
// update the UI
}
}
购买物品
在应用程序中启动一个购买请求,调用launchPurchaseFlow(Activity, String, int, OnIabPurchaseFinishedListener, String) 方法在iabHelper实例中
第二个参数:产品ID(又称SKU)的项目购买,这里你必须保证你提交的产品ID是和控制台是一致的。
第三个参数:请求码,可以是任意的正数
第四个参数:一个监听器,通知购买时操作已完成,处理购买响应从google paly 中。
第五个参数:该参数包含一个“开发者有效载荷”字符串,你可以使用传送命令的补充信息(也可以是空字符串)。通常,这是用来在一个字符串标记唯一标识该购买请求通过。
如果你指定一个字符串值,google Play返回这个字符串随着购买响应。随后,当你做出这个购买查询,google Play返回这个字符串一起购买详情。
例如: mHelper.launchPurchaseFlow(this, SKU_GAS, 10001,
mPurchaseFinishedListener, "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ");
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ: 是一个为唯一值就行。 一般可以直接写成:getPackageName() + String.valueOf(System.currentTimeMillis();
各位看了以上还未清楚可以访问下面参考网址再学习
http://developer.android.com/intl/zh-cn/google/play/billing/billing_integrate.html
http://developer.android.com/intl/zh-cn/training/in-app-billing/preparing-iab-app.html#GetSample