2016-03-28 2 views
2

Невозможно приобрести что-либо в режиме тестирования. Вот код. Когда я нажал ДА в своем диалоговом окне, ничего не изменилось. Но если я попытаюсь купить в релизе APK все нормально. Какие проблемы ребята?Google InApp Billing test purchase

public void StupidLogic(){ 
    ITEM_SKU = "android.test.purchased"; 
    mHelper.launchPurchaseFlow(getActivity(), ITEM_SKU, 10001, mPurchaseFinishedListener, "mytoken"); 
} 



IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener 
     = new IabHelper.OnIabPurchaseFinishedListener() { 
    public void onIabPurchaseFinished(IabResult result, 
             Purchase purchase) 
    { 
     if (result.isFailure()) { 
      // Handle error 
      return; 
     } 
     else if (purchase.getSku().equals(ITEM_SKU)) { 
      consumeItem(); 
     } 

    } 
}; 

public void consumeItem() { 
    mHelper.queryInventoryAsync(mReceivedInventoryListener); 
} 

IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener 
     = new IabHelper.QueryInventoryFinishedListener() { 
    public void onQueryInventoryFinished(IabResult result, 
             Inventory inventory) { 


     if (result.isFailure()) { 
      Log.d("Billing"," Such Failure! WOW!"); 
     } else { 
      mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU), 
        mConsumeFinishedListener); 
     } 
    } 
}; 

IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = 
     new IabHelper.OnConsumeFinishedListener() { 
      public void onConsumeFinished(Purchase purchase, 
              IabResult result) { 

       if (result.isSuccess()) { 
        //Приходящий ответ!!!!!-------------------------------------------------------------------------------------------- 
        //String URL = "http://cybergenesis.ru/egor/add_service?ontime=" + ontimeString + "&offtime=" + offtimeString + "&user_id=" + info_id + "&service=" + Integer.toString(position + 1) + "&balance=" + String.valueOf(balance); 
        Retrofit retrofit = new Retrofit.Builder() 
          .baseUrl("http://cybergenesis.ru/egor/") 
          .addConverterFactory(GsonConverterFactory.create()) 
          .build(); 

        APIService service = retrofit.create(APIService.class); 
        Call<Post> call = service.addService(ontimeString, offtimeString, info_id, positionStr, Balance); 
        call.enqueue(new Callback<Post>() { 
         @Override 
         public void onResponse(Call<Post> call, retrofit2.Response<Post> response) { 

         } 

         @Override 
         public void onFailure(Call<Post> call, Throwable t) { 

         } 
        }); 

       } else { 
        // handle error 
       } 
      } 
     }; 
@Override 
public void onDestroy() { 
    super.onDestroy(); 
    if (mHelper != null) mHelper.dispose(); 
    mHelper = null; 
} 

}

Все в порядке, если я покупать не в диалоге.

ответ

0

Если IAB работает в подписанном релизной версии APK, но не в отладке, это может быть ваша проблема:

Вы должны изменить файл Security.java иметь активированный режим отладки. Это позволяет использовать метод в неподписанных апках. Это только для отладки, не забудьте вернуть ее перед публикацией.

public static boolean verifyPurchase(String base64PublicKey, 
     String signedData, String signature) { 
    if (TextUtils.isEmpty(signedData) || 
      TextUtils.isEmpty(base64PublicKey) || 
      TextUtils.isEmpty(signature)) { 
     Log.e(TAG, "Purchase verification failed: missing data."); 
     if (BuildConfig.DEBUG) { 
      return true; 
     } 
     return false; 
    } 

    PublicKey key = Security.generatePublicKey(base64PublicKey); 
    return Security.verify(key, signedData, signature); 
} 

Take a look at this

+0

Уже сделано, нужно ли изменить свою Security.java перед выпуском? Или он должен работать с реальными покупками? Иногда в режиме тестирования я могу делать покупки, но очень редко. –

+0

Что, как я понимаю, использует режим тестирования, игнорирует проверки безопасности, которые необходимы для предотвращения мошенничества с измененными без подписью apks в выпуске. Как выглядит ваш журнал ошибок? – brunoschalch

+0

ничего !!! нажмите кнопку - ничего! измените ITEM SKU на реальную и нажмите кнопку - IAb запущен –

0

InApp покупки только и работает только в приложении производства, так что вы должны будете получить подписанный APK и загрузить его на альфа-тестирование на игровой консоли.

Эти шаги могут помочь вам больше:

https://stackoverflow.com/a/47899233/2813804

Смежные вопросы