Проведение покупки, проверка деактивированного токена, подтверждение логаута, функциональная маска на сканере, кнопка назад в faq

This commit is contained in:
Ivan Murashov
2017-07-26 18:57:29 +03:00
parent 313dc307dc
commit 73e139f925
10 changed files with 226 additions and 112 deletions

View File

@@ -42,27 +42,50 @@ class SplashScreen extends StatelessWidget {
pushRoute(context, new RegistrationScreen());
} else {
checkToken(context).then((response) {
print(response.body);
Map parsedMap = JSON.decode(response.body);
bool active = parsedMap['active'];
if (active) {
// Запускается экран сканера, токен кассы активирован, с его помощью можно делать запросы к pos-api.
startScanner(context);
} else {
// Запускается экран ожидания активации токена.
// В реальности токен активируется в админке вручную,
// на тестовом сервере токен активируется через несколько минут после создания.
pushRoute(context, new FinishRegistrationScreen());
}
checkTokenStatus(context).then((statusResponse) {
handleStatusResponse(context, statusResponse);
}).catchError((error) {
print('Handle exception!');
print(error.toString());
return false;
});
}
}
startRegistration() async {
}
handleStatusResponse(BuildContext context, var statusResponse) async {
int code = statusResponse.statusCode;
print('resp: ${code}');
if (code == 404) {
platform.invokeMethod('removeKeys').then((result) {
print('try to start registration');
pushRoute(context, new RegistrationScreen());
});
} else {
Map statusResponseMap = JSON.decode(statusResponse.body);
bool active = statusResponseMap['active'];
if (active) {
startScanner(context);
} else {
createToken(await platform.invokeMethod('getMerchantID')).then((response) {
print('response.body: ${response.body}');
if (response.statusCode == 409) {
pushRoute(context, new FinishRegistrationScreen());
} else {
startRegistration();
}
}).catchError((error) {
platform.invokeMethod('removeKeys').then((result) => pushRoute(context, new RegistrationScreen()));
});
}
}
}
}