studio purchase play pay not manager library integrada google facturacion app php android api google-api-php-client publisher

php - purchase - Use la cuenta de servicio para verificar la compra de Google InApp



install google play billing library (2)

He intentado tantas cosas en los últimos días, pero ahora me he quedado sin ideas :(

Quiero verificar una compra en aplicación que se haya realizado en mi aplicación de Android.

1) Creé una nueva cuenta de servicio en la consola API de Google.

1a) La cuenta de servicio se enumera bajo permisos y tiene el permiso "puede ver"

2) Estoy usando la versión más actual de https://github.com/google/google-api-php-client

3) fragmento de código de mi script 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 = ''123456789123-vxoasdt8qwe6awerc9ysdfmjysdfysf64werweria8fh@developer.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) Respuesta de Google:

OBTENGA https://www.googleapis.com/androidpublisher/v1.1/applications/de.test.myapp/inapp/de.test.inapp.google.balance5eur/purchases/[PURCHASETOKEN] : (401) El usuario actual tiene Permisos insuficientes para realizar la operación solicitada.

[PURCHASETOKEN] es el token de compra que recibí de google

5) Establecer $ cred-> sub = ''[email protected]'' a mi dirección de correo aparece

Error al actualizar el token de OAuth2, mensaje: ''{"error": "cliente no autorizado", "error_description": "Cliente no autorizado o alcance en la solicitud". } ''


Ok, encontré la solución!

Debes conectar tu API con tu aplicación. Debe ir a la página de publicación de Google Play ( https://play.google.com/apps/publish ) e invitar a un usuario con el correo electrónico de la cuenta de servicio en Configuración-> Cuenta de usuario y derechos-> Invitar a nuevo usuario y darle el privilegios de "Ver informes financieros".

Esto significa que, mientras que normalmente verá una cantidad de usuarios de su dominio enumerados en Google Play Console (Correo electrónico: [email protected], Rol: Finanzas; Correo electrónico: [email protected], Rol: Administrador), lo hará ahora agregue otro usuario y dele un rol de Finanzas (Correo electrónico: [email protected], Rol: Finanzas).

Gracias, trabaja para mí, ¡buena suerte!


Creo que debes usar el cliente web OAuth 2.0.