El elemento que ha solicitado no está disponible para su compra: facturación en la aplicación

¡Tengo problemas para probar la facturación de Android! ¡Alguien ayúdeme! Yo hago un ejemplo:

Actividad principal

public class MainActivity extends Activity { IabHelper mHelper; IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() { public void onQueryInventoryFinished(IabResult result, Inventory inventory){ if (result.isFailure()) { // handle error Toast.makeText(getApplicationContext(), "debug: Query occur error!", Toast.LENGTH_SHORT).show(); return; } if (result.isSuccess()) { Toast.makeText(getApplicationContext(), "debug: Query successfully!", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), "debug: " + inventory.getSkuDetails("product_1").getTitle(), Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), "debug: " + inventory.getSkuDetails("product_2").getTitle(), Toast.LENGTH_SHORT).show(); return; } } }; IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() { public void onIabPurchaseFinished(IabResult result, Purchase purchase) { if (result.isFailure()) { Toast.makeText(getApplicationContext(), "debug: purcharge failed", Toast.LENGTH_SHORT).show(); Log.d("Purchrge", "Error purchasing: " + result); return; } switch (purchase.getSku()){ case "product_1": Toast.makeText(getApplicationContext(), "debug: purcharge product 1", Toast.LENGTH_SHORT).show(); break; case "product_2": Toast.makeText(getApplicationContext(), "debug: purcharge product 2", Toast.LENGTH_SHORT).show(); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn9zEWzKIvk/hScbZyrZ6HE4y679DUIQPsxfz0mQJmnv3RYCdd7Zcy+peOtnvRyZzmbrAcYmW1FOsH/3dJwuAmdO+Wd9HyDre+vJwAAQ/QI2WA4lbWSl4jVEr7AX9p3J8pBIy3UKRmhjk/PFN8N1jYDUnnPbZJnSkd6eRpiET+MMUsNHIoCxXzmqXvy3bFh/L61gtqUW/acOkWuXnLkn6rVVBzHUL9YLeVRdnN86DnejJySe8DniiAH0sfMP7wxU2y4GoKPjXDeZFNZr4ii22re7ogpIjEfUEb3+FxtxfbjPFz6hONsy/NofkEDznci5fPk8FtulhVbkJ82Rpiq6BXQIDAQAB"; mHelper = new IabHelper(this, base64EncodedPublicKey); } public void query(View view){ mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { public void onIabSetupFinished(IabResult result) { if (!result.isSuccess()) { // Oh noes, there was a problem. Log.d("Billing error: ", "Problem setting up In-app Billing: " + result); Toast.makeText(getApplicationContext(), "debug: IAB is not set up!", Toast.LENGTH_SHORT).show(); } // Hooray, IAB is fully set up! Toast.makeText(getApplicationContext(), "debug: Hooray, IAB is fully set up!", Toast.LENGTH_SHORT).show(); List additionalSkuList = new ArrayList(); additionalSkuList.add("product_1"); additionalSkuList.add("product_2"); mHelper.queryInventoryAsync(true, additionalSkuList, mQueryFinishedListener); } }); } public void pay(View view){ mHelper.launchPurchaseFlow(this, "product_1", 10001, mPurchaseFinishedListener, "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ"); } @Override public void onDestroy() { super.onDestroy(); if (mHelper != null) mHelper.dispose(); mHelper = null; } } 

Principal de actividad

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Query" android:onClick="query"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pay" android:onClick="pay"/> </LinearLayout> 

Al desplegar la aplicación, tengo dos botones (consulta, pago). Hago clic en el botón Consultar antes de hacer clic en el botón Pago.

Entonces consigo el formulario con: "el artículo que usted pidió no está disponible para la compra"

Me aseguro de que:

Firmé el APK en modo de liberación

La aplicación se publica

Los productos están activos

Alguien me ayude a encontrar nuestro problema?

¡Estoy muy agradecido!

Asegúrese de que android:versionCode="" en su archivo AndroidManifest.xml que está probando, tiene el mismo número de versión que en el .apk que subió como su versión alfa activa actual en la Consola del Desarrollador.

Esto al menos fue mi problema ya que estaba recibiendo el mismo error.

  • ZXing Android Generar código de barras 1D
  • Error "No se puede crear instancias de actividad"
  • ¿Puede un APK ser reempaquetado después de una edición de texto menor?
  • La mejor manera de recuperar / formatear datos mediante Firebase Java API
  • Fuente RSS de Google Play Store
  • Aplicaciones móviles independientes de la plataforma
  • JQuery Mobile + PhoneGap para Android - Error al cargar index.html
  • ¿Cómo crear una interfaz de usuario como el nuevo mercado o Google más?
  • ¿Incrustar un emulador móvil en un sitio web?
  • Base de Datos Relacional Desconectada para Plataforma Móvil Cruzada
  • El posicionamiento fijo en el navegador Android 2.3 debería funcionar ... ¿no?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.