4

Google Play API で購入を検証しようとしています。purchaseId を取得しており、 Purchases.products を呼び出してそのステータスを取得しようとしています。

私はこの質問の手順に従ってきました ( Android : inApp purchase receptor validation google play )。何が必要かを理解するのは本当に素晴らしいことですが、動作する Java コードの簡単な例を得ることができません。

現在、私は JWT トークンを持っています。API を呼び出すには、それを使用してアクセス トークンを作成する (Credentials オブジェクトを作成するなど) 必要があることはわかっていますが、それを完了することができませんでした。

その方法を知るためのコード例を誰かに提供してもらえますか?

4

1 に答える 1

4

やっとGoogle playで購入履歴を確認できました。モバイル アプリから何かを購入すると、Google Play からレシートが送られてきます。次に、この領収書をサーバーに送信し、サーバー側で次の 2 つのことを行う必要がありました。

-以前に生成されたサービス アカウント Json を使用して、Google 資格情報を取得します。

-Google 認証情報とレシートを使用して、Google Play から購入情報を取得します。

そして、次の 2 つの関数を使用して実行しました。

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;
}

購入オブジェクトを使用して、購入をわずか 1 分で検証することができました。

編集: API パッケージで GoogleReceipt クラスを探す必要はありません。これは、レシート情報を解析するために作成した基本的なクラスです。

于 2016-07-06T11:34:47.567 に答える