Page History
Table of Contents |
---|
...
Общие сведения
SDK Assist.Mobile позволяет упростить разработку мобильного приложения интернет-магазина для проведения через АПК Assist платежей банковской картой с мобильных устройств.
...
Настоящий документ содержит сведения по установке, настройке и использованию SDK Assist.Mobile, достаточные для его применения.
...
Системные требования
Для работы с Assist.Mobile необходимо использовать Android SDK версии не ниже 1526 (Android 48.0 .3Oreo).
...
Описание SDK Assist.Mobile
SDK Assist.Mobile представляет собой файл mobilePay-release-X.X.X.aar. Для доступа к функционалу библиотеки необходимо использовать класс:
...
useCamera — флаг, указывающий использовать камеру мобильного устройства для считывания номера банковской карты покупателя или номер вводится вручную.
После успешного завершения платежа можно сохранить подпись покупателя с помощью метода:
void assistPayEngine.setUserSignature(long id, byte[] signature),
где
id — ID транзакции оплаты.
Дополнительно проверить результат платежа можно с помощью метода:
...
Класс AssistTransactionFilter используется для фильтрации списка транзакций, получаемых от AssistTransactionStorage.
Получить экземпляр класса AssistTransactionStorage можно с помощью метода:
AssistTransactionStorage assistPayEngine.transactionStorage().
Экземпляр класса AssistTransactionsLoader необходимо создавать в методе onCreateLoader(int id, Bundle args) класса, реализующего интерфейс LoaderManager.LoaderCallbacks<>.
Поддержка Google Pay
Для работы с Google Pay рекомендуется предварительно ознакомиться с документацией на сайте разработчика https://developers.google.com/pay.
На данный момент работа с кошельком Google представлена в режиме SANDBOX. Поэтому для определения возможности проведения тестового платежа требуется связаться со службой поддержки Assist support@assist.ru.
Поддержка Samsung Pay
Для использования Samsung Pay в своем приложении предприятию необходимо зарегистрироваться в Samsung и зарегистрировать свое приложение, а затем получить Samsung Pay SDK http://www.samsung.com/ru/apps/mobile/samsungpay/.
Далее следует создать запрос на сертификат, выпустить сертификат магазина в Samsung и передать его в Assist через support@assist.ru для подключения услуги Samsung Pay.
В своем приложении необходимо следовать инструкции Samsung для инициации платежа через Samsung Pay. Для завершения оплаты Samsung Pay нужно передать данные, полученные из Samsung Pay SDK в Assist с помощью функции AssistPayEngine.payToken().
Порядок интеграции мобильного приложения интернет-магазина с SDK Assist.Mobile
Для интеграции мобильного приложения интернет-магазина с SDK Assist.Mobile необходимо выполнить следующие действия:
- Скопировать файл mobilePay-release-X.X.X.aar в каталог /libs модуля приложения.
- Добавить в build.gradle модуля:
Code Block | ||
---|---|---|
| ||
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile 'io.card:android-sdk:5.0.0'
compile(name: 'mobilePay-release-X.X.X', ext: 'aar')
} |
3. Сделать следующие изменения в AndroidManifect.xml:
3.1. Сначала необходимо убедиться, что минимальная версия SDK 26 или выше. Должен быть примерно такой тег внутри тега <manifest>:
Code Block | ||
---|---|---|
| ||
<uses-sdk android:minSdkVersion="26"/> |
3.2. Также внутри тега <manifest> должны присутствовать следующие разрешения:
Code Block | ||
---|---|---|
| ||
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" /> |
3.3. В тег <application> следует добавить activity:
Code Block | ||
---|---|---|
| ||
<activity
android:name="ru.assisttech.sdk.processor.WebViewActivity"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>
<activity
android:name="io.card.payment.CardIOActivity"
android:configChanges="keyboardHidden|orientation" />
<activity android:name="io.card.payment.DataEntryActivity" /> |
3.4. Перед выпуском приложения в релиз нужно добавить в файл конфигурации proguard:
Code Block | ||
---|---|---|
| ||
```
-keep class io.card.**
-keepclassmembers class io.card.** {
*;
}
-keep class ru.assisttech.sdk.**
-keepclassmembers class ru.assisttech.sdk.** {
*;
}
``` |
Пример реализации оплаты с помощью SDK Assist.Mobile
Code Block | ||
---|---|---|
| ||
package ru.assisttech.example; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import ru.assisttech.sdk.AssistSDK; import ru.assisttech.sdk.AssistPaymentData; import ru.assisttech.sdk.engine.AssistPayEngine; import ru.assisttech.sdk.engine.PayEngineListener; import ru.assisttech.sdk.storage.AssistTransaction; public class MainActivity extends Activity implements PayEngineListener { private TextView tvPaymentResult; private AssistPayEngine engine; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvPaymentResult = (TextView) findViewById(R.id.textView); // Получение платежного компонента из библиотеки engine= AssistSDK.getPayEngine(this); // Установка адреса сервера engine.setServerURL("server url"); // Установка получателя результата engine.setEngineListener(this); findViewById(R.id.btPay).setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // Установка параметров платежа AssistPaymentData data = new AssistPaymentData(); // ID мерчанта в АПК Ассист data.setMerchantId("12345"); // Номер заказа data.setOrderNumber("OrderNo"); // Сумма data.setOrderAmount("100"); // 100 руб // Валюта data.setOrderCurrency(AssistPaymentData.Currency.RUB); // Комментарий data.setOrderComment("Тестовый платеж"); // e-mail покупателя data.setEmail("customer@mail.com"); // Почтовый адрес покупателя data.setAddress("Москва, Ленинградское ш. 39"); // Домашний телефон data.setHomePhone("567-99-29"); // Рабочий телефон data.setWorkPhone("555-00-00"); // Мобильный телефон data.setMobilePhone("+79067410863"); // Факс data.setFax(""); // Фамилия data.setLastname("Романов"); // Имя data.setFirstname("Пётр"); // Отчество data.setMiddlename("Алексеевич"); // Страна покупателя data.setCountry("Russia"); // Область (штат) data.setState("Moscow"); // город data.setCity("Moscow"); // Почтовый индекс data.setZip("100290"); // Язык data.setLanguage(AssistPaymentData.Lang.RU); // Вычисление подписи параметров платежа ... String signature = "stub_signature"; // Установка подписи data.setSignature(signature); // Запуск процесса оплаты engine.payWeb(MainActivity.this, data, false); } }); } /** * PayEngineListener callbacks */ @Override public void onFinished(Activity activity, AssistTransaction assistTransaction) { if (!this.equals(activity)) { activity.finish(); } tvPaymentResult.setText(assistTransaction.getResult().getOrderState().toText()); } @Override public void onCanceled(Activity activity, AssistTransaction assistTransaction) { if (!this.equals(activity)) { activity.finish(); } tvPaymentResult.setText(assistTransaction.getResult().getOrderState().toText()); } @Override public void onFailure(Activity activity, String info) { tvPaymentResult.setText("Ошибка: " + info); } @Override public void onNetworkError(Activity activity, String s) { tvPaymentResult.setText("Сетевая ошибка: " + s); } } |
SDK и пример приложения доступны для скачивания по следующей ссылке:
https://github.com/assist-group/assist-mcommerce-sdk-android