2016-06-20 2 views
3

Google Play API로 구매를 확인하려고합니다. 나는 purchaseId를 얻고 있으며 Purchases.products에 전화를 걸어 상태를 얻으려고합니다.자바 서버에서 Google Play 구매를 확인하십시오.

나는이 질문 (Android : inApp purchase receipt validation google play)에 대한 단계를 따라 왔으며 필요한 항목을 얻는 것이 정말 좋지만 Java 코드 작업에 대한 쉬운 예제를 얻을 수 없습니다.

지금 당장 JWT 토큰을 가지고 있는데 API를 호출 할 수 있도록 액세스 토큰을 만들 때 (자격 증명 개체를 만드는 데 사용해야 할 수도 있습니다.) API를 호출 할 필요가 있지만이를 완료하지 못했습니다. 그것.

아무에게도 코드 예제를 제공 할 수 있습니까?

+0

이 답변에 대한 정보 : http : //stackoverflow.com/questions/11115381/unable-to-get-the-subscription-information-from-google-play-android-developer-ap/29728826#29728826 – Tomcat

답변

2

마침내 Google Play에서 구매를 확인할 수있었습니다. 모바일 앱에서 물건을 구입하면 Google Play에서 영수증을 보내드립니다. 그럼, 내 서버에이 영수증을 보내고, 난 그냥 두 가지를 서버 측해야 할 일을했을 : JSON 내 구글 자격 증명 구글 자격 증명 및 영수증 -use

를 얻기 위해 이전에 생성 된 서비스 계정 -USE

을 google play에서 구매 정보를 얻으려면.

그리고 나는 그것을 수행하기 위해이 두 가지 기능을 사용 : 난 그냥 잠시 구매를 검증 할 수 있었다 구입 객체와

private static GoogleCredential getGoogleCredential() throws IOException { 
    List<String> scopes = new ArrayList<String>(); 
    scopes.add(AndroidPublisherScopes.ANDROIDPUBLISHER); 

    ClassLoader classLoader = MY_CLASS.class.getClassLoader(); 
    GoogleCredential credential = GoogleCredential.fromStream(classLoader.getResourceAsStream(GOOGLE_KEY_FILE_PATH)) 
      .createScoped(scopes); 
    return credential; 
} 

private static ProductPurchase getPurchase(GoogleReceipt receipt, GoogleCredential credential) 
     throws GeneralSecurityException, IOException { 
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); 
    JsonFactory jsonFactory = new JacksonFactory(); 
    AndroidPublisher publisher = new AndroidPublisher.Builder(httpTransport, jsonFactory, credential) 
      .setApplicationName(YOUR_APPLICATION_NAME).build(); 
    AndroidPublisher.Purchases purchases = publisher.purchases(); 

    final Get request = purchases.products().get(receipt.getPackageName(), receipt.getProductId(), 
      receipt.getPurchaseToken()); 
    final ProductPurchase purchase = request.execute(); 
    return purchase; 
} 

.

편집 : 오, API 패키지에서 GoogleReceipt 클래스를 찾지 마세요. 영수증 정보를 파싱하기 위해 만든 기본 클래스 일뿐입니다.

+0

귀하의 솔루션을 구현, 서버 (구글 appengine) 아래 예외를 throw합니다. 왜 그런지 알아? 처리기 발송 실패. 중첩 예외는 java.lang.NoSuchMethodError입니다. com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient $ Builder.setBatchPath (Ljava/lang/String;) Lcom/google/api/client/googleapis/services/AbstractGoogleClient $ 작성기; – tolgatanriverdi

+0

어떤 코드 라인이 예외를 던지고 있습니까? – Robles