为什么getLocalPricing和getLocalName返回null

问题描述

我想通过gdx-pay库实现Google Play订阅。要显示我需要的信息,我问

info = purchaseManager.getinformation(SKU);
info.getLocalName(); //returns null
info.getLocalPricing(); //returns null

但是这些方法返回null
这是我的代码

PurchaseManagerConfig pmc = new PurchaseManagerConfig();
pmc.addOffer(new Offer().setType(OfferType.SUBSCRIPTION).setIdentifier(SKU));
//pmc.addStoreParam(PurchaseManagerConfig.STORE_NAME_ANDROID_GOOGLE,param);
purchaseManager.install(new MyObserver(this),pmc,true);
...
info = purchaseManager.getinformation(SKU);

我查看了该库的文档和示例,但没有发现任何问题,这是我没有写的唯一pmc.addStoreParam(PurchaseManagerConfig.STORE_NAME_ANDROID_GOOGLE,param);,因为我不知道那里需要什么参数。此外,该示例中未使用此行,因此我跳过了这一行。我还没有时间编写订阅购买实现。我创建了一个订阅,为其注册了价格,添加了ID并被激活。在开发人员控制台中,我没有看到有关创建订阅后可能出现的延迟的任何注释。我在做什么错了?

解决方法

来自gdx-pay的自述文件:

成功安装PurchaseManager后,您的PurchaseObserver将收到一个回调,purchaseManager.installed()将返回true。这可能需要几秒钟,具体取决于支付服务。您现在可以请求信息或购买物品。

我们不知道您是否执行此操作,可能您不知道,只是得到Information.UNAVAILABLE返回。

,

我无法说出到底有什么帮助,但是问题消失了(至少在测试阶段)。几天后,我做了一些更改:我向公众发布了游戏,开始使用新版本,使用SHA-1上传证书创建了另一个OAuth 2.0客户端ID,并将其添加到了Firebase项目中。