Android Покупка из приложения Клиент биллинга ломает мое приложение - PullRequest
0 голосов
/ 07 февраля 2020

Когда я просто запускаю клиент биллинга для покупки inApp, приложение сразу sh выводит следующую строку: billingClient = BillingClient.newBuilder (Profileowner.this) .setListener (this) .build ();

Я реализовал Закупки Покупок и прошел полный код https://developer.android.com/google/play/billing/billing_library_overview для выставления счетов ниже:

public void billing(){

        //List<SkuDetails> skuDetailsList = null;

        billingClient = BillingClient.newBuilder(Profileowner.this).setListener(this).build();


        billingClient.startConnection(new BillingClientStateListener() {
            @Override
            public void onBillingSetupFinished(BillingResult billingResult) {
                if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK){
                    Toast.makeText(getApplication(),"success to connect billing",Toast.LENGTH_SHORT).show();
                }
                else Toast.makeText(getApplication(),"fail to connect billing",Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onBillingServiceDisconnected() {
                Toast.makeText(getApplication(),"you are disconnected",Toast.LENGTH_SHORT).show();
            }
        });

        //add a pay button
        ImageButton pay = (ImageButton) findViewById(R.id.pay);
        pay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (billingClient.isReady()){

                    SkuDetailsParams params = SkuDetailsParams.newBuilder()
                            .setSkusList(Arrays.asList("premium_3"))
                            .setType(BillingClient.SkuType.SUBS)
                            .build();
                    billingClient.querySkuDetailsAsync(params, new SkuDetailsResponseListener() {
                        @Override
                        public void onSkuDetailsResponse(BillingResult billingResult, List<SkuDetails> skuDetailsList) {
                            if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK){
                                //something to add here

                                loadSkus(skuDetailsList);
                            }
                            else {
                                Toast.makeText(getApplication(),"cant query product",Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
                }
                else {
                    Toast.makeText(getApplication(),"billing clinet not ready",Toast.LENGTH_SHORT).show();
                }

            }
        });

    }

    private void loadSkus(List<SkuDetails> skuDetailsList) {

        BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
                .setSkuDetails(skuDetailsList.get(0))
                .build();

        billingClient.launchBillingFlow(this, billingFlowParams);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...