1. Общие сведения
Фреймворк AssistMobile позволяет разработать мобильное приложение интернет-магазина для проведения через АПК Assist платежей банковской картой с мобильных устройств.
Пользователями фреймворка AssistMobile являются разработчики мобильного приложения интернет-магазина.
Настоящий документ содержит сведения по установке, настройке и использованию фреймворка AssistMobile, достаточные для его применения.
2. Системные требования
Для работы с AssistMobile необходимо использовать среду разработки iOS SDK версии не ниже 8.4.
3. Описание фреймворка Assist.Mobile
Фреймворк AssistMobile представляет собой файл AssistMobile.framework.
Для доступа к функционалу библиотеки нужно использовать объект класса AssistPay.
Класс содержит:
- инициализатор, принимающий поддерживающие протокол AssistPayDelegate объекты;
- метод start, принимающий объект класса UIViewController и объект PayData с данными об оплате;
- метод getResult, принимающий структуру с данными об оплате PayData.
Протокол AssistPayDelegate определяет метод payFinished, с помощью которого поддерживающий этот протокол объект будет получать результат оплаты. Метод payFinished будет вызван, если оплата завершена. Метод имеет следующие параметры:
- bill - номер транзакции в системе Ассист в строковом формате;
- status - статус платежа;
- message - описание статуса.
Статус может иметь следующие значения:
- Unknown - статус неизвестен – вероятно, произошла непредвиденная ошибка и не удалось получить статус оплаты, через некоторое время следует вызвать метод getResult и дождаться возвращения статуса; если ошибка повторяется, то необходимо связаться со службой поддержки Ассист;
- InProgress - оплата находится в обработке, через некоторое время следует повторно вызвать метод getResult, для получения результата;
- Delayed - платеж отложен, используется при включении функции отложенных платежей;
- Approved - платеж завершен успешно;
- PartialApproved - платеж завершен успешно на неполную сумму, используется при включении функции подтверждения платежа на неполную сумму;
- PartialDelayed - платеж частично отложен, используется при включении специальной функции;
- Canceled - платеж отменен;
- PartialCanceled - платеж частично отменен;
- Declined - оплата отклонена;
- Timeout - оплата завершена по таймауту;
- Repeated - в системе есть платеж с таким же номером заказа.
Метод start позволяет инициировать процесс оплаты, принимает параметры:
- UIViewController - контроллер вызывающего приложения;
- PayData - данные оплаты.
Метод getResult позволяет получить результат оплаты из системы Ассист. Принимает параметр PayData.
- PayData - объект этого класса содержит данные платежа.
Данные платежа задаются свойствами объекта:
| Название | Обязательное поле | Тип | Описание | 
| merchantId | Да | String | Идентификатор предприятия в системе АПК Ассист | 
| customerId | Да/нет | String | Идентификатор покупателя, используется при подключении OneClick | 
| orderNumber | Да | String | Номер заказа | 
| language | Нет | Language | Язык авторизационных страниц (RU, EN, BY или UK) | 
| languageStr | Нет | String | Язык авторизационных страниц в строковом формате, используются значения из перечисления Language | 
| orderAmount | Да | String | Сумма платежа в оригинальной валюте (например, 100.99). | 
| orderComment | Нет | String | Комментарий | 
| orderCurrency | Да/нет | Currency | Валюта (RUB, USD, EUR, BYR или UAH) | 
| orderCurrencyStr | Нет | String | Валюта в строковом формате, используются значения из перечисления Currency | 
| lastname | Нет | String | Фамилия покупателя | 
| firstname | Нет | String | Имя покупателя | 
| middlename | Нет | String | Отчество покупателя | 
| Нет | String | E-mail адрес покупателя | |
| address | Нет | String | Адрес покупателя | 
| homePhone | Нет | String | Домашний телефон покупателя | 
| workPhone | Нет | String | Рабочий телефон покупателя | 
| mobilePhone | Нет | String | Мобильный телефон покупателя | 
| fax | Нет | String | Факс покупателя | 
| country | Нет | String | Страна покупателя | 
| state | Нет | String | Код региона покупателя | 
| city | Нет | String | Город покупателя | 
| zip | Нет | String | Индекс предприятия связи покупателя | 
| signature | Да/нет | String | Подпись. Формируется строка, сшитая из следующих параметров заказа: MerchantId;OrderNumber;OrderAmount;OrderCurrency, разделенных точкой с запятой. На базе этой строки алгоритмом MD5 формируется дайджест. Дайджест подписывается закрытым RSA ключом мерчанта. Длина ключа - 1024. Полученная байтовая последовательность является подписью магазина. Подпись передается нам в виде строки BASE64. | 
4. Порядок интеграции мобильного приложения интернет-магазина с фреймворком AssistMobile
Для интеграции мобильного приложения интернет-магазина с фреймворком AssistMobile необходимо выполнить следующие действия:
скачать актуальную версию AssistMobile.framework;
добавить фреймворк в разрабатываемый проект, перетащив фреймворк в Xcode в дерево проекта;
