Библиотека Для Работы С Api Яндекс.денег И Демо-Приложение Для Android

Добрый день, хабросообщество.

Хочу поделиться своей разработкой — Android-библиотекой для работы с API Яндекс.

Денег.

Совсем недавно, 15 апреля, Яндекс открыл API для работы с Я.

Деньги.

Как и все ранее открытые API для работы с сервисами Яндекса, оно основано на авторизации через OAuth. В своей текущей реализации API позволяет запрашивать информацию об учетной записи, запрашивать список транзакций по счету и совершать платежи с использованием шаблонов.

Более подробная информация в документация , вопросы можно задать по адресу клуб разработчиков .

В результате его сняли библиотека И демо-приложение для Android, работа с кошельком через API. Фактической основой библиотеки приложения Android является класс ОАутактивити , от которого должна наследовать ваша активность, которая будет выполнять основную авторизацию приложения по OAuth. Результатом авторизации приложения является токен доступа, с помощью которого инициализируется класс.

ЯндексДеньгиСервис который с помощью этого токена может выполнять следующие действия (на данный момент)

При вызове без аргументов второй метод возвращает все операции (как по кредиту, так и по дебету).

Пейджинг пока не поддерживается.

В качестве аргумента можно передать объект класса.

ЯндексДеньгиТипыОпераций для обозначения конкретной операции.

Библиотека также включает в себя хранилище токенов.

Чтобы не запрашивать авторизацию каждый раз, вы можете сохранить токен.

Для этой цели используются потомки классов AccessTokenStorage а именно ОбщиеНастройкиХранилище И EncryptedSharedPreferencesStorage .

Вторая реализация отличается тем, что хранит токен в зашифрованном виде с помощью алгоритма 3DES. Чтобы использовать авторизацию по протоколу OAuth, приложение должно определить класс, наследуемый от OAuthActivity, и реализовать в нем следующие методы:

  • getRequiredPermissions — это метод, который возвращает набор разрешений, необходимых приложению.

    Для Яндекс.

    Денег мы используем контейнер ЯндексДеньгиРазрешения

  • getClientId — идентификатор клиента в системе Яндекс.

    Деньги.

    Он будет выпущен на этапе регистрация приложения

  • getAppId — идентификатор приложения.

    Используется для составления адреса redirect_uri, фактически идентифицирует приложение при обработке ответа на авторизацию, лучше установить = имя пакета приложения

  • getServer — сервер, с которого запрашивать авторизацию
  • getTokenStorage — возвращает хранилище токенов, используемое для хранения полученного токена авторизации.

Об успехе или неуспехе авторизации сообщается путем запуска Активности отправкой Action == "ru.elifantiev.yandex.oauth.AUTH_RESULT" (см.

OAuthActivity.ACTION_AUTH_RESULT).

В намерении помещается знак успеха (.

AUTH_RESULT_EXTRA), равный AUTH_RESULT_OK или AUTH_RESULT_ERROR. Ошибка находится в Extra .

EXTRA_AUTH_RESULT_ERROR. Еще один важный момент. Для успешной обработки возврата от авторизации приложения (а он, по требованиям Яндекса, выполняется во встроенном браузере ОС) необходимо обработать OAuthActivity Intents, описываемые следующим фильтром правопреемника:

   

<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="oauth" android:host="@string/app_id"/> </intent-filter>

На самом деле это обработка перенаправления браузера на URL-адрес.

oauth://appId (где appId — идентификатор приложения, такой же, как и в методе getAppId; он у меня сохранен в ресурсах приложения).

О демо-приложении.

Состоит из 3 мероприятий — AppLoginActivity , Аутактивити И Основная деятельность .

При первом запуске приложения AppLoginActivity предлагает пройти процедуру авторизации приложения (запускает AuthActivity, которая, в свою очередь, является наследником OAuthActivity).

Если приложение уже успешно прошло авторизацию, отображается диалог запроса PIN-кода.

AuthActivity, прежде чем пройти процедуру авторизации, запрашивает у пользователя новый ПИН-код, который в дальнейшем будет использоваться для хранения зашифрованного токена, а затем запускает авторизацию.

Результат авторизации возвращается в AppLoginActivity, где он обрабатывается (отображается сообщение об ошибке или сохраняется состояние — авторизация пройдена).

В случае успеха запускается MainAcitivty, который начинает вызывать службы.

В чем суть.

Хотелось бы получать критику по поводу реализации, собирать жалобы и предложения и т.д. Желающие спилить это воедино приветствуются.

P.S. Автор не имеет никакого отношения к Яндексу и Яндекс.

Деньгам.

РЕДАКТИРОВАТЬ с ключом, лежащим в исходниках, приложение не запустится.

Зарегистрируйте свое приложение с альтернативным адресом перенаправления и получите свой идентификатор.

Теги: #Android #yandex деньги #yandex api #Yandex.money #Yandex API #Android разработка

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.