静的なGoogle Play請求をテストするために予約済みの3つの製品IDを使用してアプリ内購入をテストしています responses :
ただし、setSku
およびsetType
は、BillingFlowParams.Builder
class では非推奨のようです。代わりに、setSkuDetails(SkuDetails)
を使用する必要があります。
サンプルコードのBillingFlowParams
を変更して、テスト製品IDにSkuDetails
を使用するにはどうすればよいですか?
BillingFlowParams flowParams = BillingFlowParams.newBuilder()
.setSku(skuId)
.setType(SkuType.INAPP)
.build();
int responseCode = mBillingClient.launchBillingFlow(flowParams);
billingClient.querySkuDetailsAsyncからSkuDetailsを取得する必要があります。サンプルコードは次のようになります。
private BillingClient mBillingClient;
// ....
mBillingClient = BillingClient.newBuilder(this).setListener(new PurchasesUpdatedListener() {
@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
if (responseCode == BillingClient.BillingResponse.OK
&& purchases != null) {
// do something you want
} else if (responseCode == BillingClient.BillingResponse.USER_CANCELED) {
} else {
}
}
}).build();
mBillingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(@BillingClient.BillingResponse int billingResponseCode) {
if (billingResponseCode == BillingClient.BillingResponse.OK) {
// The billing client is ready. You can query purchases here.
List<String> skuList = new ArrayList<>();
skuList.add("Android.test.purchased");
SkuDetailsParams skuDetailsParams = SkuDetailsParams.newBuilder()
.setSkusList(skuList).setType(BillingClient.SkuType.INAPP).build();
mBillingClient.querySkuDetailsAsync(skuDetailsParams,
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) {
BillingFlowParams flowParams = BillingFlowParams.newBuilder()
.setSkuDetails(skuDetailsList.get(0))
.build();
int billingResponseCode = billingClient.launchBillingFlow(SkuActivity.this, flowParams);
if (billingResponseCode == BillingClient.BillingResponse.OK) {
// do something you want
}
}
});
}
}
@Override
public void onBillingServiceDisconnected() {
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
});
https://developer.Android.com/google/play/billing/billing_library_overview もご覧ください