2014-06-20 10 views
9

Próbowałem tak wiele rzeczy w ciągu ostatnich dni, ale teraz jestem z pomysłów :(skorzystać z usługi w celu sprawdzenia Google InAppPurchase

Chcę zweryfikować inAppPurchase poczynione w moim Android app.

1) Stworzyłem nowe konto usługi w konsoli Google API.

1a) Konto usługi wymienione unter uprawnienia i ma "można zobaczyć" pozwolenie

2) Używam najnowszej wersji https://github.com/google/google-api-php-client

3) fragment kodu z mojego skryptu PHP:

$client = new Google_Client(); 
$client->setApplicationName('myAppName'); 
$client->setClientId('123456789123-vxoasdt8qwe6awerc9ysdfmjysdfysf64werweria8fh.apps.googleusercontent.com'); 
$key = file_get_contents('/shr/data/stor/b516cexx3123asdf3988345d8133e7f86bfas2553-privatekey.p12'); 
$service_account_name = '[email protected]per.gserviceaccount.com'; 

$client->setScopes(array('https://www.googleapis.com/auth/androidpublisher')); 
$cred = new Google_Auth_AssertionCredentials($service_account_name, array('https://www.googleapis.com/auth/androidpublisher'), $key); 
$client->setAssertionCredentials($cred); 

try { 
    $service = new Google_Service_AndroidPublisher($client); 
    $googleApiResult = $service->inapppurchases->get($externalAppId, $externalProductId, $purchaseToken); 
} catch (Exception $e) { 
    var_dump($e->getMessage()); 
} 

4) odpowiedź od Google:

GET https://www.googleapis.com/androidpublisher/v1.1/applications/de.test.myapp/inapp/de.test.inapp.google.balance5eur/purchases/[PURCHASETOKEN]: (401) Bieżący użytkownik ma niewystarczające uprawnienia do wykonania żądanej operacji .

[PURCHASETOKEN] jest znak zakup dostałam od google

5) Ustawianie $ cred-> sub = '[email protected]' na mój adres poczty wychowuje

błąd odświeżenie tokenu OAuth2, komunikat: "{" error ": " unauthorized_client "," error_description ":" Nieautoryzowany klient lub zasięg w żądaniu. " } '

Odpowiedz

29

Ok Znalazłem rozwiązanie!

Musisz połączyć swój interfejs API z aplikacją. Musisz przejść do strony publikowania Google Play (https://play.google.com/apps/publish) i zaprosić użytkownika z adresem e-mail konta usługi w Ustawieniach-> Konto użytkownika & uprawnienia-> Zaproś nowego użytkownika i nadaj mu uprawnienia "Wyświetl raporty finansowe".

Oznacza to, że zazwyczaj możesz zobaczyć wielu użytkowników z Twojej domeny wymienionych w Konsoli Google Play (e-mail: uż[email protected], rola: finanse, e-mail: uż[email protected]_domena.com, rola: administrator), teraz dodasz innego użytkownika i dasz mu rolę Finance (Email: [email protected], Role: Finance).

Dziękuję działa dla mnie, powodzenia!

+2

Uratowałeś mój dzień! Dziękuję Ci bardzo! Dlaczego nie jest to udokumentowane w dokumentacji Google? – glutorange

+0

Awesome, thanks! Właśnie uratowałeś mnie przed wielkim bólem głowy ... – Mike

+0

Niestety to nie rozwiązuje problemu dla mnie. Ta sama odpowiedź błędu. Co oznacza "łączenie interfejsu API z aplikacją"? Czy to jest adres e-mail konta usługi? –

-1

Myślę, że musisz użyć klienta WWW OAuth 2.0.

+0

To powinien być komentarz – NSNoob

+0

powinien być komentarzem. –

Powiązane problemy