Page History
| Table of Contents |
|---|
Общие сведения
Фреймворк AssistMobile позволяет разработать мобильное приложение интернет-магазина для проведения через АПК Assist Ассист платежей банковской картой с мобильных устройств.
...
Для работы с AssistMobile необходимо использовать среду разработки iOS SDK версии не ниже 8.4.
Описание фреймворка
...
AssistMobile
Фреймворк AssistMobile представляет собой файл AssistMobile.framework.
...
Протокол AssistPayDelegate определяет метод payFinished, с помощью которого поддерживающий этот протокол объект будет получать результат оплаты. Метод payFinished будет вызван, если оплата завершена. Метод имеет следующие параметры:
- bill- номер транзакции в системе АПК Ассист в строковом формате;
- status-статус платежа;
- message- описание статуса.
...
- Unknown - статус неизвестен – вероятно, произошла непредвиденная ошибка и не удалось получить статус оплаты, через некоторое время следует вызвать метод getResult и дождаться возвращения статуса; если ошибка повторяется, то необходимо связаться со службой поддержки АссистAssist;
- InProgress - оплата находится в обработке, через некоторое время следует повторно вызвать метод getResult, для получения результата;
- Delayed - платеж отложен, используется при включении функции отложенных платежей;
- Approved- платеж завершен успешно;
- PartialApproved-платеж завершен успешно на неполную сумму, используется при включении функции подтверждения платежа на неполную сумму;
- PartialDelayed- платеж частично отложен, используется при включении специальной функции;
- Canceled- платеж отменен;
- PartialCanceled - платеж частично отменен;
- Declined- оплата отклонена;
- Timeout- оплата завершена по таймауту;
- Repeated- в системе есть платеж с таким же номером заказа.
...
Метод getResult позволяет получить результат оплаты из системы АПК Ассист. Принимает параметр PayData.
...
- скачать актуальную версию AssistMobile.framework;
- добавить фреймворк в разрабатываемый проект, перетащив фреймворк в Xcode в дерево проекта;
- установить в свойствах проекта Build Settings -> Build Options -> Embedded Content Contains Swift Code значение «Yes»;
- добавить AssistMobile.framework в свойствах General->Embedded Binaries;
- добавить ключ NSLocationWhenInUseUsageDescription в файл Info.plist, в Information Property List, тип String, значение - строка "Позволить отправить данные геолокации в АПК Ассист".
Примеры реализации оплаты с помощью фреймворка AssistMobile
...
| Code Block | ||
|---|---|---|
| ||
#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 |
Интеграция с ApplePayApple Pay
- Выполнить шаги из раздела 4 «Порядок интеграции мобильного приложения интернет-магазина с фреймворком AssistMobile».
- Скомпилировать AssistMobile.framework из исходников.
- Добавить фреймворк в свой проект.
- Включить опцию Build Settings -> Build Options -> Embedded Content Contains Swift Code в YES в настройках проекта.
- Добавить AssisyMobile.framework в настройку General->Embedded Binaries.
- Включ NSLocationWhenInUseUsageDescription внастройках Info.plist -> Information Property List, добавляемпараметртипа String созначением 'Permit to send geolocation data to Assist.
...
| Code Block | ||
|---|---|---|
| ||
import UIKit
import AssistMobile
class ViewController: UIViewController, AssistPayDelegate {
@IBOutlet weak var result: UILabel!
var data = PayData()
@available(iOS 10.0, *)
@IBAction func payWithApplePay(_ sender: UIButton) {
data = PayData()
pay = AssistPay(delegate: self)
data.merchantId = "your merhcnt id in assist"
var apmid = "murchant.id.in.apple"
data.login = "your account login in assist"
data.password = "your account password in assist"
data.orderNumber = "order number"
data.orderComment = "comment"
data.orderAmount = "100.05"
data.orderCurrency = .RUB
data.lastname = "Ivanov"
data.firstname = "Ivan"
data.email = "ivan@mailhost.ru"
AssistLinks.currentHost = "https://payments.assist.ru"
pay!.startWithApplePay(self, withData: data, applePayMerchantId: apmid)
}
func payFinished(bill: String, status: PaymentStatus, message: String?) {
let msg = message ?? ""
result.text = "Finished: bill = \(bill), status = \(status.rawValue), message = \(msg)"
}
} |
SDK и пример приложения доступны для скачивания по следующей ссылке:
https://github.com/assist-group/assist-mcommerce-sdk-ios
...