Mobilefest2012

1,408 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,408
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Привет, меня зовут Дмитрий Мельников, я занимаюсь разработкой в платежной системе Яндекс.Деньги. И сегодня я расскажу вам о нашем простом и удобном API и о возможности его использовании на примере Android-приложения.
  • В настоящее время установилась четкая тенденция роста использования мобильных устройств вместо использования обычных компьютеров и ноутбуков. То есть сегодня, чтобы не потерять рынок, нужно заниматься не только десктопными решениями, но и активно смотреть в мобильном направлении. Но просто так создавать приложения, конечно же не интересно, нужно думать и о своей прибыли, т.е. о монетизации. И когда вы осознаете необходимость этой самой монетизации и обозначите бизнес-кейсы проведения каких-либо платежей и расчетов (это могут быть сбор донейшенов, расчета с контрагентами, например, за продажу товаров, выплаты поощрений и т.п.), мы настоятельно рекомендуем вам присмотреться к API Яндекс.Денег.
  • Давайте для тех, кто еще не знает насколько прекрасен наш АПИ в плане предоставляемых возможностей, вкратце расскажем что это, зачем и как его готовить. API - это инструмент для разработчиков, который позволяет использовать возможности сервиса, зачастую наравне с самим сервисом, и заменяя пользовательские действия действиями автоматическими, участия пользователя не требующими. Приложения могут с помощью нашего API воспользоваться следующей функциональностью: Авторизовать пользователей для использования возможностей Я.Денег внутри вашего приложения. Делается это с помощью OAuth. OAuth — это способ получить доступ к какому-либо сервису/аккаунту пользователя без ввода и хранения его логина и пароля в своем приложении. Пришло это от создателей твиттера и выглядит примерно так: мы делаем запрос к сервису (в нашем случае – к Яндекс.Деньгам), пользователь вводит на сервере Яндекс.Денег свой логин/пароль и дает вашему приложению разрешение совершать от его имени действия в системе Яндекс.Деньги. После этого сервер Яндекс.Денег делает редирект на ваше приложение, и приложение получает токен доступа. С этим токеном можно дальше пользоваться в автоматическом режиме всеми вкусностями Яндекс.Денег. Например, получить доступ к информации о счете пользователя (баланс, номер счета). Это может быть нужно, когда вы хотите показать пользователю в его личном кабинете в вашем приложении, что на счету в ЯД у него куча денег и намекнуть, что эти деньги можно быстренько запихнуть в этот самый личный кабинет и в нем потратить! Или понять достаточно ли у пользователя средств на счете в ЯД для оплаты вашего товара, услуг или donation-а. * Тут в качестве примера привожу Дзенмани * Затем вы можете автоматизировать просмотр истории операций пользователя. * В качестве примеров привожу Я-Аудитор, который позволяет краудфандерам отчитываться о ходе сбора средств, ВКонтакте и Facebook * Ну и, конечно, вы можете автоматизировать прием платежей в своем приложении. Как p2p переводами, так и в магазины, а в магазины еще и сквозной с привязанной банковской карты!. Т.е. если вы поняли, что со счета пользователь заплатить не сможет – денег не хватает – вы можете подсунуть пользователю намек на возможность оплаты банковской картой. * В качестве примера рассказываю про Мамбу *
  • А какие преимущества вы получаете от использования API Яндекс.Денег? Пользователь не покидает инфраструктуры вашего приложения, точнее покидает, но только один раз для выдачи разрешения вашему приложению делать операции с его счетом в ЯДе. В остальном же активное участие от него не требуется. Вы можете реализовать все свои самые сокровенные желания: безакцептные платежи, платежи по расписанию, платежи по остатку и подобное =). Например, пользователю не нужно помнить, что вашему сервису он должен платить 25 числа каждого месяца. Ваш сервис прикрутил наше АПИ, все настроил и приложение сервиса само автоматически делает списание. Все счастливы. Или пользователю совсем не нужно прерывать игру для того, чтобы сходить на сайт ЯДенег для покупки игровой валюты, артефакта, свиньи 50 уровня и черта в ступе. Игра сама сходит и купит. И снова все счастливы. К тому же пользоваться нашим API очень просто. Мы поддерживаем стандарт OAuth2, для использования которого написано множество библиотек. Также мы и сами занимаемся разработкой библиотек (или SDK) для быстрого старта на нашем АПИ. У нас уже есть готовые решения на Java, Android, PHP – берите и пользуйтесь. Если вам чего-то не хватает - просите об этом в нашем клубе разработчиков или предлагайте ваши pull-request'ы на Github'е. Мы открыты для диалога и пожеланий пользователей. Также следует оговориться, что мы не можем придумать все необходимые рынку кейсы – предлагайте! Будем делать! Ну и важный вопрос про безопасность. При использовании нашего АПИ, вам не нужно хранить никаких данных эккаунта или банковских карт пользователей (пользователи спокойны, да и вы тоже – нет риска уплывшей пользовательской базы), но при этом вы можете делать переводы, совершать платежи и все остальное.
  • Ну а теперь давайте от лирики перейдем к делу. Я покажу вам, как быстро написать приложение под Android, которое будет принимать платежи Яндекс.Деньгами и использовать остальные возможности нашей системы. Я покажу вам как авторизовать пользователя, то есть получать права доступа вашему приложению. Затем мы посмотрим на наличие средств на счету, покажем пользователю историю операции по его счету. Затем переведем некоторую сумму на другой счет (другому пользователю) и сделаем платеж в какой-нибудь магазин, например, за мобильную связь.
  • Далее слайды с примерами кода.
  • Mobilefest2012

    1. 1. API Яндекс.ДенегНа примере Android-приложения Дмитрий Мельников Mobilefest Москва, 2012
    2. 2. Тенденции
    3. 3. API Яндекс.ДенегЧто это и зачем API здесь http://api.yandex.ru/money/ or in English http://api.yandex.com/money/ Клуб разработчиков http://clubs.ya.ru/moneyapi Возможности: •OAuth 2.0 •информация о счете, история, детали •p2p переводы •оплата в магазины
    4. 4. Преимущества APIКакие бонусы использования получает разработчик? •Пользователь не покидает инфраструктуры вашего приложения •Кастомизация – безакцептные платежи – платежи по расписанию – автопополнения •Простота – Библиотеки •Безопасность
    5. 5. ДемонстрацияБраузер - неудобно, app - хорошо Сделаем Android-приложение вместе
    6. 6. Android appКак начать, куда смотреть Java-библиотеки на Github https://github.com/melnikovdv/Java-Yandex.Money-API-SDK/ Сборка и подключение через Maven mvn idea:idea или mvn eclipse:eclipse
    7. 7. Примеры кодаАвторизация и получение токенаYandexMoneyDroid ymd = new YandexMoneyDroid(YOUR_APP_CLIENT_ID);ymd.authorize(yourAppActivity, AUTH_REQUEST_CODE, REDIRECT_URI, Consts.getPermissions(), showResultDialog, dialogListener);На onActivityResult добавляем:ymd.callbackOnResult(requestCode, resultCode, data);На onSuccess dialogListener’а:String token =values.getString(ActivityParams.AUTH_OUT_ACCESS_TOKEN);
    8. 8. СкриншотыАвторизация и получение токена
    9. 9. Примеры кодаПолучение информации о счетеНужен AsyncTask. В doInBackground делаемtry { YandexMoney ym; AccountInfoResponse resp; ym = new YandexMoneyImpl(YOUR_APP_CLIENT_ID, client); resp = ym.accountInfo(accessToken);} catch (InsufficientScopeException e) { // недостаточно прав} catch (InvalidTokenException e) { // невалидный токен} catch (IOException e) { // нет интернета ;(}На onPostExecute показываем пользователю результат
    10. 10. Примеры кодаПолучение истории операции и их детальной информации ymd.showHistory(yourAppActivity, CODE_HISTORY, accessToken, dialogListener); Не забываем про callback в onActivityResult ymd.callbackOnResult(requestCode, resultCode, data);
    11. 11. Примеры кодаПеревод другому пользователю (p2p) ymd.showPaymentP2P(yourAppActivity, CODE_PAYMENT_P2P, accessToken, recipientAccount, sum, comment, message, showResultDialog, dialogListener);
    12. 12. Примеры кодаОплата в магазин Map<String, String> params = new HashMap<String, String>(); params.put("PROPERTY1", "921"); params.put("PROPERTY2", "3020052"); params.put("sum", "1.00"); String patternId = "335"; ymd.showPaymentShop(yourAppActivity, CODE_PAYMENT_SHOP, accessToken, patternId, params, showResultDialog, dialogListener);
    13. 13. Спасибо за внимание Дмитрий Мельников dvmelnikov@yamoney.ru Документация API http://api.yandex.ru/money/ http://api.yandex.com/money/ Клуб для разработчиков на API Я.Денег http://clubs.ya.ru/moneyapi/

    ×