getMerchantPayModes method
Future<void>
getMerchantPayModes(
)
Implementation
Future<void> getMerchantPayModes() async {
loaderController.add(true);
String? encodedMerchantId = CryptoUtils.encrypt(
MerchantConstants.merchantId, KeywordConstants.internalKey);
await appRepository.getMerchantPayModeAndScheme(encodedMerchantId!).then(
(Response response) async {
//debugPrint('Get merchant payment mode api response is ${response.body}');
MerchantPayModeSchemesResponse payModeSchemesResponse =
MerchantPayModeSchemesResponse.fromJson(json.decode(response.body));
String encryptedSchemes = payModeSchemesResponse.payModeSchemes;
String? schemes =
CryptoUtils.decrypt(encryptedSchemes, MerchantConstants.merchantKey);
//debugPrint('Decrypted schemes are $schemes');
if (schemes != null && schemes.isNotEmpty) {
paymentModeList = <PaymentMode>[];
List<dynamic> jsonMapList = json.decode(schemes);
final payMode.PaymentMethodModel model1 = payMode.PaymentMethodModel(
"packages/safexpay/img/ic_card.png", "CREDIT/DEBIT/ATM CARD",
preference: 1);
final payMode.PaymentMethodModel model2 = payMode.PaymentMethodModel(
"packages/safexpay/img/ic_bank.png", "NET BANKING",
preference: 2);
final payMode.PaymentMethodModel model3 = payMode.PaymentMethodModel(
"packages/safexpay/img/ic_wallet.png", "WALLETS",
preference: 3);
final payMode.PaymentMethodModel model4 = payMode.PaymentMethodModel(
"packages/safexpay/img/ic_upi.png", "UPI",
preference: 4);
paymentMethodList.clear();
for (Map<String, dynamic> jsonMap in jsonMapList) {
PaymentMode paymentMode = PaymentMode.fromJson(jsonMap);
paymentModeList?.add(paymentMode);
//debugPrint('Payment mode id is ${paymentMode.payModeId}');
if (paymentMode.payModeId == "NB" && netBankingPaymentFlag) {
paymentMethodList.add(model2);
nbPaymentMode = paymentMode;
filteredNBPaymentList.clear();
filteredNBPaymentList.addAll(nbPaymentMode.paymentModeDetailsList!);
generateStaticNBList();
}
if (paymentMode.payModeId == "CC" &&
!paymentMethodList.contains(model1) &&
cardPaymentFlag) {
paymentMethodList.add(model1);
}
if (paymentMode.payModeId == "DC" &&
!paymentMethodList.contains(model1) &&
cardPaymentFlag) {
paymentMethodList.add(model1);
}
/// Remove before comment once UP payment mode implementation is done
if (paymentMode.payModeId == "UP" && upiPaymentFlag) {
paymentMethodList.add(model4);
upiPaymentList.clear();
upiPaymentList.addAll(paymentMode.paymentModeDetailsList!);
/*for(PaymentModeDetails paymentModeDetails in paymentMode.paymentModeDetailsList!){
////debugPrint('${paymentModeDetails.pgDetailsResponse!.pgName} Upi payment icon is ${paymentModeDetails.pgDetailsResponse!.pgIcon}');
}*/
}
if (paymentMode.payModeId == 'WA' && walletPaymentFlag) {
paymentMethodList.add(model3);
walletPaymentList.clear();
walletPaymentList.addAll(paymentMode.paymentModeDetailsList!);
if (walletPaymentList.isNotEmpty) {
walletListController.add(true);
} else {
walletListController.add(false);
}
}
}
}
if (paymentMethodList.isNotEmpty) {
paymentMethodList.sort((a, b) => a.preference.compareTo(b.preference));
payModeListController.add(true);
} else {
payModeListController.add(false);
}
loaderController.add(false);
}, onError: (dynamic e) {
loaderController.add(false);
//debugPrint('Get merchant payment mode api exception is ${e.toString()}');
});
}