Quickstart

Get API client library

See the Github Repository for the latest version of the java API client library.

Use the sandbox endpoint for integration testing

The sandbox url is: https://preprod-paymentsresellersubscription.googleapis.com. You can override the rootUrl using the java client library as follows:

PaymentsResellerSubscription client = new PaymentsResellerSubscription.Builder(
    GoogleNetHttpTransport.newTrustedTransport(),
    JacksonFactory.getDefaultInstance(),
    requestInitializer)
    // Override the root_url for sandbox testing.
    .setRootUrl("https://preprod-paymentsresellersubscription.googleapis.com")
    .build();

Use oauth authentication for service accounts

If your production environment in on GCP, such as Compute Engine or App Engine, you can directly use:

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault().createScoped(SCOPES);

Otherwise, you can load the service account credential file explicitly.

GoogleCredentials credentials = GoogleCredentials.fromStream(new FileInputStream(jsonPath))
      .createScoped(SCOPES);

Then, specify a request initializer that automatically sets the auth token as follows:

HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credentials);


PaymentsResellerSubscription client = new PaymentsResellerSubscription.Builder(
      HTTP_TRANSPORT, JacksonFactory.getDefaultInstance(),
      requestInitializer
  ).build();

// Issue Subscription Provision API
client.partners()
    .subscriptions()
    .provision("partner_id",
        new GoogleCloudPaymentsResellerSubscriptionV1Subscription()
            .setProducts(ImmutableList.of("productId"))
            .setPartnerUserToken("user_token")
            .setServiceLocation(
                new GoogleCloudPaymentsResellerSubscriptionV1Location()
                  .setRegionCode("US")))
    .setSubscriptionId("subscriptionId")
    .execute();

Use user authorized oauth authentication

Depends on your production environment, OAuth 2.0 and the Google OAuth Client Library for Java provides code samples for authorization code flow in Servlet and AppEngine. You could also refer to the section Command-line authorization code flow in the oauth java client documentation to test the flow locally.

Once you obtained the user authorized credential, you can set the access token as follows:

// Issue Subscription Entitle API
client
  .partners()
  .subscriptions()
  .entitle("partners/partnerId/subscriptions/subscriptionId",
      new GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionRequest())
  .setAccessToken(credential.getAccessToken())
  .execute();

Please note that we don't need a request initializer for auth credentials when creating the client object, because the access token is manually specified.

PaymentsResellerSubscription client = new PaymentsResellerSubscription.Builder(
    GoogleNetHttpTransport.newTrustedTransport(),
    JacksonFactory.getDefaultInstance(),
    /* Don't specify an initializer for auth credentials */ request -> {})
    .build();

Use Refresh token for offline access

Oauth access token typically expires after a period of time. If you needs to retain user authorized access for future use, consider using offline access as detailed in Refreshing an access token.