明小天 2022-12-23 18:04 采纳率: 25%
浏览 81

unity使用原生android方式接入google结算库5.0.0

接入Google IAP 使用billing 5.0.0版本时响应 FEATURE_NOT_SUPPORT
void OnRequstProduct(String[] productId) {

        List<String> skuList = new ArrayList<>();
        skuList.addAll(Arrays.asList(productId));
        cacheRequestList=productId;
        QueryProductDetailsParams params = QueryProductDetailsParams.newBuilder()
            .setProductList(
                    ImmutableList.of(
                    QueryProductDetailsParams.Product.newBuilder()
                            .setProductId("")
                            .setProductType(BillingClient.ProductType.INAPP)
                            .build())
            ).build();
        if(billingClient == null) {
            ShowMessage("BillingClient is NULL!!!");
            return;
        }
        ShowMessage("RequestProduct01");
        BillingResult result = billingClient.isFeatureSupported(BillingClient.FeatureType.PRODUCT_DETAILS);
        if(result.getResponseCode() == BillingClient.BillingResponseCode.OK){
            billingClient.queryProductDetailsAsync(params,
                    new ProductDetailsResponseListener() {
                        @Override
                        public void onProductDetailsResponse(@NonNull BillingResult billingResult, @NonNull List<ProductDetails> list) {
                            ShowMessage("RequestProduct02");

                            int responseCode = billingResult.getResponseCode();
                            ShowMessage("onSkuDetailsResponse:"+billingResult+" code:"+GetResponseText(responseCode));
                            ShowMessage("RequestProduct03");
                            switch (responseCode){
                                case BillingClient.BillingResponseCode.OK:
                                    ShowMessage("RequestProduct04");
                                    RecieveProducts(list);
                                    break;
                                default:
                                    ShowMessage("RequestProduct05");
                                    RequestProductsFail("Failed to query inventory: " + billingResult.getDebugMessage());
                                    ShowMessage("Failed to query inventory: "+billingResult.getDebugMessage());
                                    break;
                            }
                            ShowMessage("RequestProduct06");
                        }
                    });
        }else{
            ShowMessage("Please update your Google Play Store and try again \nCode: " + GetResponseText(result.getResponseCode()));
        }

  • 写回答

3条回答 默认 最新

  • 搞IT的小李 2022-12-24 00:14
    关注

    首先,你需要在 Unity 中导入 Google Play Services for Unity 插件。这个插件可以在 Unity Asset Store 中下载,并且可以帮助你在 Unity 中访问 Google Play 服务。

    然后,你需要在 Unity 中创建一个 Android 项目。在这个项目中,你可以使用 Android Studio 或者其他 Android 开发工具来接入 Google 结算库。

    具体来说,你需要在你的 Android 项目的 build.gradle 文件中添加依赖:

    Copy code
    dependencies {
        implementation 'com.android.billingclient:billing:5.0.0'
    }
    
    

    然后,你需要在你的 Android 项目中添加一个 BillingClient 对象,并使用它来进行订阅和内购交易。具体的实现细节可以参考 Google 的官方文档:

    https://developer.android.com/google/play/billing/billing_library_overview

    评论

报告相同问题?

问题事件

  • 创建了问题 12月23日

悬赏问题

  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值