2013-01-11 11 views
12

Sto lavorando su un In App Store sulla mia app, ho usato AndroidBillingLibrary da robotmedia, quando acquisto android.test.purchased utilizzando la libreria la risposta va bene, tutti i dati di cui ho bisogno sono lì dentro.Android in-app Billing v3: Non riceve firme

Il problema è che quando sono passato a Android in-app Billing v3 tutto questo è ricevuta dalla risposta, senza firme.

{"packageName":"com.my.sampleapp","orderId":"transactionId.android.test.purchased","productId":"android.test.purchased","developerPayload":"","purchaseTime":0,"purchaseState":0,"purchaseToken":"inapp:com.my.sampleapp:android.test.purchased"}

ho seguito esattamente questo campione https://developer.android.com/training/in-app-billing/preparing-iab-app.html#GetSample ma non ci sono le firme. Ho persino eseguito l'app di esempio fornita da Google, ma senza fortuna.

ho messo la mia chiave pubblica RSA con codifica Base64 correttamente in mHelper = new IabHelper(this, myPublicKey);

e questo è il mio codice di acquisto mHelper.launchPurchaseFlow(this, itempackage, 10001, mPurchaseFinishedListener);

OnIabPurchaseFinishedListener mPurchaseFinishedListener = new OnIabPurchaseFinishedListener() { 
     public void onIabPurchaseFinished(IabResult result, Purchase purchase) { 
      Log.i("Billing", "purchasing: " + result.getMessage()); 

      if (result.isFailure()) { 
       Log.i("Billing", "Error purchasing: " + result); 
       return; 
      } else if (purchase.getSku().equals("android.test.purchased")) { 
       Log.i("Billing - signature", purchase.getSignature()); 
       consumeItems(); 
      } else { 
       Log.i("Billing", "Error purchasing: " + result); 
      } 
     } 
    }; 

qualche modo il mio mPurchaseFinishedListener non riceve nulla dopo l'acquisto, ma lo protected void onActivityResult(int requestCode, int resultCode, Intent data) sta ricevendo qualcosa ma non c'è una firma.

Qualche soluzione a questo? È strano che v2 stia ricevendo le firme e v3 no.

+0

Ivan. Ho lo stesso problema, hai già trovato la risposta? – melodiouscode

+0

Non ancora, sono tornato alla v2. La nostra app è in modalità bozza, non è sicuro di quale sia il risultato di * android.test.acquistato * in modalità pubblicata. – NaviRamyle

+0

Questo è un duplicato esatto di: http://stackoverflow.com/questions/13893259/android-billing-v3-no-signature – prdatur

risposta

12

Non si ottiene le firme per gli ID di prova, android.test.purchased, ecc

Riceverai le firme con gli acquisti reali.

+0

ciao sei sicuro che otterrò firma con acquisto reale ?? ... perché quando ho usato google codice di esempio per id prodotto di prova non ottengo firma dati ma quando ho usato un altro codice da un altro tutorial ottengo datasignature per id prodotto di prova ... –

+0

@ Swap-IOS -Android, a beneficio di altri lettori, qual è stato l'altro codice che hai usato da "un altro tutorial"? Mi piacerebbe provare anche con questo – wired00

+1

@ wired00 qui è il link per un altro tutorial ... ma è in versione app 2 non 3 ... http: //www.androidhub4you.com/2013/03/how-to- inegrate-in-app-purchase-billing.html .. un'altra cosa ho trovato che quando si utilizza l'ID prodotto Test.purchased per l'acquisto di google restituisce la firma null ma se si prova con sandbox si otterrà la firma ma si non addebitato per quella transazione ... –

0

Cosa intendi per le firme? Quelle iscrizioni? O un oggetto in-app (consumabile o meno)? Poiché la fatturazione in-app v3 non supporta gli abbonamenti al momento, se si desidera tale funzione è necessario utilizzare v2 (https://developer.android.com/google/play/billing/billing_overview.html). Inoltre, assicurati che il tuo articolo sia contrassegnato come "elemento gestito" nella console degli sviluppatori (per Billing v3).

Scusate se ho frainteso. Inoltre, prova ad abilitare la modalità di debug sull'istanza di IabHelper, questo ti fornirà una panoramica migliore del tuo problema.

mHelper.enableDebugLogging(true, "YOURTAG"); 

vi suggerisco di dare un'occhiata alla guida di implementazione sul sviluppatori di siti web: https://developer.android.com/google/play/billing/billing_integrate.html

C'è anche il codice di esempio là.

+0

Dice "La firma vuota richiede la modalità di debug" – NaviRamyle

+0

Se questa è la prima volta che si implementa nella fatturazione della app, consultare http://mcondev.wordpress.com/2011/06/26/integrate-in-app-billing-just -3-linee-di-codice-nella-tua-app/ – Siddharth

+0

Grazie ci guarderò dentro – NaviRamyle

1

Come è stato detto da Rawkode, non si ottengono più firme per gli acquisti di test (android.test. *). Ho fatto il tuffo e ho caricato la mia app sul mercato (semplicemente non l'ho pubblicata) usando i miei prodotti reali.

Basso ed ecco che le firme hanno iniziato a essere restituite! Raccomando di modificare qualsiasi convalida lato server che si sta utilizzando per saltare il controllo della firma quando i dati contengono un ID oggetto android.test. *.

Problemi correlati