Desarrollarores Android con Suscripcion Implementada | Ayuda

  • Autor Autor Adan Najera
  • Fecha de inicio Fecha de inicio
Adan Najera

Adan Najera

Dseda
Verificación en dos pasos activada
Buenas tardes Gente de ForoBeta.

Acudo a ustedes ya que no logro resolver un problema... Estoy implementando ventas en mi aplicación, en este caso seria suscripciones, ya logre que funcionara parte del código pero no logro hacer varias cosas que son esenciales...
El funcionamiento es el siguiente:

Tengo un Botón que al darle click esta bloqueado y llama al método de realizar la compra de SUSCRIPCIÓN, pero ese mismo botón en caso de que la suscripción ya se hubiera realizado con éxito me gustaría que llamara a un intent y no al método para realizar la compra... Lo que pasa es o siguiente, ya programe eso, lo que pasa es que al momento de cerrar la app y vuelvo a presionar el botón me aparece mensaje de "Error Se esta procesando tu pedido. EL articulo estará disponible en unos minutos"... Cosa que si voy a la consola de google play el articulo ya se encuentra como cobrado y activo...

En si no se si exista un método para verificar si la suscripción ya esta activa, en caso de que este activa pues realice una función especifica, y si no esta activa pues muestre para comprar denuedo la suscripción.

Aquí esta mi código... Para llamar el método de realizar la compra o seguir al siguiente intent es el siguiente:
Insertar CODE, HTML o PHP:
mi funcion(){
               
                if(readNombre.equals("nulo")){
//Si el usuario esta logeado la variable readNombre es diferente de nulo, por lo tanto pasa al siguiente intent, pero si es nulo quiere decir que no a comprado la suscripcion por lo tanto pide que la compre... pero si llega a deslogearse el usuario e intenta iniciar sesion le aparece el error mencionado anteriormente y por lo tanto no deja seguir con el funcionamiento normal de la app
                    bp.subscribe(MainActivity.this,"diagnostico_preguntas_praactica_desbloqueados");
                } else {
                    miIntent = new Intent(MainActivity.this,diagnosticoSelect.class);
                    startActivity(miIntent);
                }
}

pero lo que quiero lograr es lo siguiente
Insertar CODE, HTML o PHP:
if(bp.REVISAR_SI_SUSCRIPCION_ES_ACTIVA==TRUE){
                    miIntent = new Intent(MainActivity.this,diagnosticoSelect.class);
                    startActivity(miIntent);
} else{
bp.subscribe(MainActivity.this,"diagnostico_preguntas_praactica_desbloqueados");
}

Otro problema es que al momento de realizar la compra correctamente este metodo nunca es llamado
Insertar CODE, HTML o PHP:

 [MENTION=42437]over[/MENTION]ride
    public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {

        
        guardarDatos(readNombreCreate,readFolioCreate);
    }

Busque en internet y parece que muchos tienen ese problema con las suscripciones, por lo tanto tengo que usar este codigo alternativo

Insertar CODE, HTML o PHP:

 [MENTION=42437]over[/MENTION]ride
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        Log.e("ResultadoCompra", "requestCode: "+requestCode + " resultCode: "+resultCode+" data: " +data.toString() + " details: "+bp.getSubscriptionTransactionDetails("diagnostico_preguntas_praactica_desbloqueados"));
        if(resultCode==-1){
//significa que si se realizo la compra correctamente
            getPurchases();
            guardarDatos(readNombreCreate,readFolioCreate);
        } else {
            guardarDatos("nulo", "nulo");
        }

        if (!bp.handleActivityResult(requestCode, resultCode, data)) {
            super.onActivityResult(requestCode, resultCode, data);

        }
    }


tengo esas dudas, mas que nada no se como saber si ya se hizo la suscripción anteriormente y si esta esta activa... no logro encontrar el metodo correspondiente.
 
Atrás
Arriba