Ошибка аутентификации API проверки квитанции Google PlayJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибка аутентификации API проверки квитанции Google Play

Сообщение 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."
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... tion-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»