- PVSM.RU - https://www.pvsm.ru -
С 29 ноября 2012 года, разработчикам под Андроид, которые распространяют свои приложения через Google Play, доступна новая версия библиотеки для приема платежей In-app billing version 3. С этого момента стало действительно просто внедрить прием платежей в собственных приложениях. Но как и у всего нового, есть и свои ограничения (http://developer.android.com/intl/ru/training/in-app-billing/test-iab-app.html [1]):
1) Клиентское устройство должно обладать Android SDK Version 2.2 (API level 8);
2) Приложение «Play Маркет» должно иметь версию 3.9.16 или выше.
Новая библиотека поддерживает 3 вида приема платежей:
А теперь давайте попробуем использовать новую библиотеку на практике. Для примера создадим в нашем приложении кнопку с приемом пожертвований на развитие проекта, это можно реализовать с помощью Unmanaged платежей.
Открываем Android SDK Manager:
И устанавливаем GooglePlay Billing Library.
Открываем в нашей среде разработок следующий пример: «Путь к расположению нашей SDKextrasgoogleplay_billingin-app-billing-v03samplesTrivialDrive».
Из этого примера копируем в наш проект «com.android.vending.billing», не меняя названия. А так же копируем содержимое «com.example.android.trivialdrivesample.util».
Добавляем в манифест нашего приложения следующее разрешение:
<uses-permission android:name="com.android.vending.BILLING" />
На этом основные приготовления закончены, теперь приступим непосредственно к реализации нашей кнопки с пожертвованиями.
Java коде нашей Activity добавим пару констант и одну переменную:
// Индефикатор нашего товара
static final String SKU_DONATE_1 = "donate_1_usd";
// Код для обратного вызова
static final int REQUEST_CODE = 505;
// Экземпляр класса для работы с магазином
IabHelper mHelper;
В метод onDestroy добавляем:
if (mHelper != null) mHelper.dispose();
mHelper = null;
В метод onActivityResult добавляем:
if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
}
В метод onCreate добавляем:
String base64EncodedPublicKey = "Тут_должен_быть_RSA_ключ_вашего_приложения";
mHelper = new IabHelper(this, base64EncodedPublicKey);
mHelper.enableDebugLogging(false);
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
// Произошла ошибка авторизации библиотеки, скрываем кнопку от пользователя
mDonateBtn.setVisibility(View.GONE);
return;
}
}
});
В base64EncodedPublicKey вы должны скопировать открытый ключ RSA вашего приложения, который вы найдете в «Консоль разработчика -> Ваше приложение -> Службы и API».
Далее создадим экземпляр метода для обратного вызова при завершении покупки пользователем:
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
if (result.isFailure()) {
// Обработка произошедшей ошибки покупки
return;
}
if (purchase.getSku().equals(SKU_DONATE_1)) {
// Говорим пользователю спасибо за перечисление средств
}
}
};
И теперь назначаем нашей кнопке при нажатии вызов процедуры покупки:
mHelper.launchPurchaseFlow(this, SKU_DONATE_1, REQUEST_CODE, mPurchaseFinishedListener);
С кодингом покончили, теперь осталось собрать приложение и залить новую версию APK в GooglePlay.
После того, как вы зальете новую версию приложения в GooglePlay, вам остается только активировать товар, который имеет идентификатор «donate_1_usd». Для этого, в косоле разработчика переходим в раздел «Контент для продажи», нажимаем на кнопку «Добавить продукт», в появившемся диалоге выбираем «Не контролируется Google», а в качестве идентификатора продукта указываем «donate_1_usd». Далее указываем всю необходимую информацию по товару, сохраняем её и меняем состояние товара на «Активные».
Автор: neoksi
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/android/24285
Ссылки в тексте:
[1] http://developer.android.com/intl/ru/training/in-app-billing/test-iab-app.html: http://developer.android.com/intl/ru/training/in-app-billing/test-iab-app.html
[2] Источник: http://habrahabr.ru/post/165065/
Нажмите здесь для печати.