Фреймворк AssistMobile позволяет разработать мобильное приложение интернет-магазина для проведения через АПК Assist платежей банковской картой с мобильных устройств.
Пользователями фреймворка AssistMobile являются разработчики мобильного приложения интернет-магазина.
Настоящий документ содержит сведения по установке, настройке и использованию фреймворка AssistMobile, достаточные для его применения.
Для работы с AssistMobile необходимо использовать среду разработки iOS SDK версии не ниже 8.4.
Фреймворк AssistMobile представляет собой файл AssistMobile.framework.
Для доступа к функционалу библиотеки нужно использовать объект класса AssistPay.
Класс содержит:
Протокол AssistPayDelegate определяет метод payFinished, с помощью которого поддерживающий этот протокол объект будет получать результат оплаты. Метод payFinished будет вызван, если оплата завершена. Метод имеет следующие параметры:
Статус может иметь следующие значения:
Метод start позволяет инициировать процесс оплаты, принимает параметры:
Метод getResult позволяет получить результат оплаты из системы Ассист. Принимает параметр 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. |
Для интеграции мобильного приложения интернет-магазина с фреймворком AssistMobile необходимо выполнить следующие действия:
Пример кода Swift
import UIKit
import AssistMobile
class ViewController: UIViewController, AssistPayDelegate {
@IBOutlet weak var result: UILabel!
var data = PayData()
@IBAction func startPay(sender: UIButton) {
data.merchantId = "123456"
data.orderNumber = "test_payment_01"
data.orderAmount = "100.05"
data.orderComment = "This is a test!"
data.orderCurrency = .RUB
data.lastname = "Ivanov"
data.firstname = "Ivan"
data.middlename = "Ivanovich"
data.email = "i3@mail.ru"
data.mobilePhone = "+79210000000"
data.address = "Nevskiy prospekt, 1"
data.country = "Russian Federation"
data.state = "Saint-Petersburg"
data.city = "Saint-Petersburg"
let pay = AssistPay(delegate: self)
pay.start(self, withData: data)
}
func payFinished(bill: String, status: PaymentStatus, message: String?) {
let msg = message ?? ""
result.text = "Finished: bill = \(bill), status = \(status.rawValue), message = \(msg)"
}
} |
Пример кода на Objective C
ViewController.h
#import <UIKit/UIKit.h> #import "AssistMobile/AssistMobile.h" @interface ViewController : UIViewController<AssistPayDelegate> @property (weak, nonatomic) IBOutlet UILabel *result; - (IBAction)pay:(UIButton *)sender; @end |
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@property (strong, nonatomic) PayData* data;
@end
@implementation ViewController
- (IBAction)pay:(UIButton *)sender {
if (!_data) {
_data = [[PayData alloc] init];
}
_data.orderAmount = @"100.05";
_data.orderNumber = @"test_payment_002";
_data.merchantId = @"679471";
AssistPay* assistPay = [[AssistPay alloc] initWithDelegate: self];
[assistPay start:self withData: _data];
}
- (void)payFinished:(NSString * __nonnull)bill status:(NSString * __nonnull)status message:(NSString * __nullable)message
{
NSString* res = @"status: ";
res = [res stringByAppendingString: status];
res = [res stringByAppendingString: @", billnumber: "];
res = [res stringByAppendingString: bill];
res = [res stringByAppendingString: @", message: "];
res = [res stringByAppendingString: message];
_result.text = res;
}
@end |
Выполнить шаги из раздела 4 «Порядок интеграции мобильного приложения интернет-магазина с фреймворком AssistMobile».
Скомпилировать AssistMobile.framework из исходников.
Добавить фреймворк в свой проект.
Включить опцию Build Settings -> Build Options -> Embedded Content Contains Swift Code в YES в настройках проекта.
https://github.com/assist-group/assist-mcommerce-sdk-ios