2013-01-11 10 views
12

ja pracuję nad W App Store na mojej aplikacji użyłem AndroidBillingLibrary przez robotmedia, kiedy zakup android.test.purchased z wykorzystaniem biblioteki odpowiedź jest OK, wszystkie potrzebne dane są tam.Android In-App Billing v3: Nie otrzymaniu podpisów

Problemem jest to, kiedy przeszedłem do Android w aplikacji v3 Billing to wszystko otrzymał od odpowiedzi, bez podpisów.

{"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"}

Śledziłem dokładnie tę próbkę https://developer.android.com/training/in-app-billing/preparing-iab-app.html#GetSample ale nie ma podpisów. Prowadzę nawet przykładową aplikację Google, ale bez powodzenia.

Kładę Base64 zakodowane RSA klucz publiczny prawidłowo mHelper = new IabHelper(this, myPublicKey);

i to jest mój kod zakup 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); 
      } 
     } 
    }; 

Jakoś moja mPurchaseFinishedListener nie odbiera niczego po zakupie, ale protected void onActivityResult(int requestCode, int resultCode, Intent data) otrzymuje coś, ale nie ma podpisu.

Jakieś rozwiązanie tego? To dziwne, że v2 otrzymuje sygnatury, a v3 nie.

+0

Ivan. Mam ten sam problem, czy znalazłeś już odpowiedź? – melodiouscode

+0

Jeszcze nie, przełączyłem się z powrotem na v2. Nasza aplikacja działa w trybie roboczym, nie wiem, jaki jest wynik * android.test.zakupione * w trybie opublikowanym. – NaviRamyle

+0

To jest dokładny duplikat: http://stackoverflow.com/questions/13893259/android-billing-v3-no-signature – prdatur

Odpowiedz

12

Nie dostaniesz podpisów dla identyfikatorów testowych, android.test.purchased itp

Otrzymasz podpisów z rzeczywistych zakupów.

+0

cześć czy jesteś pewien, że dostanę podpis z prawdziwym zakupem? ... ponieważ gdy użyłem kodu przykładowego google do identyfikatora produktu testowego, nie otrzymuję sygnatury danych, ale kiedy użyłem innego kodu z innego samouczka, otrzymuję datasignature dla identyfikatorów produktów testowych ... –

+0

@ Swap-IOS -Android, dla korzyści innych czytelników, jaki był inny kod z "innego samouczka"? Chciałbym przetestować z tym również – wired00

+1

@ wired00 tutaj jest link do innego samouczka ... ale jego wersja aplikacji 2 nie 3 ... http: //www.androidhub4you.com/2013/03/how-to- inegrate-in-app-purchase-billing.html ... jeszcze jedna rzecz odkryłem, że kiedy używasz kupowanego produktu Test.purchased id niż google, odeślij podpis zerowy, ale jeśli spróbujesz z piaskownicą, to dostaniesz podpis, ale będziesz nie obciążono za tę transakcję ... –

0

Co masz na myśli przez podpisy? Czy to Subskrypcje? Lub element w aplikacji (materiały eksploatacyjne czy nie)? Ponieważ rozliczenie w aplikacji v3 nie obsługuje obecnie subskrypcji, jeśli chcesz korzystać z tej funkcji, musisz użyć wersji 2 (https://developer.android.com/google/play/billing/billing_overview.html). Upewnij się też, że produkt jest oznaczony jako "zarządzany element" w konsoli programisty (w przypadku rozliczeń v3).

Przepraszam, jeśli źle zrozumiałem. Spróbuj także włączyć tryb debugowania w instancji IabHelper, dzięki czemu uzyskasz lepszy przegląd problemu.

mHelper.enableDebugLogging(true, "YOURTAG"); 

Proponuję przyjrzeniu przewodnika realizacji na stronie Developers: https://developer.android.com/google/play/billing/billing_integrate.html

tam również przykładowy kod tam.

+0

Mówi "Pusty podpis wymaga trybu debugowania" – NaviRamyle

+0

Jeśli po raz pierwszy implementujesz w billingach aplikacji spójrz na http://mcondev.wordpress.com/2011/06/26/integrate-in-app-billing-just -3-linie-kodu-w-twojej-aplikacji/ – Siddharth

+0

Dzięki, że zagłębię się w to – NaviRamyle

1

Jak zostało powiedziane przez Rawkode, nie masz już podpisów na zakupy testowe (android.test. *). Wziąłem nurkowanie i przesłałem moją aplikację na rynek (po prostu jej nie opublikowałem) używając moich prawdziwych produktów.

Niskie i wyglądające podpisy zaczęły być zwracane! Zalecam zmianę dowolnego sprawdzania poprawności po stronie serwera, którego używasz, aby pominąć sprawdzanie podpisu, gdy dane zawierają identyfikator elementu android.test. *.

Powiązane problemy