Google обеспечивает проверку чеков через Google Play Developer API, в рамках API - два конечных точки, которые вас больше всего интересуют: Purchases.products: get и Purchases.subscriptions: get.
Purchases.products: get
10 можно использовать для проверки покупки без автообновления, где Purchases.subscriptions: get
предназначен для проверки и повторной проверки подписки на автоматическое продление подписки.
Для использования любой конечной точки вы должны знать, что packageName
, productId
, purchaseToken
все они могут быть найдены в полезной нагрузке, полученной при покупке. Вам также нужен access_token
, который вы можете получить, создав учетную запись службы Google API.
Чтобы начать работу с учетной записью службы первого перейти к консоли разработчика Google Play API access settings page и нажмите кнопку Создать проект:
Теперь вы должны увидеть новый Linked проект и несколько новых разделов , в разделе «Учетная запись службы» нажмите кнопку «Создать учетную запись службы».
Вам будет представлен с информационным окном с инструкциями для создания учетной записи службы. Нажмите ссылку на Google Developers Console, и появится новая вкладка.
Теперь нажмите кнопку Создать новый идентификатор клиента, выберите учетную запись службы из параметров и нажмите кнопку Создать идентификатор клиента.
файл JSON загрузит, это ваш JSON веб-Токен вы будете использовать, чтобы обменять их на access_token
так держать его в безопасности.
Затем переключите вкладки обратно в консоль разработчика Google Play и нажмите «Готово» в информационном окне. Вы должны увидеть свою новую учетную запись службы в списке. Нажмите «Доступ к гранту» рядом с электронной почтой учетной записи службы.
Следующая под Выберите роль для этого пользователя, выберите Финансы и нажмите кнопку Добавить пользователя.
Вы теперь настроить учетную запись службы и имеет все необходимое для выполнения доступа квитанций валидаций. Затем мы обменяем ваш JWT на access_token.
access_token
истекает через один час обмена вы так нужен код сервера, чтобы справиться с этим и Google представили несколько библиотек на разных языках, чтобы справиться с этим (список не исчерпывающий):
Я не буду вдаваться в подробности, потому что есть много документации о том, как использовать эти библиотеки, но я упомянул, что вы хотите использовать https://www.googleapis.com/auth/androidpublisher
как область OAuth2, client_email
от JWT как issuer
и открытый ключ вы можете получить от private_key
, а кодовая фраза notasecret
будет использоваться для signing_key
.
После того, как у вас есть access_token
, вам нужно идти (по крайней мере, на следующий час, в этот момент вам нужно будет запросить новый, следуя тому же процессу в приведенном выше абзаце).
Чтобы проверить состояние расходуемого (не автоматическим обновлением) покупку сделать запрос HTTP get
к: https://www.googleapis.com/androidpublisher/v2/applications/com.example.app/purchases/products/exampleSku/tokens/rojeslcdyyiapnqcynkjyyjh?access_token=your_access_token
Если вы получите код ответа 200 HTTP, все прошло, как планировалось, и ваша покупка была действительна. 404 означает, что ваш токен недействителен, поэтому покупка была скорее всего попыткой мошенничества. A 401 будет означать, что ваш токен доступа неверен, а 403 будет означать, что у вашей учетной записи службы недостаточно доступа, проверьте, что вы включили Финансы для учетной записи доступа в консоли разработчика Google Play.
Отклик от 200 будет выглядеть примерно так:
{
"kind": "androidpublisher#productPurchase",
"purchaseTimeMillis": long,
"purchaseState": integer,
"consumptionState": integer,
"developerPayload": string
}
Для объяснения каждого свойства см https://developers.google.com/android-publisher/api-ref/purchases/products.
Подписки похожи, однако конечная точка выглядит следующим образом:
https://www.googleapis.com/androidpublisher/v2/applications/packageName/purchases/subscriptions/subscriptionId/tokens/token?access_token=you_access_token
И ответ должен содержать следующие свойства:
{
"kind": "androidpublisher#subscriptionPurchase",
"startTimeMillis": long,
"expiryTimeMillis": long,
"autoRenewing": boolean
}
См https://developers.google.com/android-publisher/api-ref/purchases/subscriptions для описания свойств и обратите внимание, что startTimeMillis
и expiryTimeMillis
будет изменяться в зависимости от продолжительности подписки.
Happy validating!
Здравствуйте Binil, вы завершили его для покупки подписки? –
его управляющий продукт @Anshul Tyag –
@BinilSurendran .. Мой вопрос отличается от вашего вопроса, но мне нужно знать идентификатор электронной почты, который использовался для покупки в приложении. можете ли вы, пожалуйста, помочь мне получить эту электронную почту, так как мне это нужно для дальнейших ссылок в моем приложении – Pallavi