- Как оплатить приложения в Google Play Market
- Защита от случайных и нежелательных покупок
- Как осуществить платёж через телефон
- In-app purchasing или внутренние платежи в приложениях для Android
- О чем это вообще?
- Что нам понадобится?
- Как это в принципе работает?
- Как все это устроено?
- Какие сообщения мы отсылаем маркету?
- Какие получаем ответы?
- А может, посмотрим лучше на код?
- А как же безопасность?
- Бесконтактные платежи через телефон вместо карты
- Бесконтактные способы оплаты – что это?
- Какие телефоны поддерживают
- Как настроить и платить телефоном
- ПО для неконтактных платежей
- Система для Apple
- Система для Android
- Система для Samsung
- Другие программы
Как оплатить приложения в Google Play Market
Прежде чем узнать, как оплатить приложения в Google Play Market, необходимо учесть, что для каждой страны СНГ существуют разные способы оплаты. Например, в России можно провести транзакцию с помощью кредитных или дебетовых карт Visa, Visa Electron, MasterCard и American Express; через операторов связи Билайн, МегаФон, МТС и Tele2; а также посредством электронного сервиса PayPal.
Содержание:
|
Защита от случайных и нежелательных покупок
Многие пользователи столкнулись с проблемой случайных покупок. После добавления платёжных данных, ошибочное нажатие кнопки «Купить» приводило к моментальной оплате приложения. Средства снимаются с банковского счёта без подтверждения. Поэтому необходимо обязательно включить аутентификацию (подтверждение оплаты с помощью пароля). Для этого выполните следующие действия:
- Откройте меню Google Play нажатием на кнопку в виде значка трёх горизонтальных линий (в левом верхнем углу экрана).
- Перейдите в раздел «Настройки».
- Откройте раздел «Аутентификация при покупке».
- Выберите «Для всех покупок в Google Play на этом устройстве».
- Введите пароль от аккаунта и нажмите «Ок».
Как осуществить платёж через телефон
Чтобы купить приложение, необходимо добавить способ оплаты в личном аккаунте Плей Маркет. Перейдите в магазин и выполните следующие действия:
- шаг: В верхней части экрана нажмите на меню в виде значка трёх горизонтальных линий.
- шаг: В списке настроек, выберите раздел «Аккаунт».
- шаг: Перейдите в раздел «Способы оплаты».
- шаг: Откройте подраздел «Добавить кредитную или дебетовую карту».
Источник
In-app purchasing или внутренние платежи в приложениях для Android
О чем это вообще?
С версией приложения Android Market 2.3.0 для разработчиков приложений для платформы Android открылась возможность предоставлять пользователям платежи внутри самих приложений. Теперь можно продавать уровни и артефакты, видео, музыку, плагины и прочее, пользуясь лишь встроенными средствами платформы. Давайте увидим, как это можно сделать.
Что нам понадобится?
Как обычно, любимая IDE, Android SDK и пример приложения.
Так же будет полезным представлять себе, что такое Service, BroadcastReceiver и, конечно, Activity.
Так же нам понадобится разрешение в файле манифеста —
, без него ничего не заработает.
Как это в принципе работает?
Работает все через сервис в приложении Android Market. Он умеет посылать запросы на получение деталей определенной вещи, которую хочет купить пользователь, на покупку, получать ответы о успехе или неудачи покупки, и прочее. Вся информация о вещах, которые вы продаете, должна быть заведена через Консоль Разработчика для конкретного приложения. Как только мы получили сигнал об успешной покупке, мы можем начать грузить с нашего сервера контент.
Как все это устроено?
На сервере в маркете хранится информация о вещах, которые можно купить. С сервером взаимодействует клиентское приложение маркета. С ним взаимодействует наше приложение.
Наше приложение будет состоять как минимум из:
- BillingService. Это сервис, который связан с приложением маркета, и отправляет ему всю информацию об операциях и получает на них ответы, в случае, если они синхронные.
- BillingReceiver. Получает асинхронные ответы от приложения маркета.
- PurchaseObserver. Сущность, которая будет оповещать UI об изменениях состояния покупок.
Какие сообщения мы отсылаем маркету?
Вначале нам нужно соединить наш BillingService с приложением маркета для того, чтобы вызывать метод sendBillingRequest сервиса MarketBillingService. Интерфейс сервиса описан в файле IMarketBillingService.aidl, его можно скачать отсюда, а положить надо в com.android.vending.billing пакет вашего приложения. IDE должна сразу же сгенерить IMarketBillingService.java файл, который нам понадобиться для вызова вышеупомянутого метода.
Сам метод принимает параметр Bundle, в котором и хранится вся информация. Самой важной является параметр с ключом «BILLING_REQUEST». Он определяет тип запроса. Они бывают:
• CHECK_BILLING_SUPPORTED – проверка доступности in-app billing.
• REQUEST_PURCHASE – запрос покупки.
• GET_PURCHASE_INFORMATION – получение информации об изменении состояния покупки.
• CONFIRM_NOTIFICATIONS – подтверждение факта получение уведомления от приложения маркета.
• RESTORE_TRANSACTIONS – восстановление транзакций по уже купленным вещам.
Какие получаем ответы?
Метод синхронно возвращает ответ, который тоже представляет из себя Bundle. В нем лежит:
• RESPONSE_CODE — код ответа
• PURCHASE_INTENT — PendingIntent , для того, чтобы запустить активти покупки.
• REQUEST_ID – идентификатор посланного запроса
В случае асинхронных ответов(получаемых через BillingReceiver), в них лежит следующее:
• com.android.vending.billing.RESPONSE_CODE
Код ответа. Маркет подтверждает успех или неудачу посылки запроса.
• com.android.vending.billing.IN_APP_NOTIFY
Оповещение о том, что статус покупки изменился. После этого сообщения нужно отправлять запрос с типом GET_PURCHASE_INFORMATION , чтобы получить инфу.
• com.android.vending.billing.PURCHASE_STATE_CHANGED
А тут приходит детальная информация о покупке. Она включает в себя nonce, список заказов, с указанием идентификаторов продуктов, их состояний и проч.
Последовательность при покупке будет такая:
1. Посылаем REQUEST_PURCHASE
2. Получаем синхронный ответ
3. Запускаем Activity покупки(также встроенную в приложение маркета)
4. Получаем асинхронное сообщение IN_APP_NOTIFY
5. Посылаем GET_PURCHASE_INFORMATION
6. Получаем синхронный ответ
7. Получаем асинхронный ответ PURCHASE_STATE_CHANGED
8. Отправляем CONFIRM_NOTIFICATIONS
9. Получаем синхронный ответ
А может, посмотрим лучше на код?
Итак, основные моменты в коде:
1. Коннект к маркету.
В onCreate() в BillingService пишем:
try <
boolean bindResult = getApplicationContext().bindService(
new Intent( «com.android.vending.billing.MarketBillingService.BIND» ),
this ,
Context.BIND_AUTO_CREATE);
if (bindResult) <
Log.i(TAG, «Service bind successful.» );
> else <
Log.e(TAG, «Could not bind to the MarketBillingService.» );
>
> catch (SecurityException e) <
Log.e(TAG, «Security exception: » + e);
>
//И чуть ниже:
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) <
Log.i(TAG, «MarketBillingService connected.» );
marketService = IMarketBillingService.Stub.asInterface(iBinder);
runPendingRequests();
>
* This source code was highlighted with Source Code Highlighter .
2. Отправка запросов.
В примере приложения создана иерархия классов для запросов и это правильно. Самая главная вещь в них – это отложенная отправка. Дело в том, что bindService происходит асинхронно, а значит ссылку на MarketBillingService мы получаем гораздо позже, чем кончается onCreate(), и даже позже, чем пытаемся в первый раз выполнить запросы. Поэтому делаем так:
/**
* Run the request, starting the connection if necessary.
*
* @return this request if the request was not executed in order to queue it.
*/
public final AbstractRequest runRequest() <
if (runIfConnected()) <
return null ;
>
return this ;
>
/**
* Try running the request directly if the service is already connected.
*
* @return true if the request ran successfully; false if the service
* is not connected or there was an error when trying to use it
*/
public boolean runIfConnected() <
if (service.isConnected()) <
try <
requestId = run();
if (requestId >= 0) <
service.addRequest(requestId, this );
>
return true ;
> catch (MyException e) <
onException(e);
>
>
return false ;
>
* This source code was highlighted with Source Code Highlighter .
Возвращение запроса нужно, чтобы запомнить его в списке ожидающих отправки запросов в сервисе. Потом, когда мы получим ссылку на MarketBillingService в onServiceConnected(), мы все запросы попробуем отправить еще раз.
3. Оповещение UI
В BillingService будем хранить ссылку на некую сущность, которая хранит в себе Handler от нашего UI. Тогда по получении ответов можно будет делать следующее:
private void notifyGui( int messageId, PurchasedItem item) <
if (observer != null ) <
observer.notifyGui(messageId, item);
> else <
// пошлем здесь оповещение в NotificationBar
>
>* This source code was highlighted with Source Code Highlighter .
Важно: не забывать обнулять observer сервиса из своей Activity при выходе из нее и восстанавливать эту ссылку. Делается это так:
@Override
protected void onUserLeaveHint() <
if (billingService != null ) <
unbindService( this );
billingService.resetEventDispatcher();
billingService = null ;
>
super.onUserLeaveHint();
>
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) <
//Connected to BillingService
if (componentName.getShortClassName().equals(serviceClassName)) <
billingService = ((BillingService.LocalBinder) iBinder).getService();
billingService.setObserver( new PurchaseObserver());
try <
billingService.checkBillingAvailability();
> catch (MyException e) <
Log.e(TAG, «Billing unavailable» , e);
Toast.makeText( this , «Billing unavailable» , Toast.LENGTH_LONG).show();
>
>
>
* This source code was highlighted with Source Code Highlighter .
4. Запуск Activity покупки.
Загляните в PurchaseObserver класс примера. Там есть метод public void startBuyPageActivity(PendingIntent pendingIntent, Intent intent). PendingIntent – это то, что мы получили ответом от маркета. А Intent – просто new Intent().
Что же этот метод делает?
На самом деле в этот класс передается инстанс вашей Activity. Дальше от нее через reflection происходит попытка получить метод startInstentSender. Этот метод появился только в Android 2.0. Если он есть, то метод вызывается, и Activity запускается в стеке Activity нашего приложения. Если же метод не найден, то происходит старт Activity в отдельном стеке.
А как же безопасность?
Вопрос безопасности – тема отдельной статьи, и так уже много. В примере приложения за безопасность отвечает класс Security. Скажу только, что верифицировать покупки нужно не в приложении(как это сделано в примере), а на собственном сервере, дабы не давать логику проверки в руки потенциальных обладателей apk.
Источник
Бесконтактные платежи через телефон вместо карты
Два года назад никто не понимал, как платить телефоном вместо карты. Теперь в этом нет ничего сверхъестественного. Подобная процедура возможна благодаря технологии NFC. Владельцу карточки остается только установить специализированное приложение на мобильный телефон. После этого можно отправляться по магазинам.
Бесконтактные способы оплаты – что это?
Под бесконтактными вариантами платежа понимается оплата товара банковской картой без установки в считыватель. Достаточно поднести «кредитку» на расстояние 10 см от терминала и со счета будет списана сумма, соответствующая покупке. Если чек составляет меньше 999 р., то пин-код вводить не нужно. Благодаря технологии NFC пользователи могут расплачиваться телефоном, часами или браслетом, в который встроен чип.
Важно! Не все телефоны позволяют расплачиваться по технологии NFC.
Что касается банковской карточки, то на ней должен быть отображен значок радиоволн, а также бывает надпись: «PayWave» или «PayPass».
Какие телефоны поддерживают
Прежде чем привязать карту к мобильному устройству, рекомендуется узнать, какие смартфоны оснащены функцией NFC. Мобильный телефон должен иметь ОС не ниже Android 4.4. или iOS 8.
К брендам, поддерживающим неконтактные варианты оплаты, относится:
Чтобы пользоваться смартфоном для оплаты товара, требуется настройка мобильного устройства и установка на него дополнительного программного обеспечения.
Как настроить и платить телефоном
После получения банковской карточки с функцией бесконтактных платежей настройте телефон. Если на смартфоне установлена OS Android нужно:
- Перейти к настройкам.
- Выбрать раздел «Беспроводные сети».
- Опуститься к надписи «Еще», а затем перейти к ней.
- Разрешить передачу данных в разделе «NFC».
- Включить автоматическую активацию напротив строчки «Android Beam».
Что касается мобильных устройств под управлением iOS, настройку производить не нужно. Остается только установить приложение, через которое добавляется карточка.
Чтобы рассчитываться мобильным телефоном рекомендуется:
- Приобрести товар в магазине, аптеке или другой торговой точке.
- Дождаться, пока кассир проведет продукты через кассу.
- Поднести смартфон к терминалу.
- Ввести пин-код на устройстве.
Через 1-2 секунды со счета снимутся деньги. Прикладывая к терминалу, убедитесь, что он поддерживает технологию NFC. Для этого, спросите у кассира, или посмотрите на значки, наклеенные на банковский аппарат.
ПО для неконтактных платежей
Чтобы пользоваться телефоном, как дебетовой картой, требуется инсталлировать специализированное приложение:
Также существуют сторонние программки, позволяющие с телефона оплачивать любые продукты в офлайне.
Система для Apple
Эппл Пэй – система для совершения платежей через привязанную карту. Разработкой приложения занималась корпорация Apple.
Программное обеспечение совместимо со Сбербанком, ВТБ и Тинькофф. Чтобы установить ПО на мобильное устройство, необходимо иметь:
- Айфон 6 или более новее;
- дебетовую или кредитную карточку с NFC;
- учетную запись.
Для привязки банковской карточки используйте встроенную программу Wallet. После запуска приложения:
- кликните по надписи: «Добавление карты»;
- введите номер, ФИО, год и месяц окончания действия карточки;
- на следующем шаге в автоматическом режиме проверяется совместимость карты;
- если идентификация пройдена, нажмите на кнопку «Далее».
Когда привязка завершена, с помощью телефона можно оплатить любые покупки.
Система для Android
На Андроиде, так же как и на iOS можно использовать приложение для бесконтактных платежей. Оно называется Google (ранее Андроид) Pay. Скачать ПО можно с Гугл Плей.
Если на мобильном устройстве имеется доступ к системе с правами root (администратор) платежная система работать не будет. Также возникнут проблемы, если:
- на смартфоне инсталлирована программка Samsung MyKnox;
- Google не одобрил устройство;
- отключен загрузчик ОС.
Чтобы привязать карточку банка, следуйте простой инструкции:
- Установите Google Pay.
- Запустите приложение и авторизуйтесь.
- Кликните по значку «+».
- Нажмите «Добавление карты».
- Заполните все необходимые поля.
- Введите цифры из сообщения, отправленного на мобильный телефон.
Перед оплатой бесконтактным способом, убедитесь, что терминал в магазине оснащен данной технологией.
Система для Samsung
Это платежная система, как и вышеописанные. Из названия понятно, что ориентирована она на телефоны Самсунг. В отличие от конкурентов Samsung Pay оснащен технологией для расчета через магнитную ленту.
Для добавления «пластика» в приложение нужно:
- запустить ПО и ввести данные аккаунта Samsung;
- определиться со способом авторизации (пин или отпечаток);
- кликнуть по значку «+»;
- указать реквизиты «пластика»;
- согласиться с условиями.
Когда все будет готово, на телефон поступит СМС с кодом подтверждения. Его следует ввести в соответствующее поле. После этого можно оплачивать покупки в любой торговой точке.
Другие программы
Пользователи смартфонов, желающие оплатить покупки неконтактным способом, могут воспользоваться альтернативными платежными системами:
- «Кошелек». Для работы приложения необходим телефон с технологией NFC и ОС Android 4.4. Отличительной чертой ПО является ограниченный набор добавляемых карт.
- «KazkomPay». Программа позволяет оплачивать товар только в Казахстане. Пользователям доступна только карта КазКоммерцБанка.
Вышеописанные платежные системы работают так же как Android и Apple Pay. Нужно скачать и установить ПО, а затем добавить доступные карточки. Только после этого, можно оплатить покупки прикосновением мобильного устройства к считывателю.
Через год в РФ появится платежная система, именуемая «Мир Pay». Ее функционал не будет уступать зарубежным аналогам.
Разобраться с тем, как оплачивать покупки через телефон без карты совсем несложно. Нужно выбрать подходящий смартфон с поддержкой NFC технологии, а затем установить программку и добавить «пластик». После этого, остается только отправиться в магазин. Несмотря на прогресс в развитии банковских систем, в провинциальных городках бесконтактные способы оплаты могут не работать.
Источник