当前位置: 首页 > 知识库问答 >
问题:

如何修复android应用的应用内购买?

鲁景山
2023-03-14

我在google play store中有一个应用程序,在添加计费3V以处理订阅时遇到了一些问题。任何新的订阅者在付款和付款完成并出现在谷歌控制台后都无法访问我的应用程序

我希望能在我的应用程序中帮助我处理应用程序内购买,代码如下:

public static void isUserHasSubscription(Context Context,onCheck onCheck){BillingClient BillingClient=BillingClient.newBuilder(Context).enablePendingPurchases().setListener(new PurchasesUpdatedListener(){@Override public void onPurchasesUpdated(@NonNull BillingResult BillingResult,@Nullable List List List){

        }
    }).build();

    billingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(BillingResult billingResult) {
            Purchase.PurchasesResult purchasesResult=billingClient.queryPurchases(BillingClient.SkuType.SUBS);


            billingClient.queryPurchaseHistoryAsync(BillingClient.SkuType.SUBS,(billingResult1, list) -> {

                Log.d("billingprocess","purchasesResult.getPurchasesList():"+purchasesResult.getPurchasesList());

                //                        //here you can pass the user to use the app because he has an active subscription
                //                        Intent myIntent=new Intent(context,MainActivity.class);
                //                        startActivity(myIntent);
                boolean isPrshees = billingResult1.getResponseCode() == BillingClient.BillingResponseCode.OK && !Objects.requireNonNull(purchasesResult.getPurchasesList()).isEmpty();

                onCheck.onCheck(isPrshees,isPrshees?getOrderId(purchasesResult.getPurchasesList().get(0).getOriginalJson()):"");

            });
        }
        @Override
        public void onBillingServiceDisconnected() {
            onCheck.onCheck(false,"") ;
            // Try to restart the connection on the next request to
            // Google Play by calling the startConnection() method.
            Log.d("billingprocess","onBillingServiceDisconnected");
        }
    });
}

共有2个答案

阎德义
2023-03-14

Android应用内计费API的简单实现。

dependencies {
    implementation 'com.github.moisoni97:google-inapp-billing:1.0.5'
}

更多信息。在Github:-https://github.com/Mahadev-code/Android-inApp-Billing

裴昊阳
2023-03-14

我用了图书馆下面的那个,它很好用。请尝试一下,希望对你有帮助。https://github.com/anjlab/android-inapp-billing-v3非常感谢。

 类似资料:
  • 问题内容: 如何将应用内购买添加到iOS应用?所有细节都是什么,是否有示例代码? 这意味着可以将各种应用内购买添加到iOS应用中 问题答案: Swift用户可以查看有关此问题的My SwiftAnswer。或者,查看YedidyaReiss的Answer,它将这个Objective-C代码转换为Swift。 Objective-C用户 该答案的其余部分用Objective-C编写 App Stor

  • 我在测试我的应用内计费时遇到了麻烦。 (使用Google Play应用内计费版本3 API) 问题: 已退款的应用程序内购买仍然存在于购买列表中,该列表由BillingClient.query购买()提供。 当我在一月份尝试退款时,退款的物品从购物清单上消失了。 我所做的: 作为测试人员购买了一些物品。 (我很确定对话框说是测试购买。) 之后在谷歌游戏控制台退款。 等到他们的付款状态变成退款。 清

  • 准备工作 付费应用协议 如果你还没有,你需要在 iTunes Connect 签署付费应用协议, 并设置您的银行和税务信息。 iTunes Connect 开发人员帮助: 协议、税务和银行概述 创建您的应用内购买 然后,您需要在iTunes Connect中配置您的应用内购买,并包含名称,定价和说明等详细信息,以突出显示您的应用内购买的功能。 iTunes Connect开发人员帮助:创建应用程序

  • 我正在开发一个应用内购买。我已将该应用程序放在 Play 商店进行封闭测试。在帐户设置中使用测试人员电子邮件和添加的测试人员电子邮件。我在 Play 商店中有 2 个托管产品。我在调试模式下测试了 android.test.purchased 并且工作正常。但是在我购买 SKU 时从 Play 商店安装的发布版本中,它成功完成了购买,但由于某种原因我收到了失败响应。我试图弄清楚这一点。此外,我在购

  • 这个问题(Android应用内计费动态产品列表)是3年前问过的。动态的应用内购买项目在Android上还是不可用的吗? 我之所以要实现这种功能,是因为我的应用程序提供了一种让某些用户创建自己的应用内购买的方式,供其他人购买。

  • 问题内容: 我目前正在尝试编写应用内购买代码。我一直在寻找有关Google无法解决的某些问题的最佳做法的文档,信息和教程。 到目前为止,我所做的是: 我正在运行一个结算服务,可以处理与Google Play的通话。该服务可以完成“示例”交易,我的应用程序会收到该消息。 我现在想将内容传送到设备。我认为接下来需要发生的事情: 我的应用程序需要与我的服务器联系,并显示成功交易的证明。做一些Cert的手