Tenho tentado configurar o faturamento no aplicativo para meu primeiro aplicativo e tenho usado o sku android.test.purchased. A compra foi concluída e eu consigo colocar o SKU em meu estoque, mas, como diz o título, onIabPurchaseFinished nunca é chamado.
Acho que pode ter algo a ver com este Log: "Não foi possível salvar qual visão está em foco porque a visão focada com.android.internal.policy.impl.PhoneWindow$DecorView@406743d0 não tem id". Isso aparece antes de ir para o Google Play. Eu não tenho certeza do que isso significa embora ...
Compra de lançamento:
mHelper.launchPurchaseFlow(this, sku, 10001, mPurchaseFinishedListener, "");
E o ouvinte:
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
@Override
public void onIabPurchaseFinished(IabResult result, Purchase info) {
System.out.println("Purchase Finish heard something");
if (result.isFailure()) {
Log.d(TAG, "Error purchasing: " + result);
return;
} else{
Log.d(TAG,"Success!");
}
}
};
android
in-app-billing
AAAton
fonte
fonte
Respostas:
Tente adicionar isso à atividade que chama
mHelper.launchPurchaseFlow(..)
:fonte
Acabei de descobrir outra coisa importante: o requestCode que é usado para iniciar o fluxo de compra deve ser> = 0!
Eu usei "new Random (). nextInt ()" para gerar um requestCode aleatório e às vezes funcionava, às vezes não. agora descobri na seguinte documentação, que o requestCode não deve ser um número negativo:
http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int%29
fonte
Eu tive o mesmo problema e o onActivityResult também não foi chamado.
Inspirado na resposta de @Ghulam, percebi que a atividade onActivityResult não chama o onActivityResult do fragmento automaticamente, então tive que fazer isso manualmente.
fonte
Você precisa chamar protected void onActivityResult (); Em sua atividade principal em vez de MainActivity (Trivial Drive), de onde você está chamando sua MainActivity, que é atividade Trivial Drive.
você receberá valores de código de resultado -1 se a compra for bem-sucedida, caso contrário, 0.
fonte
Eu estava enfrentando o mesmo problema e a solução aceita já estava implementada, mas não sabia o que estava causando isso. Mudar para a nova Google Play Billing Library 1.0 (lançada em 19 de setembro de 2017) corrigiu o problema para mim!
Espero que os links a seguir ajudem alguém que deseja implementar a nova biblioteca:
Postagem do blog do Google sobre o lançamento
Vídeo do youtube do Google
Play Billing Library Training Class
Amostra do Trivial Drive v2 do Google
Codelab da Play Billing Library publicado durante o Google I / O 2017
Play Billing Library Docs
Referência oficial para classes e métodos
Notas de lançamentos
fonte