Разъяснения о том, как проверить токен покупки Google In App Purchase на сервере? - PullRequest
0 голосов
/ 18 мая 2018

Учитывая, что конечная точка моего сервера получила токен покупки, относящийся к покупке Google In App Billing, как мне выполнить программную проверку и получение доступа к его содержимому?

Я уже могу проверить Google Вход токен с использованием (PHP)

    $client = new Google_Client(['client_id' => $client_id]);

    $payload = $client->verifyIdToken($token);

    if ($payload)
        return $payload['sub'];

Но как мне использовать Google_Client для проверки токена покупки и получения доступа к его содержимому.

Это так?на самом деле это просто случай отправки GET на сервер Google, очень похожий на , следующий за примером Ruby ?

Или это определенная команда Google_Client, которую я должен вызывать?

Я начинаю думать, что это случай репликации упомянутого кода Ruby в PHP с использованием OAuth2 или чего-то подобного, поскольку в Документах Google действительно говорится, что, как только у сервера есть токен покупки:

Используйте раздел «Подписки и покупки в приложении» в Google Play Developer API, чтобы выполнить запрос GET для получения сведений о покупке из Google Play (Покупкиes.products для одноразовой покупки продукта или рассылки покупок для подписки).Запрос GET включает в себя имя пакета приложения, идентификатор продукта и токен (токен покупки).

Просто хотели бы получить некоторые разъяснения, если это возможно?Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 августа 2018

Ответ Антиноя сработал для меня.skuID является идентификатором продукта.Вы можете найти это из Google PHP кода.Для начинающего PHPer, который борется с внутренним изменением покупки Google в приложении:

  1. Получите учетную запись службы Google (загрузите файл json учетных данных) и получите доступ к финансовому отчету вашего приложения Google Play.
  2. Composer install google / apiclient
  3. Используйте указанный выше код

Кстати: openssl_verify у меня не работает.2 года назад я использовал JWT get acces_token, затем вызвал API, чтобы проверить оплату в приложении.Я думаю, что выше это новый способ.

Я не знаю, почему Google не может просто предоставить простой пример для этой функции.Они просто дают разработчикам тонны документов для чтения.

0 голосов
/ 27 мая 2018

Чтобы проверить и получить информацию о токене покупки, полученном в результате покупки Google in app в вашем клиентском приложении, используйте следующий код PHP:

putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/mydir/credentials.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/androidpublisher');
$service = new Google_Service_AndroidPublisher($client);
$purchase = $service->purchases_products->get($packageName, $skuID, $purchaseToken);

Затем вы можете получить доступ ко всей необходимой информации,обычные способы, например,

echo $purchase['orderId'];

Полный список имен доступа можно найти в Документах Google здесь https://developers.google.com/android-publisher/api-ref/purchases/products

имя_пакета - это имя пакета приложения, а skuID - этоидентификатор SKU строки управляемого продукта, который можно создать в консоли разработчика Google.Маркер покупки - это тот, который возвращается вам в вашем клиентском приложении при успешном результате покупки приложения, поэтому вам необходимо отправить его в конечную точку вашего сервера с помощью команды POST через HTML.Не забудьте использовать SSL / TLS для этого.

Файл credentials.json автоматически загружается из Google Developer Consoler при создании новой учетной записи службы в разделе «Настройки / Доступ к API».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...