1. Общие сведения
SDK Assist.Mobile позволяет упростить разработку мобильного приложения интернет-магазина для проведения через АПК Assist платежей банковской картой с мобильных устройств.
Пользователями SDK Assist.Mobile являются разработчики мобильного приложения интернет-магазина.
Настоящий документ содержит сведения по установке, настройке и использованию SDK Assist.Mobile, достаточные для его применения.
2. Системные требования
Для работы с Assist.Mobile необходимо использовать Android SDK версии не ниже 15 (Android 4.0.3).
3. Описание SDK Assist.Mobile
SDK Assist.Mobile представляет собой файл mobilePay-release-X.X.X.aar. Для доступа к функционалу библиотеки необходимо использовать класс:
ru.assisttech.sdk.AssistSDK
Этот класс содержит следующий метод:
AssistPayEngine AssistSDK.getPayEngine(Activity activity)
Метод возвращает экземпляр класса, реализующего функции оплаты для частных лиц.
После получения объекта AssistPayEngine для проведения оплаты необходимо его инициализировать. Для этого требуется установить адрес сервера, через который будет проводиться оплата вызовом метода:
assistPayEngine.setServerURL(String url).
Для контроля и получения результата работы AssistPayEngine используется интерфейс PayEngineListener устанавливаемый методом:
void assistPayEngine.setEngineListener(PayEngineListener listener).
Для запуска процесса оплаты используется метод:
assistPayEngine.payWeb(Activity caller, AssistPaymentData data, boolean useCamera),
где
caller – Activity, из которой осуществляется запуск процесса оплаты;
data — объект, содержащий параметры и данные, необходимые для проведения платежа;
useCamera — флаг, указывающий использовать камеру мобильного устройства для считывания номера банковской карты покупателя или номер вводится вручную.
После успешного завершения платежа можно сохранить подпись покупателя с помощью метода:
void assistPayEngine.setUserSignature(long id, byte[] signature),
где
id — ID транзакции оплаты.
Дополнительно проверить результат платежа можно с помощью метода:
void assistPayEngine.getOrderResult(Activity caller, long id).
Прервать процесс оплаты можно с помощью метода:
void assistPayEngine.stopPayment(Activity caller).
Класс ru.assisttech.sdk.AssistPaymentData, позволяющий устанавливать параметры оплаты, содержит следующие методы:
- void setMerchantId(String value) – метод позволяет установить идентификатор торговой точки, задание идентификатора торговой точки обязательно;
- void setOrderNumber(String value) – метод позволяет установить номер заказа, задание номера заказа обязательно;
- void setOrderAmount(String value) - метод позволяет установить сумму заказа (используется строковое значение суммы в копейках), задание суммы заказа обязательно;
- void setOrderCurrency(Currency value) - метод позволяет установить валюту заказа;
- void setOrderComment(String value) - метод позволяет установить комментарий - описание платежа;
- void setEmail(String value) - метод позволяет установить адрес электронной почты плательщика;
- void setAddress(String value) - метод позволяет установить почтовый адрес плательщика;
- void setHomePhone(String value) - метод позволяет установить домашний телефон плательщика;
- void setWorkPhone(String value) - метод позволяет установить рабочий телефон плательщика;
- void setMobilePhone(String value) - метод позволяет установить мобильный телефон плательщика;
- void setFax(String value) – метод позволяет установить номер факса плательщика;
- void setLastname(String value) - метод позволяет установить фамилию плательщика;
- void setFirstname(String value) - метод позволяет установить имя плательщика;
- void setMiddlename(String value) - метод позволяет установить отчество плательщика;
- void setCountry(String value) - метод позволяет установить страну плательщика;
- void setState(String value) - метод позволяет установить область (регион);
- void setCity(String value) – метод позволяет установить город;
- void setZip(String value) - метод позволяет установить почтовый индекс;
- void setSignature(String value) – метод позволяет установить подпись параметров.
Формируется строка, сшитая из следующих параметров заказа: MerchantId;OrderNumber;OrderAmount;OrderCurrency, разделенных точкой с запятой. На базе этой строки алгоритмом MD5 формируется дайджест. Дайджест подписывается закрытым RSA ключом мерчанта. Длина ключа - 1024. Полученная байтовая последовательность является подписью магазина. Подпись передается в запросе как дополнительный параметр, закодированный в виде строки BASE64.
Хранение результатов оплаты
Проведенные оплаты сохраняются в SQLite DB, доступ к которой осуществляется через интерфейс AssistTransactionStorage и классы AssistTransactionFilter и AssistTransactionsLoader.
Класс AssistTransactionStorage предназначен для доступа к единичной транзакции по ID, в то время как AssistTransactionsLoader используется для получения списка транзакций без блокирования основного потока приложения.
Класс AssistTransactionFilter используется для фильтрации списка транзакций, получаемых от AssistTransactionStorage.
Получить экземпляр класса AssistTransactionStorage можно с помощью метода:
AssistTransactionStorage assistPayEngine.transactionStorage().
Экземпляр класса AssistTransactionsLoader необходимо создавать в методе onCreateLoader(int id, Bundle args) класса, реализующего интерфейс LoaderManager.LoaderCallbacks<>.
https://github.com/assist-group/assist-mcommerce-sdk-android