Upload
nokiaru
View
860
Download
4
Embed Size (px)
Citation preview
In App Purchase API
Александр Труфанов Senior Technical Consultant
Forum Nokia
[email protected] май, 2011
© 2011 Nokia
In App Purchase API
• Премиум уровни для игр
• Виртуальные товары (напр., дополнительное
оружие или внутриигровая валюта)
• Скачиваемые плагины (напр., дополнительные
города для приложений-гидов)
• Подписки (одноразовое обновление) на
различные периоды ( 1 раз в мес., 3 мес, год...) на
мобильную версию газеты
• Пожертвования (donation-ware)
• Билеты на реальные мероприятия (концерты и пр.)
• Физические товары, напр. пицца
• Торговля товарами на онлайн аукционах
• Подписки с автоматическими многократными
платежами
• Покупки, которые не может верифицировать
команда Quality Assurance (QA) Нокии. Напр.,
“loyalty points” или предоплата
• Контент не придерживающийся Ovi Store Content
Guidelines
© 2011 Nokia
Работа IAP
© 2011 Nokia
Работа IAP (мобильная газета)
© 2011 Nokia
Работа IAP (приложение-гид)
© 2011 Nokia
Возможности
• Оплата всеми возможными средствами Ovi Store
(включая операторский биллинг в 190+ странах)
• Тот же revenue share, что и в Ovi Store (70% - cards, 60% - sms)
• Возможность восстановления купленного контента
• Простое Qt API
(требуется установка библиотеки на устройство через Smart Installer)
• Поддержка DRM
• Состояние проекта: closed beta
(изменения в ближайшем будущем)
© 2011 Nokia
Поддерживаемые платформы
Symbian^3 S60 v3-5 S40
Java SDK изучается изучается планируется
Qt SDK + - -
Symbian C++ SDK планируется - -
© 2011 Nokia
Защита платного контента: DRM
• Встроенное DRM шифрование (в Symbian – OMA DRM 2.0)
– При отправке в Ovi указываете, какие файлы шифровать
– При публикации в Ovi они защищаются DRM
– При покупке Ovi отпавляет ключ для дешифрации файла
– Контент фактически вшит в приложение – он не скачивается
© 2011 Nokia
Покупка DRM-защищенного контента Восстановление DRM-защищенного контента
© 2011 Nokia
Защита платного контента: без DRM
• Собственные механизмы защиты
– Получаете лишь уведомления от Ovi о покупке
– Самостоятельно отвечаете за скачивание\дешифрацию контента и его
защиту
– Самостоятельно отвечаете за восстановление уже купленного
контента
© 2011 Nokia
Покупка самостоятельно защищенного контента
1. Запрашиваете список доступных
товаров со своего сервера
2. Запрашиваете их метаданные в
магазине
3. Позволяете пользователю
выбрать из списка товаров
покупаемый товар
4. Сообщаете Store о том, какой
товар требуется купить
5. Если покупка оплачена –
получаете ID-квитанцию
6. Квитанцию можно проверить в
Store
7. Оплаченный контент должен
быть скачен с сервера
Контент восстанавливается
аналогично
© 2011 Nokia
Начало работы
• Скачать Qt SDK 1.1:
http://qt.nokia.com/downloads
• Скачать документацию и библиотеку со страницы проекта на Forum
Nokia projects:
http://qt.nokia.com/downloads
• Вопросы по API:
https://projects.forum.nokia.com/iap/discussion
© 2011 Nokia
Реализация микроплатежей в вашем приложении
• Выберите желаемый способ защиты контента
• Предоставьте Nokia список ваших товаров и информацию о них (Название,
Описания, Цена (один из price point), есть ли DRM). Вам предоставят ID ваших
продуктов в системе
• Добавьте использование IAP API в ваше приложение:
– Получение метаданных по project ID
– Запуск выполнения платежа
– Активация купленного контента
– Функция восстановления купленного контента
• (если необходимо) Реализация онлайн проверки квитанции
© 2011 Nokia
API
Public Member Functions
IAPClient (QObject *parent=NULL)
~IAPClient ()
int purchaseProduct (QString productId, ForceRestorationFlag restoration)
int getProductData (QString productId)
int restoreProduct (QString productId, IAPClient::SilentModeFlag authenticationMode=IAPClient::DefaultAuthentication)
int getRestorableProducts (IAPClient::SilentModeFlag authenticationMode=IAPClient::DefaultAuthentication)
int getUserAndDeviceId (IAPClient::SilentModeFlag authenticationMode=IAPClient::DefaultAuthentication)
Signals
void purchaseCompleted (int requestId, QString status, QString purchaseTicket)
void purchaseFlowFinished (int requestId)
void restorationCompleted (int requestId, QString status, QString purchaseTicket)
void restorationFlowFinished (int requestId)
void productDataReceived (int requestId, QString status, IAPClient::ProductData productData)
void restorableProductsReceived (int requestId, QString status, IAPClient::ProductList items)
void
userAndDeviceDataReceived (int requestId, QString account, QString imei, QString imsi, QString country, QString language, QString deviceModel)
class IAPClient: public QObject
© 2011 Nokia
Дистрибуция
• IAP Qt API требует установки билиотеки, зависимость от которой
необходимо указать в Smart Installer’e:
• DRM-защищенные файлы должны быть встроены в sis файл и
размещаться в подпапках private папке проекта.
symbian: {
iap_dependency.pkg_prerules = \ "; Has dependency on IAP component" \ "(0x200345C8), 0, 1, 1, {\"IAP\"}“
DEPLOYMENT += iap_dependency
}
© 2011 Nokia
Вопросы
27.05.2011 16