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

应用程序未配置为通过Google Play计费

齐英耀
2023-03-14

我正在做一个android项目,我正在尝试在App Billing V3中实现。

我已经上传了我的应用程序到谷歌播放,并添加了一个IAP到应用程序。我可以成功地检索到我的应用程序的IAP列表及其价格,但当我实际尝试进行购买时,我的设备会出现以下错误(中没有错误

ArrayList skuList = new ArrayList();
        skuList.add("mysqlmanager_pro");

        Bundle querySkus = new Bundle();
        querySkus.putStringArrayList("ITEM_ID_LIST", skuList);
        try
        {
            Bundle skuDetail = mService.getSkuDetails(3, getPackageName(), "inapp", querySkus);
            Log.d("Billing", "Response Received");

            int billingResponse = skuDetail.getInt("RESPONSE_CODE");
            if (billingResponse == 0)
            {
                //Get list of IAP's to purcase - NOT NEEDED
                ArrayList responseList = skuDetail.getStringArrayList("DETAILS_LIST");

                Log.d("Billing", "Response");

                Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(), 
                        "mysqlmanager_pro", "inapp", "");

                PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");

                startIntentSenderForResult(pendingIntent.getIntentSender(), 
                        Defines.IntentRequestCodes.IAP_PURCHASE_REQUEST, new Intent(), 
                        Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
                /*for (String thisResponse : responseList)
                {
                    JSONObject object = new JSONObject(thisResponse);
                    String sku = object.getString("productid");
                    String price = object.getString("price");
                }*/
            }

        }
        catch (Exception ex)
        {
            Log.e("Billing", ex.toString());
        }

我的onCreate包含以下内容

mServiceConn = new ServiceConnection() {

            @Override
            public void onServiceDisconnected(ComponentName name) {
                mService = null;
            }

            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                mService = IInAppBillingService.Stub.asInterface(service);
            }
        };

        bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), 
                mServiceConn, Context.BIND_AUTO_CREATE);

下面是我的清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.BoardiesITSolutions.MysqlManager"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="18" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.android.vending.BILLING" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.BoardiesITSolutions.MysqlManager.Agreement"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 
            android:name=".MainActivity"
            android:label="@string/app_name">
        </activity>
        <activity
            android:name=".NewDBConnection"
            android:label="@string/new_mysql_connection">
        </activity>
        <activity
            android:name=".ConnectionManager"
            android:label="@string/connection_manager">
            <meta-data 
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity"/>
        </activity>
        <activity
            android:name=".EditDBConnections"
            android:label="@string/edit_database_connections">
        </activity>
        <activity
            android:name=".ServerStatus"
            android:label="Server Status">
            <meta-data 
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".ConnectionManager"/>
        </activity>
        <activity 
            android:name=".ConnectedDBManagerHost"
            android:label="Connected to DB">
        </activity>
        <receiver android:name="BillingReceiver">
      <intent-filter>
        <action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
        <action android:name="com.android.vending.billing.RESPONSE_CODE" />
        <action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />
      </intent-filter>
    </receiver>
    </application>

</manifest>

感谢您提供的任何帮助

共有1个答案

司空鸿熙
2023-03-14

这里有几件事需要考虑:

>

  • 将您的apk上传到Google Play后,您需要等待一段时间,等待Google的服务器更新(与发布更新时类似)。根据我的经验,这可能需要一两个小时或更长的时间。几个小时后再试一次。

    确保您上载的apk版本是为IAP配置的(通过权限),然后仅使用签名的apk测试IAP。也就是说,从Eclipse导出并签署apk,然后在本地安装到设备上。否则,如果您直接从IDE运行应用程序的未签名版本,它将无法工作,您将看到一个错误。

    注意:只要当前上传的apk草案配置了正确的权限,并且在dev控制台上发布了您的IAP项,您就不需要每次进行小的更改时都上传一个新的apk。唯一恼人的部分是,在每次进行更改后,您都必须导出并签署应用程序,并在本地的设备上运行它。

    您不能使用您的开发者帐户进行测试购买,因为Google Wallet不允许您从自己那里购买物品。所以您需要在开发人员控制台上设置一些测试帐户,并尝试从运行该测试帐户的设备购买项目。

  •  类似资料:
    • 当我尝试用应用内计费运行我的应用程序时,我得到了一个错误:“此版本的应用程序没有配置为通过Google Play计费。查看帮助中心以获取更多信息”。 我有帐单许可已经在清单文件和我有一个签名的.apk作为草案上传到Google Play,我也安装了相同的签名apk到我的手机。 对于如何解决这个问题有什么帮助吗?

    • 可能重复: 此版本的应用程序未配置为通过Google Play计费 我已经有一个应用程序(与inapp购买)在android Market。我的问题是inapp购买功能不能正常工作,我重新编写代码。现在我想运行应用程序进行测试,但我收到错误消息。“这个版本的应用程序没有配置为通过Google Play计费。” 谢谢

    • 我正在努力弄清楚我为React应用程序配置Firebase的尝试出了什么问题。我已经遵循了至少10个不同的教程,但无法让配置变量注册为已识别的。 然后,我有一个firebase/firebase.js文件,如下所示: 我一直试图弄清楚为什么配置变量被记录为未定义。 有没有人知道如何成功配置一个firebase应用程序。我之前关于这个主题的问题建议删除env.development文件中的:和值之间

    • 我在我的android应用程序中使用应用内计费。签名后,我上传了一个APK草案到市场(清单中没有可调试的),其中还包括com.android.vending.billing权限和所有文件。效果很好。 现在,我在Google Play Develoiper控制台中为我的应用程序添加了一个“应用内产品”,并为托管产品提供了新的价格,并将该产品设置为活动。APK仍在草案中。我创建了一个测试用户,并重置我

    • 可能重复: 此版本的应用程序未配置为通过Google Play计费 此版本的应用程序未配置为通过Google Play计费 我把我的apk上传到(昨晚10:00pm)和一些应用内产品(),现在我试着测试它,但它显示这个错误我已经检查了apk的是一样的。那么问题可能是什么呢?