В настоящее время я пытаюсь использовать Spring Boot для Java, чтобы проверить квитанции Google Play. Такие функции, как просмотр всех подписных платежей зарегистрированных приложений, работают нормально, но когда я пытаюсь проверить поступления, пишет только, что у меня нет разрешения. Что я должен делать? Я предоставил права владельца в gcp и права администратора сервисной учетной записи в консоли Google Play. Кроме того, насколько я понимаю, страница доступа к API недавно исчезла из консоли Google Play.
type java
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.androidpublisher.AndroidPublisher;
import com.google.api.services.androidpublisher.AndroidPublisherScopes;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.AccessToken;
import com.google.auth.oauth2.GoogleCredentials;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
import java.io.InputStream;
import java.security.GeneralSecurityException;
import java.util.Collections;
@Slf4j
@Configuration
public class GoogleConfig {
@Bean
public GoogleCredentials googleCredentials() throws IOException {
InputStream inputStream = getClass().getResourceAsStream("/firebase/hanstylesoft-8446e3d19866.json");
GoogleCredentials googleCredentials = GoogleCredentials.fromStream(inputStream)
.createScoped(Collections.singleton(AndroidPublisherScopes.ANDROIDPUBLISHER));
AccessToken accessToken = googleCredentials.refreshAccessToken();
// Fetch access token
googleCredentials.refreshIfExpired();
if (accessToken != null) {
log.info("Access Token: {}", accessToken.getTokenValue());
log.info("Token Expiry: {}", accessToken.getExpirationTime());
}
return googleCredentials;
}
@Bean
public AndroidPublisher androidPublisher(GoogleCredentials credentials) throws GeneralSecurityException, IOException {
return new AndroidPublisher.Builder(
GoogleNetHttpTransport.newTrustedTransport(),
GsonFactory.getDefaultInstance(),
new HttpCredentialsAdapter(credentials)
).setApplicationName("packageName").build();
}
}
type java
@Service
@RequiredArgsConstructor
public class PurchaseServiceImpl implements PurchaseService {
private final AndroidPublisher androidPublisher;
@Override
public ListSubscriptionsResponse getSubscriptionListForGoogle(String packageName) throws IOException, GeneralSecurityException {
AndroidPublisher.Monetization.Subscriptions.List request = androidPublisher.monetization().subscriptions().list(packageName);
return request.execute();
}
@Override
public SubscriptionPurchaseV2 verifyReceiptForGoogle(String packageName, String productId, String purchaseToken) throws IOException, GeneralSecurityException {
try {
AndroidPublisher.Purchases.Subscriptionsv2.Get request = androidPublisher.purchases().subscriptionsv2().get(packageName, purchaseToken);
return request.execute();
} catch (GoogleJsonResponseException e) {
log.error("GoogleJsonResponseException: {}", e);
return null;
}
}
type json
{
"code": 401,
"errors": [
{
"domain": "androidpublisher",
"message": "The current user has insufficient permissions to perform the requested operation.",
"reason": "permissionDenied"
}
],
"message": "The current user has insufficient permissions to perform the requested operation."
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... tion-error
Ошибка аутентификации API проверки квитанции Google Play ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1729235210
Anonymous
В настоящее время я пытаюсь использовать Spring Boot для Java, чтобы проверить квитанции Google Play. Такие функции, как просмотр всех подписных платежей зарегистрированных приложений, работают нормально, но когда я пытаюсь проверить поступления, пишет только, что у меня нет разрешения. Что я должен делать? Я предоставил права владельца в gcp и права администратора сервисной учетной записи в консоли Google Play. Кроме того, насколько я понимаю, страница доступа к API недавно исчезла из консоли Google Play.
type java
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.androidpublisher.AndroidPublisher;
import com.google.api.services.androidpublisher.AndroidPublisherScopes;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.AccessToken;
import com.google.auth.oauth2.GoogleCredentials;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
import java.io.InputStream;
import java.security.GeneralSecurityException;
import java.util.Collections;
@Slf4j
@Configuration
public class GoogleConfig {
@Bean
public GoogleCredentials googleCredentials() throws IOException {
InputStream inputStream = getClass().getResourceAsStream("/firebase/hanstylesoft-8446e3d19866.json");
GoogleCredentials googleCredentials = GoogleCredentials.fromStream(inputStream)
.createScoped(Collections.singleton(AndroidPublisherScopes.ANDROIDPUBLISHER));
AccessToken accessToken = googleCredentials.refreshAccessToken();
// Fetch access token
googleCredentials.refreshIfExpired();
if (accessToken != null) {
log.info("Access Token: {}", accessToken.getTokenValue());
log.info("Token Expiry: {}", accessToken.getExpirationTime());
}
return googleCredentials;
}
@Bean
public AndroidPublisher androidPublisher(GoogleCredentials credentials) throws GeneralSecurityException, IOException {
return new AndroidPublisher.Builder(
GoogleNetHttpTransport.newTrustedTransport(),
GsonFactory.getDefaultInstance(),
new HttpCredentialsAdapter(credentials)
).setApplicationName("packageName").build();
}
}
type java
@Service
@RequiredArgsConstructor
public class PurchaseServiceImpl implements PurchaseService {
private final AndroidPublisher androidPublisher;
@Override
public ListSubscriptionsResponse getSubscriptionListForGoogle(String packageName) throws IOException, GeneralSecurityException {
AndroidPublisher.Monetization.Subscriptions.List request = androidPublisher.monetization().subscriptions().list(packageName);
return request.execute();
}
@Override
public SubscriptionPurchaseV2 verifyReceiptForGoogle(String packageName, String productId, String purchaseToken) throws IOException, GeneralSecurityException {
try {
AndroidPublisher.Purchases.Subscriptionsv2.Get request = androidPublisher.purchases().subscriptionsv2().get(packageName, purchaseToken);
return request.execute();
} catch (GoogleJsonResponseException e) {
log.error("GoogleJsonResponseException: {}", e);
return null;
}
}
type json
{
"code": 401,
"errors": [
{
"domain": "androidpublisher",
"message": "The current user has insufficient permissions to perform the requested operation.",
"reason": "permissionDenied"
}
],
"message": "The current user has insufficient permissions to perform the requested operation."
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79100943/google-play-receipt-validation-api-authentication-error[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия