Skip to content

Instantly share code, notes, and snippets.

@ponnamkarthik
Last active March 26, 2020 07:06
Show Gist options
  • Save ponnamkarthik/bffda44758e25d36e787bd09637c2485 to your computer and use it in GitHub Desktop.
Save ponnamkarthik/bffda44758e25d36e787bd09637c2485 to your computer and use it in GitHub Desktop.
In-app billing Purchase Item / Subscribe
/**
* To purchase an Product
*/
final List<String> skuList = new ArrayList<>();
skuList.add("product_1"); // SKU Id
SkuDetailsParams params = SkuDetailsParams.newBuilder()
.setSkusList(skuList)
.setType(BillingClient.SkuType.INAPP)
.build();
billingClient.querySkuDetailsAsync(params,
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult,
List<SkuDetails> skuDetailsList) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
if(skuDetailsList.size() == 1) {
SkuDetails skuDetails = skuDetailsList.get(0);
BillingFlowParams.Builder builder = BillingFlowParams.newBuilder()
.setSkuDetails(skuDetails).setType(BillingClient.SkuType.INAPP);
int responseCode = mBillingClient.launchBillingFlow(this, builder.build());
}
}
}
});
/**
*
* OR
*
*/
// Note: setOldSku is deprecated
BillingFlowParams.Builder builder = BillingFlowParams.newBuilder()
.setOldSku("prodcut_id").setType(BillingClient.SkuType.INAPP);
int responseCode = mBillingClient.launchBillingFlow(this, builder.build());
/**
* To purchase an Subscription
*/
final List<String> skuList = new ArrayList<>();
skuList.add("subscription_id"); // SKU Id
SkuDetailsParams params = SkuDetailsParams.newBuilder()
.setSkusList(skuList)
.setType(BillingClient.SkuType.SUBS)
.build();
billingClient.querySkuDetailsAsync(params,
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult,
List<SkuDetails> skuDetailsList) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
if(skuDetailsList.size() == 1) {
SkuDetails skuDetails = skuDetailsList.get(0);
BillingFlowParams.Builder builder = BillingFlowParams.newBuilder()
.setSkuDetails(skuDetails).setType(BillingClient.SkuType.SUBS);
int responseCode = mBillingClient.launchBillingFlow(this, builder.build());
}
}
}
});
/**
*
* OR
*
*/
// Note: setOldSku is deprecated
BillingFlowParams.Builder builder = BillingFlowParams.newBuilder()
.setOldSku("subscription_id").setType(BillingClient.SkuType.SUBS);
int responseCode = mBillingClient.launchBillingFlow(this, builder.build());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment