что означает код ошибки 101 в библиотеке v3 для приложения-биллинга? - PullRequest
0 голосов
/ 28 апреля 2019

Я использую в приложении биллинг v3 библиотеку, всегда получаю ошибку и код ошибки 101

Что означает этот код ошибки?

некоторые детали: я разработчикработаю из Палестины и работаю над приложением, загруженным в индийскую учетную запись Google Play

Я создал действие, включающее три кнопки для покупки удалить Ads

- первая кнопка для подписки через месяц

- вторая подписка на один год

- третья покупка на срок действия

Я использовал эту библиотеку 'com.anjlab.android.iab.v3: library: 1.0.44'

Я создал продукт в консоли Google Play и назвал его PRODUCT_ID. Этот продукт будет приобретен, когда пользователь нажмет на кнопку lifeTime

, и я создал две подписки

- имя будет SUBSCRIPTION_MONTH_ID и будетприобретается, когда пользователь нажимает одну месячную кнопку

- имя второго - SUBSCRIPTION_YEAR_ID и будет приобретено, когда пользователь нажмет одну кнопку года

.код, который я использовал

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.anjlab.android.iab.v3.BillingProcessor;
import com.anjlab.android.iab.v3.TransactionDetails;

public class InAppBilling extends AppCompatActivity{
BillingProcessor bp;

private static final String PRODUCT_ID = "****";
private static final String SUBSCRIPTION_MONTH_ID = "***";
private static final String SUBSCRIPTION_YEAR_ID = "***";
private static final String LICENSE_KEY = "*****";
private static final String MERCHANT_ID = "**";

Button oneMonth, oneYear, lifeTime;
int flag;
String android_id;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_in_app_purchase);

    flag = 0;

    android_id = Settings.Secure.getString(getApplicationContext().getContentResolver(),
            Settings.Secure.ANDROID_ID);

    final Toolbar toolbar = findViewById(R.id.toolbar);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        toolbar.setTitle("Remove Ads");
    }

    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });

    if(!BillingProcessor.isIabServiceAvailable(this)) {
        Toast.makeText(this, "In-app billing service is unavailable, please upgrade Android Market/Play to version >= 3.9.16", Toast.LENGTH_SHORT).show();
    }

    bp = new BillingProcessor(this, LICENSE_KEY, MERCHANT_ID, new BillingProcessor.IBillingHandler() {
        @Override
        public void onProductPurchased(String productId, TransactionDetails details) {
            Toast.makeText(InAppBilling.this, "successfully purchased, restart the app please", Toast.LENGTH_SHORT).show();
        }
        @Override
        public void onBillingError(int errorCode, Throwable error) {
            Toast.makeText(InAppBilling.this, "Error Billing", Toast.LENGTH_SHORT).show();
            Log.e("nourbilling", "onBillingError: errorCode: "+errorCode+" error: "+error);
        }
        @Override
        public void onBillingInitialized() {
        }
        @Override
        public void onPurchaseHistoryRestored() {
            for(String sku : bp.listOwnedProducts())
                Log.d("nourbilling", "Owned Managed Product: " + sku);
            for(String sku : bp.listOwnedSubscriptions())
                Log.d("nourbilling", "Owned Subscription: " + sku);
        }
    });

    oneMonth = findViewById(R.id.oneMonth);
    oneYear = findViewById(R.id.oneYear);
    lifeTime = findViewById(R.id.lifetime);

    final Activity activity = this;

    oneMonth.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            flag = 1;
            createDialog(savedInstanceState, activity).show();
        }
    });

    oneYear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            flag = 2;
            createDialog(savedInstanceState, activity).show();
        }
    });

    lifeTime.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            flag = 3;
            createDialog(savedInstanceState, activity).show();
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (!bp.handleActivityResult(requestCode, resultCode, data))
        super.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onDestroy() {
    if (bp != null)
        bp.release();
    super.onDestroy();
}

public Dialog createDialog(Bundle savedInstanceState, final Activity activity) {
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("are you sure to remove ads by billing?")
            .setPositiveButton("yes", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    if (flag == 1) {
                        bp.subscribe(activity, SUBSCRIPTION_MONTH_ID);
                    } else if (flag == 2) {
                        bp.subscribe(activity, SUBSCRIPTION_YEAR_ID);
                    } else if (flag == 3) {
                        bp.purchase(activity, PRODUCT_ID);
                    }
                }
            })
            .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                }
            });
    return builder.create();

}
}

Вы можете мне помочь, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...