Проверка платежной подписки на Android в приложении

Я хотел бы проверить подписку на моем сервере, но при попытке получить токен доступа я получаю ошибку invalid_grant. Я использую этот код в php на моем сервере:

$refreshToken = '4/cTphJ...';
$clientId = '1234567.apps.googleusercontent.com';
$clientSecret = '';
$redirectUri = 'https://www.example.com/oauth2callback';

$ch = curl_init();

$url  = 'https://accounts.google.com/o/oauth2/token';

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'grant_type=authorization_code&client_id=' . $clientId . '&client_secret=' . $clientSecret . '&code=' . $refreshToken . '&redirect_uri=' . $redirectUri);

$data = curl_exec($ch);

curl_close($ch);

Что может быть не так?

Изменить: Когда я сгенерировал правильный код, то я больше не получаю ошибку invalid_grant, но теперь я получаю ошибку "Эта учетная запись разработчика не является владельцем приложения". Мое приложение для Android и новый API-проект в консоли Google создаются с одной и той же учетной записью Google, так почему я вижу эту ошибку?

1 ответ

Решение

Это была моя ошибка. Я назвал этот URL https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=...&client_id=... но мой redirect_uri был не прав, а потом я получил неправильный код.

Мой адрес электронной почты в настройках консоли разработчика был неверным.

Другие вопросы по тегам