Я пытаюсь проверить покупки моих мобильных пользователей на сервере, как описано в https://developer.android.com/google/play/billing/billing_best_practices
Я сталкиваюсь с печально известной ошибкой "Идентификатор проекта, используемый для вызова Google Play Developer API, не был связанв консоли разработчика Google Play. "
После множества копаний в SO, Google, ... и по-прежнему возникают проблемы, я прошу вашей помощи.
Итак, вот мои настройки:
Учетная запись службы настроена в моей игровой консоли G:
У учетной записи службы есть разрешение:![enter image description here](https://i.stack.imgur.com/eR4LY.png)
Я скачал ключ JSON с консоли разработчиков Google
Я запускаюследующий код Котлина
Код:
compile 'com.google.http-client:google-http-client-gson:1.25.0'
compile 'com.google.apis:google-api-services-androidpublisher:v3-rev30-1.25.0'
val httpTransport = GoogleNetHttpTransport.newTrustedTransport()
val jsonFactory = GsonFactory.getDefaultInstance()
val applicationName = "MYAPP"
val packageName = "my.package"
val json = "copy/paste json key here"
val credential = GoogleCredential.fromStream(StringInputStream(json), httpTransport, jsonFactory)
.createScoped(listOf((AndroidPublisherScopes.ANDROIDPUBLISHER)))
val publisher = AndroidPublisher.Builder(httpTransport, jsonFactory, credential)
.setApplicationName(applicationName)
.build()
val productId = "product_id"
val userPurchaseToken = "a_token"
val get = publisher.purchases()
.products()
.get(packageName, productId, userPurchaseToken)
val purchase = get.execute()
Logger.getLogger("Payment user").info("Found google purchase item ${purchase.toPrettyString()}")
И затем я получаю исключение
com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code": 403,
"errors": [
{
"domain": "androidpublisher",
"message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console.",
"reason": "projectNotLinked"
}
],
"message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console."
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:150)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:321)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1067)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
Обратите внимание, что я ждал 24 часа ивсе еще есть та же ошибка.
очень странная вещь в том, что мне удается перечислить APK с примером кода в
https://github.com/googlesamples/android-play-publisher-api/blob/master/v3/java/src/com/google/play/developerapi/samples/ListApks.java Я полностью потерян здесь ...
Почему мойключ работает для перечисления APK, но не работает для подтверждения покупки?
РЕДАКТИРОВАТЬ: добавлен шаг 5