Reputation: 23
Really struggling to get my head round setting up in app purchases in android studio, code and logcat are below.
BillingClient billingClient = BillingClient.newBuilder(AdditionalSupport.this)
.setListener(purchasesUpdateListener)
.enablePendingPurchases()
.build();
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
List<String> skuList = new ArrayList<>();
skuList.add("one_time_purchase");
skuList.add("two_time_purchase");
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
Log.d(TAG, "onBillingSetupFinished: sku list" + skuList);
billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult, List<SkuDetails> skuDetailsList) {
Log.d(TAG, "onBillingSetupFinished: query billing " + billingResult.getResponseCode());
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
Log.d(TAG, "onBillingSetupFinished: query finished " + skuDetailsList);
for (SkuDetails skuDetails : skuDetailsList) {
Log.d(TAG, "onBillingSetupFinished: query sku " + skuDetails);
BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
.setSkuDetails(skuDetails)
.build();
int responseCode = billingClient.launchBillingFlow(AdditionalSupport.this, billingFlowParams).getResponseCode();
Log.d(TAG, "onBillingSetupFinished: query finished " + responseCode);
}
}
}
});
}
}
Key logcat entries:
AdditionalSupport: onBillingSetupFinished: sku list[one_time_purchase, two_time_purchase] AdditionalSupport: onBillingSetupFinished: query billing 0 AdditionalSupport: onBillingSetupFinished: query finished []
So the billing response code is 0, or OK, but the skuDetailsList is empty. I would have thought the skuDetailsList got the information from the skuList, which is then passed into the params variable. Does anyone know what I am doing wrong? Or if you know of any good tutorials on android in app purchases, I would be very grateful if you could point me to them.
Many thanks in advance.
Upvotes: 1
Views: 131
Reputation: 23
Finally managed to work it out.
All you have to do is upload the app to the play store and, assuming you have loaded some in app purchase information onto your play account, it will work.
Upvotes: 1