Last active
March 26, 2020 07:06
-
-
Save ponnamkarthik/bffda44758e25d36e787bd09637c2485 to your computer and use it in GitHub Desktop.
In-app billing Purchase Item / Subscribe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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