通过使用Google Play Developer API和电话https://www.googleapis.com/androidpublisher/v2/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}(https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get),可以获取有关订阅是否仍然有效的信息.
如何在orderId不猜测的情况下找出每笔付款(通过这样做:https://developer.android.com/google/play/billing/billing_subscriptions.html)?是否可以通过对API的服务帐户调用获取用户订阅的所有历史付款?(例如,使用purchaseToken和subscriptionId).
我正在按照Google Play Developer API 指南链接我的谷歌云项目。
指南文档说我可以从列表中选择我想要链接的项目。但在我的游戏开发者控制台中,该列表没有显示。
相反,GooglePlay 开发者控制台 - 设置 - API 访问页面中有一个用于创建新项目的按钮。当我点击它时,它会在 GCP 上创建新项目并将我的 Play 开发者控制台链接到它。
我的帐户是两者的所有者,玩开发者控制台,谷歌云。
我需要做什么才能将现有的 Google Cloud 项目与 Google Play 开发者控制台链接起来?
在为我们的移动项目设置连续部署管道时,我在通过谷歌的API将APK(签名和对齐)上传到Play商店时遇到了错误.
我正在使用fastlane的供应动作进行实际上传(使用google的ruby api客户端).
在alpha轨道上首次上传带有版本x的APK是成功的.
在Alpha轨道上第二次上传相同的APK及版本y失败,并显示以下消息:
multiApkDowngradedDevice:如果符合以下条件,则此应用版本为100144的设备将降级为版本100142:[(API_LEVEL在范围15-0和RELEASE_TRACK中包含[[ALPHA]]和SCREENS中的任何一个,包含[[ALPHA]]和SCREENS中的任何一个[ [小,正常,大,xlarge]]和NATIVE_PLATFORM包含[[x86_64(arm64-v8a),x86_64(armeabi-v7a),x86(armeabi-v7a)*]]和[功能]包含所有[android. hardware.TOUCHSCREEN,android.hardware.screen.PORTRAIT,android.hardware.WIFI])].
我无法找到有关此multiApkDowngradedDevice错误的信息,因为api的文档没有提到任何错误代码.
任何有关这方面的帮助将不胜感激
谢谢,
伯特
按照本指南https://developers.google.com/android-publisher/api-ref/我试图找出是否有办法从我的谷歌播放控制台列出所有游戏,但我找不到任何.有没有方法列出我帐户中的所有应用和包名?
谢谢
我目前正在设计我的实施策略,以便在应用内结算中进行可能的状态更新(从已购买的状态到已取消的状态等等),这是一个非常令人头疼的问题,并且存在一个混乱:
我在应用程序中获取getPurchases().这给了我INAPP_PURCHASE_DATA包含表6的字段,其中包含以下字段:
autoRenewing,orderId,packageName,productId,purchaseTime,purchaseState,developerPayload,purchaseToken.
我想将一些变量发送到我的服务器(虽然只是buyToken似乎很有用),但有一些我不清楚的事情:
在服务器端,我想不断检查购买是否有效.我计划通过https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get执行此操作
但是这个请求需要packageName,subscriptionId和token.令牌是purchaseToken从getPurchases() ,但是是subscriptionId中的productId从getPurchases() ?
当您在Google Play中调用用于创建产品列表的手册时,可以在此处的标题中看到此处在步骤4 中将项目一次添加到产品列表中单击"创建被管理产品"或"根据需要创建订阅".你必须在第5步设置productId.
如果productId == subscriptionId,为什么有两个Google Play Developer API请求,一个用于"产品",一个用于"订阅",那么订阅是不是产品呢?看到:
https://developers.google.com/android-publisher/api-ref/purchases/products/get https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get
第一个请求采用productId,但第二个请求是我没有的subscriptionId,但productId和subscriptionId是相同的.这非常令人困惑.
android in-app-purchase in-app-billing google-play-developer-api
我认为已正确遵循文档中的所有步骤,但我无法到达 querySkuDetailsAsync 的回调,没有报告错误。该应用程序可以与 IAB 正常工作,现在我只是从旧库迁移到新的“com.android.billingclient:billing:2.0.3”,但存在很多问题。另一个问题,在新库中还需要使用 Play Console 中的许可证密钥吗?我没有找到有关在新库中使用它的文档。
我可以正确无误地到达这条线billingClient.querySkuDetailsAsync(params, (billingResult2, skuDetailsList) ->
Sku ID 正确
private void setupIab()
{
billingClient = BillingClient.newBuilder(getApplicationContext()).enablePendingPurchases().setListener(this).build();
billingClient.startConnection(new BillingClientStateListener()
{
@Override
public void onBillingSetupFinished(BillingResult billingResult)
{
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK)
{
List<String> skuList = new ArrayList<> ();
skuList.add("test_sku_1");
SkuDetailsParams params = SkuDetailsParams.newBuilder().setSkusList(skuList).setType(BillingClient.SkuType.INAPP).build();
billingClient.querySkuDetailsAsync(params, (billingResult2, skuDetailsList) ->
{
// Process the result.
if (billingResult2.getResponseCode() == BillingClient.BillingResponseCode.OK && skuDetailsList != null)
{
}
});
}
}
@Override
public void onBillingServiceDisconnected()
{
// Try to restart the …Run Code Online (Sandbox Code Playgroud) android in-app-purchase in-app-billing google-play-developer-api play-billing-library
我们正在实施带有服务器端验证的 Google Billing。
我们必须支持的功能之一是“免费试用”。单个用户只能参与一次“免费试用”。
如果他取消订阅,然后尝试再次购买相同的订阅,则会出现一条注释“您已经参加了免费试用”(这意味着用户将无法获得试用期。相反,他必须立即付款)。该场景非常适合生产/生活环境。
然而,在测试环境(或开发环境,尤其是开发环境)中,我们做了很多尝试和重复步骤(这意味着我们多次使用同一个谷歌用户经历订阅生命周期),这是真正的痛苦屁股。对于每次迭代,我们都必须创建新的谷歌用户。
我的问题是:
1 - 有没有办法在测试环境(测试环境= google play测试轨道)中为特定用户(或所有人)重新启用“免费试用”。
或者
2 - 有其他方法可以让我们的生活更轻松吗?
google-play android-billing in-app-subscription google-play-developer-api google-play-console
是否可以为 Google Play 开发者 API 使用游乐场/沙箱?我非常感兴趣:
...根据https://developers.google.com/android-publisher/reply-to-reviews
最好写一篇测试评论,因为这样我就可以测试通过 API 发布回复。
首先,我是一名新手 php 开发人员,我的产品公司要求我自动安装和卸载其 Android 应用程序的报告,这些报告可在 Play 开发者控制台上找到。
我已经创建了一个服务帐户,并且正在按照以下文档(此处)中给出的步骤进行操作,但不知何故我被困在某个地方,并且似乎无法继续前进。我想定期获取应用程序安装和卸载的数据。
我安装了 google 客户端 php api 库,如下所示,这是我从 Github 获取的-
include __DIR__.'/vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)
现在,在云存储示例中,他们提到了这样的事情 -
include __DIR__.'/vendor/autoload.php';
use Google\Cloud\Storage\StorageClient;
Run Code Online (Sandbox Code Playgroud)
并使用这个我收到以下错误 -
致命错误:未捕获错误:类“Google\Cloud\Storage\StorageClient”>在 /home/USERNAME/public_html/appreport/report/index.php:31 中找不到>堆栈跟踪:#0 {main} 在 >/home 中抛出/USERNAME/public_html/appreport/report/index.php 第 31 行
如果有人能帮助我解决这个问题那就太好了
php cloud storage google-cloud-storage google-play-developer-api
我正在尝试设置应用程序内更新优先级参数,以便将新的 android 应用程序版本发布到 Play 商店。根据此文档,它应该可以工作:
但实际上并没有。也许我做错了什么。
下面是一个例子:
// creating AndroidPublisher instance in some way
AndroidPublisher androidPublisher = createPublisher(serviceKeyPath);
// creating new edit
AppEdit edit = androidPublisher.edits()
.insert(APP_PACKAGE, null)
.execute();
String editId = edit.getId();
// uploading APK
FileContent apkContent = new FileContent(APK_MEDIA_TYPE, new File(apkPath));
Apk apk = androidPublisher.edits()
.apks()
.upload(APP_PACKAGE, editId, apkContent)
.execute();
// preparing release info
List<Long> versionCodes = Collections.singletonList(apk.getVersionCode().longValue());
TrackRelease trackRelease = new TrackRelease()
.setName(getNewVersionName())
.setReleaseNotes(getReleaseNotes())
.setVersionCodes(versionCodes)
.setStatus("completed")
.setInAppUpdatePriority(5); // <-- value from 0 to 5
Track …Run Code Online (Sandbox Code Playgroud)