import 'package:aman_kassa_flutter/core/locator.dart'; import 'package:aman_kassa_flutter/core/logger.dart'; import 'file:///D:/Work/serik/Flutter/aman-kassa-flutter/lib/core/models/halyk_response_dao.dart'; import 'package:aman_kassa_flutter/core/services/DataService.dart'; import 'package:aman_kassa_flutter/core/services/dialog_service.dart'; import 'package:aman_kassa_flutter/core/services/navigator_service.dart'; import 'package:aman_kassa_flutter/redux/store.dart'; import 'package:logger/logger.dart'; import '../../core/models/aman_dao.dart'; import '../../core/models/card_data.dart'; import '../../core/models/halyk_post_session.dart'; import '../../core/services/BankService.dart'; import '../../redux/state/bank_state.dart'; BankService _bankService = locator(); DialogService _dialogService = locator(); final DataService _dataService = locator(); final NavigatorService _navigatorService = locator(); Logger log = getLogger('PaymentNfcView'); Future> paymentHalykPos(double total) async { //Авторизация String token = Redux.store.state.userState.user.token; BankState bankState = Redux.store.state.bankState; //права доступа HalykPosSession session = await _bankService.renewToken(token: token, login: bankState.login, password: bankState.password); if (session.token == null) { return AmanDao(success: false, msg: 'Отказано в доступе к API банка'); } //Инициализация HalykResponse response = await _bankService.pay(token: session.token, amount: total); if (response.result.code == 0) { CardData cardData = new CardData( authorizationCode: response.transaction.instrumentSpecificData.authorizationCode, cardholderName: response.transaction.instrumentSpecificData.cardholderName, cardNumber: response.transaction.instrumentSpecificData.maskedPan, operationDay: response.transaction.operationDay, transactionNumber: response.transaction.transactionNumber, terminalId: response.transaction.terminalId, transactionType: 'payment' ); return AmanDao(msg: response.result.description, success: true, data: cardData); } return AmanDao(msg: response.result.description, success: false); } Future> refundHalykPos(CardData refundData, double total) async { //Авторизация String token = Redux.store.state.userState.user.token; BankState bankState = Redux.store.state.bankState; //права доступа HalykPosSession session = await _bankService.renewToken(token: token, login: bankState.login, password: bankState.password); if (session.token == null) { return AmanDao(success: false, msg: 'Отказано в доступе к API банка'); } HalykResponse response = await _bankService.refund(token: session.token, amount: total, operDay: refundData.operationDay, terminalId: refundData.terminalId, transNum: refundData.transactionNumber ); if (response.result.code == 0) { CardData cardData = new CardData( authorizationCode: response.transaction.instrumentSpecificData.authorizationCode, cardholderName: response.transaction.instrumentSpecificData.cardholderName, cardNumber: response.transaction.instrumentSpecificData.maskedPan, operationDay: response.transaction.operationDay, transactionNumber: response.transaction.transactionNumber, terminalId: response.transaction.terminalId, transactionType: 'payment' ); return AmanDao(msg: response.result.description, success: true, data: cardData); } return AmanDao(msg: response.result.description, success: false); } Future closeDayHalykPos() async { //Авторизация String token = Redux.store.state.userState.user.token; BankState bankState = Redux.store.state.bankState; //права доступа HalykPosSession session = await _bankService.renewToken(token: token, login: bankState.login, password: bankState.password); if (session.token == null) { return new HalykResponse(result: ResultBean(description: 'Отказано в доступе к API банка', code: -1)); } //Инициализация HalykResponse response = await _bankService.closeDay(token: session.token); return response; }