Testing In-app Billing(转)

原文地址: http://docs.eoeandroid.com/guide/google/play/billing/billing_testing.html
译者:十旋转45度
更新时间:2012年9月12日

目录

 [隐藏
内部付费机制概述 - Overview of In-app Billing
内部付费机制的实现 - Implementing In-app Billing
设计与安全 - Security and Design
应用程序付费机制管理 - Administering In-app Billing
内部付费机制参考 - In-app Billing Reference

下载应用样例

测试应用的内部付费机制

Google Play发布网站提供一系列工具可帮助你在应用程序发布前对其内部付费接口进行测试。利用这些工具可以创建测试帐户并购买测试用的预留商品,购买行为将会给您的应用发送静态付费响应[static billing responses]。

要想测试某应用程序的内部付费机制,你必须先将应用安装到Android设备上,Android模拟器是无法进行内部付费机制测试的。用于测试的设备必须运行Android 1.6或以上(API level 4以上)的标准版本,并已安装最新版的Google Play应用。若设备运行的Google Play应用不是最新版,那你的测试应用将无法给Google Play应用发送付费请求。欲知开发Android应用程序要对设备如何设置,请参阅设备硬件的使用

下一节介绍,如何设置并使用测试应用程序内部付费机制的工具。


利用静态响应对应用的内部购买行为进行测试

建议先用Google Play发出的静态响应测试应用的内部付费接口。这保证了应用程序能正确处理Google Play的响应,保证了应用程序能够正确地验证签名。

要想用静态响应来进行测试,你要利用带有预留商品ID的物品先创建内部付费请求。每个预留商品ID会返回一条发自Google Play的一条特定静态响应。利用预留商品ID创建的内部付费请求是不会真正扣费的,于是也就无法指定付款方式了。图1展示了商品ID为android.test.purchased的预留商品的结账流程。Billing test flow.png

图1.预留商品android.test.purchased的购买流程。

你无需在应用程序中将预留商品罗列出来,Google Play本身保有预留商品ID。此外,你也不需要为了测试静态响应而将应用上载到发布网站上,简单地在设备上安装应用并登录,就可以进行测试。

用于测试应用内部付费静态响应的预留商品ID有4个:

  • android.test.purchased
当使用本商品ID发出内结算请求,Google Play会按照购买成功的情况对此进行响应。响应包括一个JSON字符串,其中带有虚拟购买信息(如,虚拟订单ID)。在某些情况下,JSON字符串带有签名,这样你就可以利用这些响应对验证签名的接口进行测试。
  • android.test.canceled
当使用本商品ID发出内结算请求,Google Play会按照取消购买的情况对此进行响应。这种情况可能发生于订购过程出错,如无效的信用卡,或支付前取消用户订单。
  • android.test.refunded
当使用本商品ID发出内结算请求,Google Play会按照退款的情况对此进行响应。退款必须由你(卖家)发起。当你通过Google Wallet帐户发出一条退款请求,Google Play会给应用发出一条退款消息。这种情况只发生在Google Play得到Google Wallet通知已退款之后。欲了解更多退款相关信息,请参阅 处理IN_APP_NOTIFY消息应用程序内结算定价
  • android.test.item_unavailable
当使用本商品ID发出内结算请求,Google Play会按照商品清单不存在此购买商品的情况对此进行响应。

某些情况下,预留项目会返回带签名的静态响应,这样你就可以对应用的签名验证进行测试。要想使用特定预留商品ID测试签名验证,你需要创建测试帐户或将你的应用作为非发布用的应用草案上传。表1展示了静态响应带签名的条件。

表1.静态响应带签名的条件

应用程序是否发布过?应用草案是否上传并且未发布?运行此应用程序的用户静态响应签名
没有没有任何人无签名
没有没有开发者签名
没有任何人无签名
没有开发者签名
没有测试账号签名
任何人签名

使用预留商品ID创建一条内部付费请求,只需构建一般的REQUEST_PURCHASE请求,但是所用的商品ID不是从应用商品列表上选取的真正商品ID,而是用预留商品ID取代。

利用预留商品ID对应用程序进行测试,请遵循以下步骤:

1,将应用程序安装到Android设备上。

测试内部付费用模拟器是无法进行的,必须安装到真机设备上才能进行。
欲了解如何在设备上安装应用程序,请参阅 在设备上运行应用

2,在设备上登录你的开发者帐户

如果测试用的是预留商品ID,那你也无须使用测试帐号。

3,确保设备运行的是Google Play或MyApps应用受支持的版本。

若你的设备运行的是Android 3.0,那么应用内部付费的实现要求MyApps版本5.0.12以上。若设备运行的是Android的其他版本,那么内部付费要求Google Play应用版本2.3.4以上。欲了解如何检查Google Play版本,请参阅 Google Play的更新

4.运行应用,购买预留商品ID。

注:用预留商品ID创建的内部购买请求会将正常的 Google Play商品体系覆盖。当你发出一个预留商品ID的请求,其涉及的服务与真实商品环境不具可比性。


使用自己的商品ID测试应用的内部购买行为

使用静态响应测试完成,并且应用程序上的签名验证也通过之后,你就可以用真实的购买行为测试应用程序内部购买机制了。测试真实的内部购买实际上就是测试端到端的内部购买,其包含发自Google Play的真实响应和用户在您的应用将体验到的真实结账流程。

注:端到端测试无需将应用发布,你只需将应用作为应用草案上传就可以进行测试。


用真实的购买行为测试应用内部付费接口,你需要在Google Play发布网站是注册至少一个测试帐号。你不能使用自己的开发者帐户来进行内部购买测试,因为Google Wallet不运行购买自己的商品。若你先前没有设置过测试帐户,请参阅测试帐户的设置

只有当商品列表中的商品被发布后,测试帐户才可以对其进行购买。应用程序并不需要发布,但商品商品是需要发布的。

当你使用测试帐户购买物品,测试帐户通过Google Wallet支付,同时你的Google Wallet Merchant帐户会收到付款。


用真实购买行为对应用程序内部付费进行测试,请遵循以下步骤:

1,将应用程序作为一个应用草案上传到发布网站。

进行真实商品ID的端到端测试无需将你的应用程序发布,只需将应用作为应用草案上传。但在上传之前,必须给你的应用程序以发布密钥签名。此外,上传的应用程序版本号必须与你设备上进行测试的应用版本号相匹配。欲了解如何将应用程序上传到Google Play,请参阅 应用程序的上传

2.给应用程序的商品列表添加物品。

请确认你已将物品发布(应用程序可以是未发布)。请参阅 创建商品列表来学习如何实现。

3.在Android设备上安装应用程序。

测试应用程序内部付费时不能用模拟器进行的,你必须在真机设备上安装应用程序才能测试内部付费。
欲了解如何在设备上安装应用程序,请参阅 在设备上运行应用

4,将某个测试帐户设为设备上的主帐户。

为了进行应用程序内部付费端到端的测试,设备上的主账号必须有为某个Google Play网站上注册的 测试帐户。若设备上的主帐户不是测试帐户,那你必须先恢复出厂设置,然后再登录测试帐户。恢复出厂设置,请遵循以下步骤:
  1. 在设备上找到设置[Settings]
  2. 点选隐私[Privacy]
  3. 点选恢复出厂设置[Factory data reset]
  4. 点击重置手机[Reset phone]
  5. 手机重置后,一定要在设备启动过程登录测试账号。

5,确保你的设备运行的Google Play或MyApps应用是受支持的版本。

若你的设备运行的是Android 3.0,那么应用内部付费的实现要求MyApps版本5.0.12以上。若设备运行的是Android的其他版本,那么内部付费要求Google Play应用版本2.3.4以上。欲了解如何检查Google Play版本,请参阅 Google Play的更新

6,在应用程序中进行内部购买。

:更改设备主帐户的唯一方法是执行恢复出厂设置,请确保你登录的主帐户正确。


当应用程序内部付费接口测试完毕后,你就可以将应用程序发布到Google Play了。步骤可以参考准备签名,和发布到Google Play


转自:

http://wiki.eoeandroid.com/Testing_In-app_Billing#.E6.B5.8B.E8.AF.95.E5.BA.94.E7.94.A8.E7.9A.84.E5.86.85.E9.83.A8.E4.BB.98.E8.B4.B9.E6.9C.BA.E5.88.B6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值