Jean,
On Thursday, August 28, 2014 5:32:28 PM UTC-3, Jean Carlos Almeida wrote:
-- Este in-app Billing é uma complicação total. Tive muita dificuldade para implementar no meu app e não tive retorno satisfatório em vendas.
Mas as dicas são:
1) Implemente um Payload.
2) No meu app, toda vez que é iniciado ele consulta a loja para verificar se comprou o produto ou não. Talvez usar uma shared preference seja mais rápido, mas tem o problema de você não saber se a pessoa devolveu o produto. Só se periodicamente você verificar se a pessoa ainda é "dona" do produto comprado.
3) Os produtos de teste servem apenas para testar as rotinas de compra, eles sempre dão erro quando se tenta verificar a compra dos mesmos. Li que é um bug no código, não sei se já arrumaram nem a veracidade desta informação.
4) Faça o teste de compra num aparelho real, no emulador não funcionou bem, com um cartão de crédito real.
5) Cancele a compra do item, produto, o mais rápido possível após alguns testes. E se for o caso compre novamente. Pois se você cancela depois de 1 semana, o dinheiro é devolvido mas o usuário continua com a posse do produto. Fiz teste de devolução em 1 dia e não deu problema, após alguns horas o produto era retirado da posse do usuários.
Espero ter ajudado.
[]s Daniel
www.neoage.com.br
https://play.google.com/store/apps/developer?id=DmsLabs
On Thursday, August 28, 2014 5:32:28 PM UTC-3, Jean Carlos Almeida wrote:
Pessoal implementei minha classe para in-app Billing e tudo ocorreu perfeitamente só que......Não consigo realizar compra pelo celular do desenvolvedor (O meu).Não consigo testar o aplicativo debugando, quando clico em comprar, aparece: "Esta versão do aplicativo não está configurada para faturamento....", pelo que entendi isto é por que o aplicativo não está na google play, porém ele está com a mesma versão, só que estou executando direto do eclipse.Instalando em um dispositivo terceiro, consegui realizar a compra, porém não ocorreu o fluxo que eu desejava após a conclusão da compra, porém como vou saber o que está dando errado se não consigo debugar?Por favor alguém sabe me ajudar?Segue código caso achem necessário:
public class Compra extends ActivityBase{
private static String noAd = "";
private IabHelper mHelper;
private int codigoCompra = 1001;
private ProgressDialog progresso;
private ActivityBase tela;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState );
setContentView(R.layout.compra); //Criar this
noAd = "MINHA CHAVE"
mHelper = new IabHelper(this,"MEU PAYLOAD");
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener () {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
return;
}
if (mHelper == null) return;
mHelper.queryInventoryAsync(getInventarioListener );
}
});
tela = this;
String compra = getIntent().getStringExtra("Compra" );
}
public void comprar(View v)
{
removerAnuncios();
}
IabHelper.QueryInventoryFinishedListener getInventarioListener = new IabHelper.QueryInventoryFinishedListener () {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
if (mHelper == null) return;
if (result.isFailure()) {
return;
}
consultarCompras();
// Produto comprado
Purchase noAdProduto = inventory.getPurchase(noAd);
boolean noAdComprado = (noAd != null &&
verifyDeveloperPayload(noAdProduto ));
if (noAdComprado)
{
salvarCompra(tela.getString(R. string.noAd));
}
}
};
IabHelper.OnIabPurchaseFinishedListener compraFinalizadaListener = new IabHelper.OnIabPurchaseFinishedListener () {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
progresso.dismiss();
if (mHelper == null) return;
if (result.isFailure()) {
Suporte.alertar(tela, "Falha ao realizar compra!");
//EasyTracker.getInstance(tela).send(MapBuilder. createEvent("Compra",
//"Falha ao comprar", "Produto: "+purchase.getSku(), null).build());
return;
}
if (!verifyDeveloperPayload(purchase )) {
Suporte.alertar(tela.getApplicationContext (), "Falha ao realizar compra. Foi detectada uma tentativa de fraude!");
//EasyTracker.getInstance(tela).send(MapBuilder. createEvent("Compra",
//"Tentativa de fraude", "Produto: "+purchase.getSku()+" - Payload: "+purchase.getDeveloperPayload(), null).build());
return;
}
if (purchase.getSku().equals(noAd)) {
Suporte.alertar(tela, "Compra realizada com sucesso!");
salvarCompra(noAd);
//tela.desabilitarAdPosCompra();
}
}
};
private boolean verifyDeveloperPayload(Purchase p) {
return p != null && p.getDeveloperPayload().equals( "MEU PAYLOAD");
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i("AA","onActivityResult(" + requestCode + "," + resultCode + "," + data);
// Pass on the activity result to the helper for handling
if (!mHelper.handleActivityResult( requestCode, resultCode, data)) {
this.setOnActivityResultCompra( requestCode, resultCode, data);
}
else {
Log.i("BB", "onActivityResult handled by IABUtil.");
}
}
public void removerAnuncios() {
mostrarCarregando();
String<span style="color: #000;" class="styled-by-p
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
0 comentários:
Postar um comentário