这个文档讲解了In-app Billing的基础构成和功能,为了能够把In-app Billing功能添加到你的程序中,你需要很好的理解这些内容。

注意: 保证你的应用遵从发布地国家的相关法律. 举例说, 在欧盟这些国家, 依据 Unfair Commercial Practices Directive 法律法规禁止直接向儿童推荐购买广告商品,还有劝说他们的父母或者其他成年人给儿童购买这些广告商品。 想了解更多这个以及其他方面的东西可以参考 position of the EU consumer protection authorities 。

In-app Billing API


你的应用通过安装在设备上的Google Play程序提供的API来接入In-app Billing服务。Google Play程序传递你的应用与Google Play 服务器之间的购买请求和回应。 实际上,你的应用从来都不会直接和Google Play服务器通信。你的应用程序不需要管理它与Google Play 服务器之间任何网络连接,而是通过进程间通信(IPC)来向Google Play程序发送billing请求以及收到回应。

只有通过Google Play发布的应用才可以实现In-app Billing。为了完成in-app购买请求,Google Play程序必须能够通过网络来接入Google Play服务器。

In-app billing 版本3是最新的版本并且对许多Android设备保持了广泛的兼容。运行Android 2.2及以上版本系统并且装有最新Google Play 商店的设备(a vast majority 激活设备)都支持 In-app Billing Version 3 。

版本3功能特点

  • 通过简化的API来发送请求,可以让你容易地从Google Play获取商品详细信息,in-app商品订单,还可以根据用户拥有的商品快速存储物品。注1
  • 在购买完成后订单信息会同步传送到设备。
  • 所有的购买都是“受管理的”(即,Google Play保持追踪in-app商品的用户所有权). 用户不可以拥有多个同样的in-app物品;在任何时候用户只能拥有一个商品。注2
  • 购买的物品可以被消耗。 当消耗后,这个物品恢复到“未拥有”状态并且可以再次从Google Play购买。
  • 提供对订阅商品 subscriptions 的支持。

关于其他版本In-app Billing的详细情况,可以参考 Version Notes.

In-app 商品


In-app商品是你程序内部提供来卖给用户的数字商品。举例来说,数字商品包括游戏内流通的货币,增强用户体验的应用功能升级以及你应用的新内容。

你用In-app Billing只能卖数字内容,不能卖其他实体物品,个人服务,或者其他任何需要物理运输的东西。不像收费应用,一旦用户购买了in-app 商品,程序内不会出现退款窗口。

Google Play不提供任何形式的内容交付,你负责来交付你应用内售卖的数字内容。In-app商品通常明确关联一个且只有一个应用。换句话说,就是一个应用程序不可以购买发布在其他应用程序上的In-app商品,即使他们都来自同一个开发者。

商品类型

支持多种商品类型,对于你程序如何赚钱方面提供了很大灵活。在任何情况下,你都需要在Google Play 开发者控制台(Google Play Developer Console)设置你的商品。

对于你的In-app Billing程序,你可以指定一下类型的商品 — 受管理的 in-app 商品和订阅商品(managed in-app products and subscriptions)。Google Play 处理和跟踪每个用户账号对于你程序上的in-app商品和订阅商品的所有权. 了解更多In-app Billing Version 3 支持的商品类型.

Google Play开发者控制台


你可以在开发者控制台发布你的In-app Billing应用,还可以管理你程序中各种可购买的商品。

你可以创建一个关联你应用的商品列表,包括可一次性购买的物品以及可多次购买的订阅商品。 对于每个物品,你都可以定义像物品唯一的商品ID(也称为SKU),商品类型,价格,描述以及Google Play如何处理和追踪商品的购买等此类的信息。

你也可以创建一个测试账号,可以授权这个测试账号进入你未发布的应用。

想知道如何使用开发者控制台配置你的in-app商品和商品列表,参见 Administering In-app Billing.

Google Play 购买流程


Google Play 使用的结算后端服务和应用购买一样,所以在购买流程上会保持一致和熟悉的用户体验。

重要:  在Google Play上使用In-app Billing服务,需要谷歌支付账户(Google payments merchant account).

在初始化购买时,你的应用会为一个指定的in-app商品发送一个billing请求。 Google Play 随后会处理交易的所有结算细节,包括请求和确认支付的方式,金融交易的处理。

When the checkout process is complete, 当结算处理完毕,Google Play 会向你的应用发送购买详情,例如订单号码,订单日期和时间以及支付价格。你的应用程序完全不需要去处理任何金融交易,这些事Google Play都帮你做了。

例子


为了帮助你集成In-app到你的应用中,Android SDK 提供了一个示例程序,演示了如何在一个应用里卖in-app商品和订阅商品。

TrivialDrive sample for the Version 3 API 例子演示了如何使用In-app Billing Version 3为一个开车游戏实现了in-app商品和订阅商品的购买。这个应用展示了如何发送In-app Billing请求以及处理来自Google Play的同步回应。这个应用也演示了如何使用API来记录物品的消耗。这个使用版本3的例子包括方便好用的类用来处理In-app Billing操作,还写了自动签名认证。注3

推荐: 发布应用前最好混淆你的代码. 更多信息参考 Security and Design.

迁移考虑


In-app Billing Version 2 API 不推荐使用了并且将在2015年一月终止运行。(译者注:现在已经7月,很早就停了,官方这个教程还没更新)  如果目前有使用V2版本实现In-app或者更早版本的,必须要迁移到V3 In-app Billing Version 3.

如果已经发布了销售内购商品的应用,请注意:

  • 你先前在开发者控制台设置的受管理的物品和订阅商品,在使用V3支付后会和先前一样,无需改变。
  • 当你使用V3支付在现有程序中购买不受管理物品时,这些商品会被当做受管理商品,你不必为这些商品在开发者控制台创建新的商品,你还是可以使用同样的商品ID来购买这些物品。如果你使用V2或者更早的支付来购买这些商品,他们还是会被当做不受管理的商品。

注1:原文 Requests are sent through a streamlined API that allows you to easily request product details from Google Play, order in-app products, and quickly restore items based on users' product ownership 这句翻译的感觉很不好,请指导。

注2:原文 The user cannot own multiple copies of an in-app item; only one copy can be owned at any point in time 如何翻译

注3:原文 The Version 3 sample includes convenience classes for processing In-app Billing operations as well as perform automatic signature verification.

先翻译两篇试试,重头戏在后面~~~~~

In-app Billing 概述的更多相关文章

  1. 移动 APP 网络优化概述

    一般开发一个 APP,会直接调用系统提供的网络请求接口去服务端请求数据,再针对返回的数据进行一些处理,或者使用AFNetworking/OKHttp这样的网络库,管理好请求线程和队列,再自动做一些数据 ...

  2. SharePoint 2013 App 开发—App开发概述

    基于安全性的考虑,SharePoint App 不能像其它两种方式一样,直接使用安全性更高的服务端代码的API.Javascript 扮演极为重要的角色,在SharePoint App中与ShareP ...

  3. [App Store Connect帮助]八、维护您的 App(1)App 维护概述

    您在 App Store 上发行 App 后,需要执行一些任务来回复顾客反馈并在整个产品周期内维护您的 App.您可以按任何顺序执行这些任务. 监控顾客评论.销售情况和分析 您可以在 App 页面的“ ...

  4. [App Store Connect帮助]三、管理 App 和版本(6.1)转让 App:App 转让概述

    当您将某个 App 出售给其他开发者,或想要将其移至其他 App Store Connect 帐户或组织时,您需要转让该 App. 您无需将 App 从 App Store 下架,即可将其所有权转让给 ...

  5. iOS APP开发概述----学习笔记001

    之前开发过一些Android APP,如今開始学习iOS开发,未来实际工作应该会用到.未雨绸缪. 一.了解其系统层次架构 其系统分层四层,其具体例如以下: 第一层:Core OS watermark/ ...

  6. iOS开发之 xcode6 APP 打包提交审核详细步骤

    一. 在xcode6.1和ios10.10.1环境下实现app发布 http://blog.csdn.net/mad1989/article/details/8167529 http://jingya ...

  7. 快速构建Windows 8风格应用23-App Bar概述及使用规范

    原文:快速构建Windows 8风格应用23-App Bar概述及使用规范 本篇博文主要介绍App Bar概述.App Bar命令组织步骤.App Bar最佳实践.   App Bar概述 Windo ...

  8. Hybrid APP基础篇(一)->什么是Hybrid App

    最新更新 一个开源的快速混合开发框架:https://github.com/quickhybrid/quickhybrid Android.iOS.JS三端内容初步都已经完成,有完善的设计思路.教程以 ...

  9. Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较

    说明 Native.Hybrid.React.Web App方案的分析比较 目录 前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid Ap ...

随机推荐

  1. OAuth机制原理(开放授权机制)

    1.简述 OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全.开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是安全的. 国 ...

  2. Apache无法启动报错查看

    wampserver橙色图标 查找原因 1.测试80端口 . 如已被占用,则改别的端口在启动apache.怎么改apache的的端口去百度一下都有. 2.找到httpd.exe的目录.在cmd命令行下 ...

  3. ActiveMQ:Exception occurred while processing this request, check the log for more information!

    出现上面错误的原因有以下两种 1 jdk的版本和activemq的版本不符 安装完ActiveMQ之后,通过http://IP:8161登陆到控制台. 通过测试代码给服务端发送队列消息,在控制台点击q ...

  4. elixir二进制模式匹配

    for << << b1::size(2), b2::size(3), b3::size(3) >> <- "hello" >> ...

  5. Oracle 创建表空间和用户

    创建用户: 建立表空间和用户的步骤: 用户 建立:create user 用户名 identified by "密码"; 授权:grant create session to 用户 ...

  6. PHP之mb_strpos使用

    mb_strpos (PHP 4 >= 4.0.6, PHP 5, PHP 7) mb_strpos - Find position of first occurrence of string ...

  7. Java SE 基础知识

    常量: 常量是一种标识符,它的值在运行期间恒定不变,并且常量在程序中只能被引用,而不能被重新赋值. 常量的命名规则: 1.在 Java 中,在变量声明中加入 final 关键字代表常量,加入 stat ...

  8. 转载:怎么用eclipse开发C++程序(以后备用,待实现),使用CDT

    一:准备工作:需下载以下三个软件包 a).Eclipse 3.1 官方站点: http://www.eclipse.org 工具下载地址:http://www.eclipse.org/download ...

  9. 阿里云 ECS服务器安装流程

    1. 挂载硬盘 2. 上传文件 3 .vncserver unset DISPLAY who -u export DISPLAY= xhost + 4. java /etc/profile expor ...

  10. D的小L

    D的小L 描述  一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给匡匡出了个题目想难倒匡匡(小L很D吧),有一个数n(0<n<10),写出1 ...