借助Gluonhq Charm Down,如何将其InAppBillingService与Google Play服务器集成,然后对其进行测试?

时间:2018-08-14 17:51:00

标签: android javafx google-play gluon-mobile android-billing

我创建了一个Android版本,其中现在包括Gluonhq InAppBillingService,用于在Google Play商店下购买我的应用。

此版本已加载到Google Play开发者控制台中。
一个测试人员(我自己,另一个Gmail帐户)可以从Google Play商店加载该APK版本并进行安装。
我在带有adb的手机上运行它,以捕获一些调试跟踪,尤其是有关计费API调用的跟踪。

测试结果: PlayerService存在但从未准备就绪。是什么意思?

预先感谢


详细信息:
-我输入PlayerService.getInstance()。 GetService()。 IfPresent(服务-> {..
-但是之后,该服务永远不会准备就绪(直接通过service.isReady()或不通过侦听其更改)

这是我的代码( traceP只是跟踪调试方法):

PlayerService.getInstance().getService().ifPresent(service -> { 
    traceP("interrogerServeurSurLesLicencesHG - before 1st test service ready"); 
    if (service.isReady()) { 
        updateProductDetailsGPS(service); // affecte bLicence_STD_HG_achetee 
    } else { 
        traceP("interrogerServeurSurLesLicencesHG - before 2nd test service ready"); 
        service.readyProperty().addListener(new ChangeListener<Boolean>() { 
        // se synchroniser avec le seveur de license GPS 
        @Override 
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) { 
            traceP("interrogerServeurSurLesLicencesHG - before test newValue"); 
            if (newValue) { 
                traceP("interrogerServeurSurLesLicencesHG - when new value"); 
                updateProductDetailsGPS(service); // affecte bLicence_STD_HG_achetee 
                service.readyProperty().removeListener(this); 
            } 
        } 
    }); 
    } 
});

traceP("Fin interrogerServeurSurListeDesProduitsHG - bInterrogationFaiteAvecSucces " + bInterrogationFaiteAvecSucces);

和调用的方法updateProductDetailsGPS:

static void updateProductDetailsGPS(InAppBillingService service) { 

    traceP("Deb updateProductDetailsGPS"); 

    BillingGPS.setUpdateStateGPS(StateGPSType.NONE); 
    Worker<List<Product>> productDetails = service.fetchProductDetails(); 
    productDetails.stateProperty().addListener((obs, ov, nv) -> { 
    switch (nv) { 
    case CANCELLED:.....

我使用adb捕获手机中的调试跟踪。结果是:

I/System.out(19417): heure : 157 ms --- interrogerServeurSurLesLicencesHG - billingType: GPS

I/System.out(19417): heure : 162 ms --- interrogerServeurSurLesLicencesHG - before 1st test service ready

I/System.out(19417): heure : 162 ms --- interrogerServeurSurLesLicencesHG - before 2nd test service ready

I/System.out(19417): heure : 163 ms --- Fin interrogerServeurSurListeDesProduitsHG - bInterrogationFaiteAvecSucces false

没有有关以下内容的跟踪信息:
-“ interrogerServeurSurLesLicencesHG-测试newValue之前”
-和“ Deb updateProductDetailsGPS”

因此,永远不会调用从Google服务器获取产品详细信息的updateProductDetailsGPS方法。


注意:
我的公共密钥似乎已在BASE_64_ANDROID_PUBLIC_KEY中正确定义。

您通常如何测试与Google Play服务器的这种集成问题?

例如,InAppBillingSample项目是如何完成其​​计费API(我现在使用的)和Google Play服务器的集成的?

1 个答案:

答案 0 :(得分:0)

我对Gluonhq一无所知,但Google Play有a whole web page on recommended process for testing In-app billing。遵循其中的所有步骤非常值得。