原文链接:http://developer.android.com/guide/google/play/billing/billing_admin.html
编辑者:兲烺
完成时间:2012.8.10
目录[隐藏] |
应用程序付费机制管理
应用程序付费机制管理能使你从处理经济业务中解放出来,但是你仍然需要做一些管理任务,包括建立和维持你的产品清单在你的发布站点上,注册测试账户,需要的时候处理退款事件。
你必须有Google发布者帐号来注册测试帐号。同时你必须有Google Wallet merchant帐户来创建产品列表和退款问题。如果你已经有一个发布者帐号在Google Play上,你就能使用你当前的帐号。你不必再去注册一个新的帐号来支持应用程序付费机制管理。如果你没有发布者帐号,你可以注册成为一个GooglePlay开发者并且在GooglePlay publisher site上建立一发布者账户。如果你没有Google Wallet merchant的帐号,你可以在Google Wallet site上注册一个。
建立产品列表
Google Play发布者网站提供你的每一个发布的应用的产品列表。你要销售的应用程序内商品只能来自这张列表上的商品。每个应用程序都有自己的列表清单,你不能销售你的应用中的商品到其他的产品列表。
你可以通过点击In-APP Products 链接,进入应用程序产品目录,根据你的发布者帐号列出应用程序(见图1)。只要你有Google Wallet merchant帐户并且你的应用程序的manifest包含com.android.vending.BILLING权限。
图1:你可以通过点击In-App Products 链接进入应用程序产品列表
一个产品列表指定的商品是你要销售的应用程序-应用程序的产品,订阅,或者是两者都有。对了每个商品,产品列表包含他们的一些信息,如产品ID,产品的描述,和价格(看图2)。产品列表只存储你的销售的应用程序的元数据。它不存储任何数字的内容。存储和传送应用中的数字内容是你的责任。
图2:应用程序的产品列表
你可以为你已经发布的应用程序和已经上传并且已经存储在Googl Play网站上的草稿型程序创建产品列表。然而,你必须要有一个Google Wallet merchant帐户,并且你的应用程序的manifest文件必须包含com.android.vending,BILLING权限。如果应用程序的manifest文件没有包含这个权限,你能够编辑在产品列表中已经存在的产品,但是你不能添加新的产品到列表中。了解更多的信息关于这个权限,请看Updating Your Application's Manifest.
另外,应用程序的套件只能有一个产品列表。如果你为一个应用程序创建一个产品列表,并且使用multiple APK feature来分配超过一个APK给你的应用程序,产品列表接受的是来自各种版本的所有连结。你无法替你的各个版本的APK建立特定的产品列表。
你有两种方法来为你的产品列表添加商品:你可以一次上传一个通过使用In –app Products 用户界面(看图3),或者通过CSV文件导入商品(看图2)。如果你的应用只有很少的商品,如果你只是想为了测试而导入很少的商品到产品列表,那么你可以一次添加一个是个很有效的方法。如果你的应用有大量的商品,使用CSV文件添加很有用。
一次添加一个商品到产品列表
使用In-app Prouducts 用户界面添加商品,遵循这些步骤:
1.登录你的发布者帐号。
2.进入GooglePlay的列表界面,在应用名字的下面,点击In-app Products。
3.在应用产品列表页,点击添加应用
4.在创建新应用程序页面(见图3),提供你卖的商品的细节,然后点击保存或者发布按钮
图3:这个创建新应用程序页面,能让你在产品列表中增加商品。
你必须在产品列表中为你的项目输入下面的信息:
- 产品编号
产品编号是唯一的跨应用程序的命名空间。一个产品编号必须以小写字母或是数字开头,只能由小写字母(a-z),数字(0-9),下划线(_)和小数点(.)。产品编号“android.test”保留的,因为所有的产品编号都是以“android.test.”开头的。
另外,当你的产品编号产生后你不能修改的它,并且你不能在次使用这个相同名字的产品编号。
- 购买类型
购买类型可以管理每个用户帐户,非托管或认购。购买类型设置后,你就不能修改了。欲了解更多信息,请参阅稍后在本文档中选择购买类型的文章
- 发布状态
一个商品的发布状态可以是已经发布或是没有发布。用户在检验的时候可以看到这个商品的发布状态,这个商品的状态被设置成了已发布,那么这个商品一定在Google Play上发布了。
- 语言
语言设置决定了在付费期间哪种语言能显示商品的标题和商品的描述。一个产品列表会继承默认的语言来自它的父应用程序。你可以增加更多的语言通过点击add language。你也可以选择让商品的标题和描述来自默认的语言自动翻译,通过选择Fill fields with auto translation 检查框(见图4)。如果你没有使用自动翻译功能,那么你必须提供商品标题和描述的版本信息。
- 标题
标题是对商品的简短描述。例如,“睡觉药剂”。标题必须是独特的,跨应用程序的命名空间。每个商品必须有一个标题。用户在付费的时候商品的标题是可见的。为了得到最适宜的外观,标题应该不超过25个字;而且,标题有55个字的长度限制。
- 描述
描述是介绍商品的长字串。例如,“此物品会马上让动物睡着,但无法对生气的小精灵起作用。”。每个商品必须有一个描述。用户在付费的时候描述是可见的。描述有80个字的长度限制。
- 价格
你必须使用你自己国家的汇率来提供一个默认的价格。你也可以使用其他的汇率来计算你的商品价格,但这么做只会发生在如果那个国家是你应用的主要市场。你可以在GooglePlay市场的开发人员控制里的编辑应用页面去指定销售的目标国家。如果要指定成其它汇率,你也可以手动的方式输入每个国家汇率而订的价格也可以点击自动填入的方式,让Google Play从你的国家汇率自动转成其他国家的汇率(见图4)。
图4.替每个商品的标题和描述指定其它的汇率和其它的语言。
了解更多信息关于产品编号和产品列表,请看Creating In-App Product IDs。了解更多的信息关于价格,请看 In-App Billing Pricing。
增加批量商品到产品列表
使用CSV文件增加批量商品到产品列表,你首先需要创建你的CSV文件。CSV里的资料呈现方式就如同你在产品使用页面以手动方式新增商品一样。(见 一次添加一个商品到产品列表)。CSV文件使用逗号(,)和分号(;)来分隔资料。逗号用来分隔主要资料的值,而分号用来分隔资料。举例,一个CSV文件里的语法应该像下面的这样子:
"product_id","publish_state","purchase_type","autotranslate","locale;title;description","autofill","country; price"
底下是描述和使用方式:
- 产品ID
这个值如果应用商品使用页面里产品ID设定值。如果产品列表里已经有这个产品ID,而且当你进入CSV你想覆盖商品使用页面里的产品ID的话,这个值就会被你CSV里所指定的新资料取代。覆盖的状况不会发生CSV里没有重复的产品ID的情形下。
- 发布日期
这个值等同于应用商品页面的发布状态设定,一样可以设定成已发布或未发布的状态。
- 支付类型
这个值等同于应用商品页面的购买状态设定值。使用帐号做管理的值是managed_by_android,不受管理的值是managed_by_publisher。
- 自动翻译
这个值等同于应用商品使用界面选择了自动翻译并填入选项的功能,可以是true,也可以是false。
- 地域
这个值等同于应用商品使用界面的语言设定。你必须设定一个预设的地域,而且预设的地域要也要设置在第1位,而且包含标题和描述。
如果你想要将自动翻译设置为预设值,你就必须使用底下的语法规则:
如果自动翻译设置这true,你必须指定预设的地域,预设的标题,预设的描述以及其他地域的使用格式:"true,"default_locale; default_locale_title; default_locale_description;locale_2; locale_3, ..."
如果自动翻译设置成false,你必须指定预设的地域,预设的标题,预设的描述,以及翻译过的标题,描述,并使用底下格式:"false,"default_locale; default_locale_title; default_locale_description;locale_2; locale_2_title; local_2_description; locale_3; locale_3_title;locale_3_description; ..."
请见表1列出的你可以使用的语言代码和语言值
- 标题
这个值等同于应用商品页面里的标题设定。如果标题包含分号,就必须加上反斜线加以区分(如:“\\“)。
- 描述
这个值等同于应用商品页面里的描述值。如果描述值包含分号,就必须加以反斜线加以区分如(:“\\“)。如果含的是反斜线,就再加上发斜线来区分。如(:“\\”)。
- 自动填入
这个值等同于应用商品页面里的自动填入。可以设置为true或false。若要指定不同的国家或价格完全取决于您的是否设定自动填入。
如果自定填入被设置为true,你就需要指定一个一依你国家汇率设定出来的价格,并使用下面的语法:
"true","default_price_in_home_currency"如果自动填入被设置为false,你就需要每个国家依不同的汇率来决定价格,并使用底下语法:
"false", "home_country; default_price_in_home_currency; country_2;country_2_price;country_3; country_3_price; ..."
- 国家
你指定价格的国家,你可以设定你想要销售的目标国家。国家代码是大写的2个字(ISO国码,像是“US”),这个国码是被ISO 3166-2完善和规范的格式。
- 价格
这个值等同于应用商品使用界面的价格。必须指定为微量单位(micro-units)。若需要将下面的汇率换成微量单位,请乘上1,000,000。假如你想要销售的商品价格为美金$1.99,这个值就是1990000。
表1.地区栏里你可以使用的语言代码
Language | Code | Language | Code |
---|---|---|---|
Chinese | zh_TW | Italian | it_IT |
Czech | cs_CZ | Japanese | ja_JP |
Danish | da_DK | Korean | ko_KR |
Duth | nl_NL | Norwegian | no_NO |
English | en_US | Polish | pl_PL |
French | fr_FR | Portuguese | pt_PT |
Finnish | fi_FI | Russian | ru_RU |
German | de_DE | Spanish | es_ES |
Hebrew | iw_IL | Swedish | sv_SE |
Hindi | hi_IN | -- | -- |
为了导入这些指定的元素到你的CSV文件中,做下面的步骤:
1.登录你的发布者帐号。
2.在GooglePlay列表面板,在应用名字的下面,点击In-app Products。
3.在In-app Products 应用列表页面,点击选择文件,选中你的CSV文件。
CSV文件必须在你本地的电脑上或者是在连接到你的电脑上的本地硬盘上。
4.如果你想要覆盖已存在在您的产品列表中的商品,请选择覆盖选项。这个覆盖时机是在当应用产品列表的某些产品ID和CSV文件里面的product_id相同时。所谓的覆盖不会删除存在在产品列表而没有存在在CSV文件的商品。
5.在In-app Products 列表页面,点击Import from CSV。
你可以使用应用商品列表产品列表的移送到CSV功能将已有的产品列表移送到CSV中。如果你已经手动添加商品到商品列表,然后你想要开始通过CSV管理你的产品项目时,这个方法会很有用。
选择商品的购买类型
商品的购买类型能控制GooglePlay以何种方式管理商品的购买行为。这里有2中购买类型,分别为:受管理(使用帐号)和不受管理。经常使用帐户管理的商品只能被每位使用者购买一次。当商品在这种状态下,GooglePlay会以每个使用者当基础来替每件商品储存交易资讯,而且会被永久储存。这种商品能让你可以透过发出RESTORE_TRANSACTIONS请求来跟GoolgePlay查询,并且能针对特定的使用者(再次安装应用时)还原该商品为已购买的状态。
如果使用者试图购买一件被管理的商品,但是该商品他早就买过了,GooglePlay就会显示出“商品已经买过了”的错误讯息。这个讯息会在当GooglePlay要在付费页面显示价格和商品描述资讯的付费流程中发生。当使用没有看到这个错误讯息时,付费页面却消失了,页面返回到你的应用的使用页面,这种情况下,最好的方式我们认为:你的应用根本不应该让使用者看到该错误讯息,示范程序有说明你可以如何做到被管理类型的商品做出商品追踪,并且直接将购买过的商品在应用列表里隐藏。你现在的应用也应该如此。将那些已经销售过的商品反灰或隐藏、甚至设成无法被点选的状态。
如果你现在要销售的是游戏等级或是应用程序的特殊功能,“被使用帐户管理”的类型商品是很有用的。这些商品不会被传送、而且通常需要被还原,无论是使用者再度安装你的应用、或者使用者清楚了他们的装置资料、甚至是在新的装置上安装你的应用时,都很有用的。
“不被管理的商品”,他们的交易资讯不会被存储在GooglePlay里。这意味你无法针对购买商品类型设定为“不被管理”的商品,想GooglePlay做查询交易资讯的动作。此时,这些不被管理商品的交易资讯,管理责任就落在了你的手上了。而且,不被管理的商品可以为无限次购买,完全交在你的手上。
如果你销售的是消费型商品,像是燃料或者是魔法法术,“不被管理”的商品类型就变得很有用了。这些商品都是在你的应用里的消耗型商品,而且通常会被购买多次。
退费的处理
应用程序付费机制管理不允许使用者发送退费请求到GooglePlay。应用程序内的商品的退费完全主导在你(APP的开发者)。你可以通过你的Google Checkout merchant帐号来处理退费流程。当你执行了商品退费,GooglePlay就会收到从Google Checkout传来的退费通知,接着GooglePlay就会发送商品退费的讯息给使用者的APP。更多信息请看 Handling IN_APP_NOTIFY messages和In-app Billing Pricing这两篇文章。
设定测试帐户
GooglePlay发布网站能让你可以建立一个或多个测试帐号。一个测试帐号是一个标准的Google帐号,这个帐号是你在发布者站点上注册的测试帐号。测试帐号是被认证的,因此你可以通过上传却未发布的APP来做出购买请求。
你可以使用任何的Google帐户来当测试帐户。如果你想要让更多个人测试你app的应用程序付费机制,而你不需要把你的发布网站的登入帐户给他们来使用时,测试帐户就变得很有用了。如果你想要自己拥有也控制测试帐户,你可以自己建立帐户,并且将这组帐户设成开发者帐户或测试者帐户。
测试帐户有下面三种限制:
- 测试帐户的使用者只能在已经上传到你发布帐户的APP做购买请求。(即使应用程序不需要被发布出去)。
- 测试帐户只能支付在应用产品列表的商品(并且已经发布)。
- 测试帐户的使用者无法存取你的发布帐户,也无法上传应用到你的发布帐户里。
增加测试帐户到你的发布帐户里,遵循下面的步骤:
1.登录你的发布帐户。2.在页面的上方的左侧,你的名字底下,点击Edit profile。3.在测试帐户中,为你想要的注册的测试帐户添加邮箱地址,多个帐户使用逗号隔开。4.点击Save来保存你的内容更改。
图5.这是帐户中编辑个人资料里的授权和应用程序内结账区域,你可以在这里注册测试帐号。
在哪里寻求支援
如果你在操作应用程序付费机制管理时遇到问题和困难,可以联系表格中列出的支援的资源列表(见表2)。依你的需求寻求合适的论坛,你可以更快速地获得你所需要的支援。
表2.GooglePlay应用程序付费机制管理开发者支持的资源。
支援的形态 | 开发与测试问题 | 主题范围 |
---|---|---|
开发和测试问题 | Google Groups: android-developers | 应用程序付费机制的整合问题、使用者经验、 处理回应、模糊程式码、内部进程的沟通、测试环境的设定。 |
| ||
账单问题追踪 | 关于应用程序付费机制的Bug和问题会报 |
想要了解如何发文到上面的论坛的基本资讯。请见资源栏里的Developer Forums文章。
转自http://wiki.eoeandroid.com/Administering_In-app_Billing