创建 In-app Billing 商品
创建可供购买的 In-app Billing 商品
在你发布 In-app Billing 应用前,你需要在 Google Play 开发者控制台 定义可供购买的数字商品列表。
在 Google Play 设置你的 In-app 商品
在开发者控制台,你可以定义内购商品的商品信息并把这些商品和你应用关联起来。
在商品列表里添加新的内购商品:
- 为你的 In-app Billing 程序创建一个签名的 APK 文件。 想知道如何创建签名的 APK 文件,参考 Building Your Application for Release。确保你给程序签名使用的是最终(不是 debug key)证书和私有key。
- 在开发者控制台打开你先前创建的应用入口。注1
- 点击 APK 标签然后点击上传你的 APK 文件,最后把你已经签名的 APK 文件上传到开发者控制台。现在不要选择发布这个应用!
- 找到你上传的应用列表页,选择你要创建内购商品的那个应用,然后点击 In-app Products。
- 找到相关选项点击添加一个新商品,然后把商品需要指定的信息填完,其中有物品的唯一商品ID,描述,价格以及可销售的国家。记下商品ID,你一会儿可能需要这个去查询你应用内商品的购买详细信息。
重要: In-app Billing Version 3 服务现在只支持受管理内购商品,所以在开发者控制台当你向商品列表添加一个新商品时,要确保设置这个商品的类型为“受管理的”。
- 如果你已经完成了上面的操作,最后还要激活商品,激活后你的应用才可以购买这些商品。
提醒: It may take up to 2-3 hours after uploading the APK for Google Play to recognize your updated APK version. 在你 APK 上传到后,Google Play可能需要2-3小时来识别你更新的 APK 版本。如果你在Google Play识别完你上传的APK之前就做测试的话,你的应用会收到一个带有 “In-app Billing在当前版本应用不可用” 错误信息的 “购买取消” 回应。
查询可以购买的商品
你可以通过代码方式向Google Play查询关联你应用的商品详细信息(像商品价格,名称,描述以及类型)。 这个对你很有帮助,比如你想展示哪些用户可以购买自己未拥有的商品时就可以用到。
注意: 在使用查询时你需要使用查询商品的明确商品ID。你可以从开发者控制台通过打开你应用的 In-app Products 标签手动找到这个商品ID。这些商品ID位于 Name/ID 标签栏下。
通过 IabHelper 实例调用 queryInventoryAsync(boolean, List, QueryInventoryFinishedListener) 方法来获取商品详细信息
- 第一个输入参数的意思是是否应该获取商品详情(应该设为
true)。 - 这个
List参数由一个或多个你想查询商品的商品ID组成。 - 最后,这个
QueryInventoryFinishedListener参数指定了一个监听,当查询操作完成以及处理查询回应时这个监听收到通知。
如果你使用例子提供的便捷类的话,这些类将会处理 In-app Billing 请求的后台线程管理,这样你就可以在你程序的主线程安全地执行查询操作。
下面的代码展示了如何获取商品ID为 SKU_APPLE 和 SKU_BANANA 的两个商品的详细信息,这两个商品ID是先前在开发者控制台定义的。
List additionalSkuList = new List();
additionalSkuList.add(SKU_APPLE);
additionalSkuList.add(SKU_BANANA);
mHelper.queryInventoryAsync(true, additionalSkuList,
mQueryFinishedListener);
如果这个查询成功执行,查询结果会存到一个 Inventory 对象中,这个对象会回传给先前传入的监听。
下面的代码展示了如何从查询结果中获取商品价格。
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(); // update the UI
}
}
创建 In-app Billing 商品的更多相关文章
- 购买 In-app Billing 商品
购买 In-app Billing 商品 一旦你的应用连接上了 Google Play,你就可以初始化内购商品的购买请求了.Google Play 提供了结算接口,可以让用户进入使用他们的支付方式,所 ...
- 利用spring boot创建java app
利用spring boot创建java app 背景 在使用spring框架开发的过程中,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置和复杂的bean依赖关系,特别是在使用mvc的时候各 ...
- WeX5学习笔记-创建本地APP相关问题
1.在Native新建[创建本地APP]时, "服务地址”为本地IP和端口号,例如本地IP为192.168.253.1,端口号为8080,则设置为http://192.168.253.1:8 ...
- 用PhpStorm IDE创建GG App Engine PHP应用教程
在上一篇教程里我们已经介绍了如何为PhpStorm搭建软件环境,那么今天就该是正式的开始创建App了: 3.创建首个Google App Engine PHP Application 现在我们就可以开 ...
- iOS 10 创建iMessage App
原文作者 澳大利亚19岁少年--Davis Allie ----原文地址 时值中秋佳节, 送给出门在外的程序猿们 ! 骚年们, 自己写个表情包斗图可否 ! 斗-seal.svg.png 第一. 介绍 ...
- 根据iOS 10 的新特性,创建iMessage App,可用于自定义表情
第一. 介绍(原文作者 澳大利亚19岁少年--Davis Allie ----原文地址) 随着iOS10的发布,苹果对开发者开放了Messages应用程序,开发人员现在可以创建他们自己的各种类型 并且 ...
- react系列笔记1 用npx npm命令创建react app
react系列笔记1 用npx npm命令创建react app create-react-app my-app是开始构建新的 React 单页应用程序的最佳方式.它已经为你设置好了开发环境,以便您可 ...
- 第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表、课程章节表、课程视频表、课程资源表
第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表.课程章节表.课程视频表.课程资源表 创建名称为app_courses的 ...
- 第三百七十三节,Django+Xadmin打造上线标准的在线教育平台—创建用户app,在models.py文件生成3张表,用户表、验证码表、轮播图表
第三百七十三节,Django+Xadmin打造上线标准的在线教育平台—创建用户app,在models.py文件生成3张表,用户表.验证码表.轮播图表 创建Django项目 项目 settings.py ...
随机推荐
- Chrome DevTools的15个使用技巧(译)
谷歌浏览器如今是Web开发者们所使用的最流行的网页浏览器.伴随每六个星期一次的发布周期和不断扩大的强大的开发功能,Chrome变成了一个必须掌握的工具.大多数前端开发者可能熟悉关于chorme的许多特 ...
- 解决Ubuntu系统的每次开机重启后,resolv.conf清空的问题和DNS域名解析问题(图文详解)
不多说,直接上干货! 问题情况描述如下: 普及知识: /etc/resolv.conf ,其实是一个Link .它其实指向的是 /run/resolvconf/resolv.conf. Ubun ...
- Chapter 3. Lexical Structure
/** * Expression = Expression1 [ExpressionRest] * ExpressionRest = [AssignmentOperator Expression1] ...
- 关于Input输入框蓝色外框的操作
1.去掉input外框的css: input { outline : none; //去掉外框 //outline:medium; } input:focus { outline : none; } ...
- angular2自学笔记(二)---路由、服务等八大主要构造块
angular的思想:总是把数据访问工作委托给一个支持性服务类. Angular 应用的:用 Angular 扩展语法编写 HTML 模板, 用组件类管理这些模板,用服务添加应用逻辑, 用模块打包发布 ...
- Spring MVC 数据绑定流程分析
1. 数据绑定流程原理★ ① Spring MVC 主框架将 ServletRequest 对象及目标方法的入参实例传递给 WebDataBinderFactory 实例,以创建 Data ...
- 转换json和字符串的一些方法
将字符串转换成json对象的方法: var str = '{"name1":"value1","name2":"value2&qu ...
- unity TileMap 简述
主要工具 说明 更多说明 Sprite 精灵,纹理的容器. 大型纹理图集可以转为精灵图集(Sprite Sheet). Tile 瓦片,包含一个精灵,以及两个属性,颜色和碰撞体类型. Tilema ...
- SQL Server 两个时间段的差and时间截取到时分
/*--------------------------时间截取到时分-----------------------------------*/ ), ),)--返回2017-11-24 19:25 ...
- C# XML创建解析、XML格式化
导入命名空间: VS需要在项目中添加引用system.XML; 代码中添加 using System.XML和using System.IO; XML范例: <?xml version=&quo ...