Приложение не настроено для выставления счетов через Google Play

Я работаю над проектом android, и я пытаюсь реализовать в App Billing V3.

Я загрузил свое приложение в Google Play и добавил IAP в приложение. Я могу успешно получить список IAP моего приложения вместе с его ценой, но когда я на самом деле пытаюсь сделать покупку, мое устройство получает следующую ошибку (нет ошибки в

эта версия приложения не настроены для оплаты через Google Play. Проверяем центр помощи подробная информация.

Ниже приведен код, который извлекает доступные 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 ответов


есть несколько вещей, чтобы рассмотреть здесь:

  1. после загрузки apk в Google Play, вам нужно подождать некоторое время обновление серверов Google (аналогично публикации обновление.) По моему опыту, это может занять час или два, а то и больше. Так попробуйте еще раз через несколько часов.

  2. убедитесь, что загруженная версия apk настроена для IAP (через разрешения), а затем только тест IAP со подписью АПК. То есть экспорт и подпишите свой apk из Eclipse, а затем установите локально на вашем устройстве. В противном случае при запуске неподписанной версии приложения непосредственно из IDE, он не будет работать и вы увидите ошибку.

    Примечание: вам не нужно загружать новый apk каждый раз, когда вы вносите незначительные изменения, пока загруженный в настоящее время проект apk был настроен с правильными разрешениями, и вы опубликовали свои элементы IAP на консоли разработчика. Единственная раздражающая часть заключается в том, что вам нужно экспортировать и подписать приложение каждый раз после внесения изменений и запустить его на устройстве локально.

  3. проверьте, что код версии вашего загруженного apk имеет то же самое versionCode в качестве локальной версии apk.

  4. вы не можете использовать свою учетную запись разработчика для совершения тестовых покупок, потому что Google Wallet не позволяет вам покупать предметы из себе. Поэтому вам нужно настроить некоторые тестовые учетные записи на разработчика Консоль и попробуйте приобрести предметы с работающего устройства испытание счет.