如何在启用Google Play App Signing功能时测试应用内付款?

时间:2017-09-01 05:10:37

标签: android google-play in-app-billing

我想测试应用内付款,并启用了Google Play App Signing(GPAS)。

要测试付款,我需要使用真实密钥签名的apk(根据GPAS签名密钥)。

但是我没有私钥来签署证书。它由Google生成并存储在Google Play中。

每次我想测试应用内付款时,如何避免将apk上传到Google Play?

如何在某处下载签名私钥?

3 个答案:

答案 0 :(得分:6)

我在Alpha通道中启用了应用并启用了“Google Play App Signing”,并且我已经能够使用一些测试人员帐户测试应用内结算而不会出现重大问题。

在Google Dev Console中>>发布管理>> App Release>>管理Alpha>>管理测试人员您可以创建测试人员帐户列表,然后向他们传递可以安装和测试应用程序的Web链接。

发布商(开发人员)帐户无法购买商品,但我创建了另一个帐户,用于我在模拟器(Genymotion + Gapps)中使用的测试而没有任何问题。

发现的唯一不幸事件是,有些测试人员在购买产品时系统要求他们进行真正的付款!,他们不应该像Google文档所说的那样收费,我已经通过在控制台中创建一些促销代码来解决它它们。

也许您的问题是您已经将应用程序投入生产而不是alpha或beta?

希望它会有所帮助。

<强>更新

你说的是另一个答案:“但我不想每次在我的申请中做出任何改变都要等几个小时。这就是重点。”

每次进行更改时都不需要上传其他版本,只要调试设备使用Google测试人员帐户,她就可以通过USB或安装了Play商店的模拟器继续调试应用程序。他已接受成为收到的网络链接的测试人员。

当然,此测试人员可以使用除应用程序发布者之外的Google帐户

更新2

如果怀疑是因为相信应用内的结算购买是使用与应用程序相同的密钥进行签名,那么这是不正确的。 使用与应用程序不同的密钥对购买进行签名,您可以在开发工具&gt;&gt;中的开发者控制台中获取Base64编码的RSA公钥。服务与的API

答案 1 :(得分:1)

如果您需要测试实际交易,唯一的方法是至少公开您的应用的alpha版本,as mentioned here

  

由于Google Play不允许您使用您的开发者帐户   直接购买您自己创建的应用内商品,   您需要在开发者帐户下创建测试帐户   轮廓。要创建测试帐户,只需输入有效的Google电子邮件即可   地址。拥有这些测试帐户的用户将可以进行制作   从已上传的,未发布的应用程序购买的应用内结算   你管理。

     

使用您自己的应用程序计费应用程序结算版本3应用程序   产品ID:

     

在Play控制台中,向开发人员添加一个或多个测试人员帐户   您用于发布应用程序的帐户。登录到   使用您的开发者帐户玩控制台。点击设置&gt;帐户   详细信息,然后在“许可证测试”部分中添加Google电子邮件   测试人员帐户的地址。为您创建一个已签名的APK文件   应用内结算应用。要了解如何构建和签署您的APK,   请参阅构建发布应用程序。确保你有   将已签名的APK上传到Play控制台,以及   将一个或多个应用内商品与您的应用相关联。您   不需要在Google Play上发布应用程序来测试它。   警告:上传APK后可能需要2-3小时   Google Play可识别您更新的APK版本。如果你试着测试   您上传的APK之前的应用程序已被Google识别   玩,您的应用程序将收到“取消购买”的回复   并显示错误消息“未启用此版本的应用程序   对于应用内结算。“

     

使用adb将APK文件安装到物理测试设备   工具。要了解如何安装应用程序,请参阅运行a   设备。确保您的测试设备在Android 2.2上运行(API   等级8)或更高,并与Google Play客户端版本一起安装   3.9.16或更高。使用测试人员帐户登录测试设备。通过购买一些商品来测试您的应用内结算应用   解决您遇到的任何问题。要了解有关如何做的更多信息   对您的应用内结算应用进行大规模测试,请参阅测试   购买(应用内结算沙盒)。

但是,如果您只是需要检查您的付款流程是否正确,您可以use static requests,这样您就可以在不发布的情况下测试付款。

  

我们建议您先测试应用内结算实施   使用Google Play的静态回复。这使您可以进行验证   您的应用正在处理主要Google Play响应   正确。即使应用程序尚未发布,您也可以这样做。

另一种测试方式是草稿应用,但正如您可以在第二个链接中阅读

  

不再支持草稿应用程序

     

以前,您可以发布一个   用于测试的应用程序的“草稿”版本。这个功能没有   支持时间更长相反,有两种方法可以测试如何   Google Play商店中的预发布应用功能:

     

您可以将应用发布到Alpha或Beta分发渠道。   这使得该应用在Google Play商店中可用,但仅限于   测试人员你把“白名单”。

     

在少数情况下,您可以测试Google   使用未发布的应用程序播放功能。例如,您可以测试   通过使用静态响应,未发布应用的应用内结算支持,   始终返回特定结果的特殊保留产品ID   (如“已购买”或“已退款”)。

所以,简而言之......您可以在整个应用程序中设置static payments(以测试呼叫)并检查它们是否有效。完成测试后,将静态请求替换为最终形式,并使用您的alpha版本进行测试。可悲的是,没有其他方法可用(正式),因为如上所述,google doesn't allow developer account to purchase your own products.

Afaik,您无法从Google Play

中检索密钥库

答案 2 :(得分:0)

  

如何在某处下载签名私钥?

你不能,因为它会破坏谷歌Play应用程序的签名密钥安全性。如果您确实是发布商帐户的合法所有者,则可以按照评论中的说明上传upload_certificate.pem文件。

要测试应用内结算,您需要将自己的应用发布到Google Play中的Alpha或Beta频道。由于启用了Google Play应用程序签名功能,因此您可以按照官方文档here

进行操作
  

要通过实际购买测试您的应用内结算实施,请按以下步骤操作:

  1. 使用Play控制台将您的应用程序上传到Alpha分发渠道。 注意:以前您可以通过上传未发布的“草稿”版本来测试应用。不再支持此功能;相反,您必须将其发布到alpha或beta分发渠道。有关详细信息,请参阅Draft Apps are No Longer Supported

  2. 将项目添加到应用程序的产品列表中。 确保您发布项目(应用程序可以保持未发布)。请参阅Creating a product list了解如何执行此操作。

  3. 在Android设备上安装您的应用程序。 您无法使用模拟器测试应用内结算;您必须在设备上安装应用程序才能测试应用内结算。 要了解如何在设备上安装应用程序,请参阅Running on a device
  4. 确定您的设备运行的是受支持的Google Play应用程序版本或MyApps应用程序。 如果您的设备运行的是Android 3.0,则应用内结算需要MyApps应用程序的5.0.12(或更高版本)版本。如果您的设备运行的是任何其他版本的Android,则应用内结算需要使用版本2.3.4(或更高版本)的Google Play应用。要了解如何查看Google Play应用程序的版本,请参阅Updating Google Play
  5. 在您的应用中进行应用内购买。 注意:更改设备上主帐户的唯一方法是重置恢复出厂设置,确保首先使用主帐户登录。
  6. 当您完成对应用内结算实施的测试后,您就可以在Google Play上发布您的应用。您可以按照preparingsigningpublishing on Google Play的常规步骤操作。

    点击示例应用了解详情,详细步骤如下:Google Play In-app Billing https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive#getting-started