forked from eatvio/eatvio_app
28 lines
1.3 KiB
Dart
28 lines
1.3 KiB
Dart
import 'package:eatvio_app/features/payment/services/sbp_service.dart';
|
||
import 'package:sbp/models/c2bmembers_model.dart';
|
||
|
||
/// Репозиторий оплаты по СБП: обёртка над [SbpService] с graceful-обработкой
|
||
/// ошибок нативного плагина (отсутствие установленных банков, недоступность
|
||
/// сервисов на устройстве, в т.ч. на Huawei HMS и т.п.).
|
||
///
|
||
/// Возвращает управляемые значения вместо проброса исключений, чтобы UI мог
|
||
/// показать fallback (например, открыть checkout_url в браузере/WebView).
|
||
class SbpRepository {
|
||
final SbpService sbpService;
|
||
|
||
SbpRepository({required this.sbpService});
|
||
|
||
/// Возвращает установленные банки СБП либо пустой список при ошибке плагина.
|
||
Future<List<C2bmemberModel>> getInstalledBanks() async {
|
||
return await sbpService.getInstalledBanks();
|
||
}
|
||
|
||
/// Открывает банк для оплаты. Возвращает `false` при ошибке плагина.
|
||
Future<bool> openBank({
|
||
required String url,
|
||
required C2bmemberModel bank,
|
||
}) async {
|
||
return await sbpService.openBank(url: url, bank: bank);
|
||
}
|
||
}
|