gpt4 book ai didi

android - 计费流程未启动

转载 作者:行者123 更新时间:2023-12-04 03:26:06 25 4
gpt4 key购买 nike

我已经在这里待了一个星期了。我无法启动计费流程,请帮忙!谢谢。我没有收到任何错误。据我所知,它永远不会触发“public void onSkuDetailsResponse”方法。

我曾尝试将我的整个应用剥离到仅包含计费部分以使其正常工作,但仍然没有成功。

private void setupBillingClient() {
billingClient = BillingClient.newBuilder(this).setListener(this).enablePendingPurchases().setListener(this).build(); //billingClient = BillingClient.newBuilder(this).enablePendingPurchases().build(); //
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
Toast.makeText(getApplication(), "success to connect billing", Toast.LENGTH_SHORT).show();
loadAllSKUs();
}
}

@Override
public void onBillingServiceDisconnected() {

}
});
}

private void loadAllSKUs() {
final List<String> skuList = new ArrayList<>();
skuList.add("GunVault Donation"); //from play store...do this for multiple items if have them
// SkuDetailsParams params = SkuDetailsParams.newBuilder()
// .setSkusList(skuList)
// .setType(BillingClient.SkuType.INAPP)
// .build();
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() { // billingClient.querySkuDetailsAsync(params, new SkuDetailsResponseListener()
@Override
public void onSkuDetailsResponse(BillingResult billingResult, List<SkuDetails> skuDetailsList) { // if (skuDetailsList != null && billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
for (Object skuDetailsObject : skuDetailsList) { // for (final SkuDetails skuDetails : skuDetailsList) {
final SkuDetails skuDetails = (SkuDetails) skuDetailsObject;

String sku = skuDetails.getSku();
String price = skuDetails.getPrice();
String gunVaultDonation;

Toast.makeText(About.this, skuDetails.getSku() + " " + sku, Toast.LENGTH_SHORT).show();

final BillingFlowParams params = BillingFlowParams.newBuilder()
.setSkuDetails(skuDetails)
.build();

btnDonate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplication(), "Donate clicked", Toast.LENGTH_SHORT).show();
BillingFlowParams billingFlowParams = BillingFlowParams
.newBuilder()
.setSkuDetails(skuDetails)
.build();
billingClient.launchBillingFlow(About.this, billingFlowParams);
}
});




}
} else if (billingResult.getResponseCode() ==
BillingClient.BillingResponseCode.ERROR) {
Toast.makeText(About.this, "Error", Toast.LENGTH_SHORT).show();
}
}

});

如果有其他需要,请告诉我

最佳答案

终于明白了。我使用的是应用内商品的商品名称而不是商品 ID。

关于android - 计费流程未启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67592211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com