diff --git a/example/lib/models/card_info_model.dart b/example/lib/models/card_info_model.dart index a6baeef..ae552d6 100644 --- a/example/lib/models/card_info_model.dart +++ b/example/lib/models/card_info_model.dart @@ -11,8 +11,9 @@ class CardInfoModel { class NetBankingModel { String? bankKey; String? bankName; + String? logoUrl; - NetBankingModel({this.bankKey, this.bankName}); + NetBankingModel({this.bankKey, this.bankName, this.logoUrl}); } class WalletModel { diff --git a/example/lib/payment_slection_page.dart b/example/lib/payment_slection_page.dart index 406f45c..cb21949 100644 --- a/example/lib/payment_slection_page.dart +++ b/example/lib/payment_slection_page.dart @@ -84,6 +84,18 @@ class _PaymentSelectionPageState extends State { ); }, ); + attachBankLogosAsync(); + } + + attachBankLogosAsync() async { + if (netBankingList?.isNotEmpty != true) + return; + for (var netBank in netBankingList!) { + if (netBank.bankKey?.isNotEmpty == true) { + String? logoUrl = await _razorpay.getBankLogoUrl(netBank.bankKey!); + netBank.logoUrl = logoUrl; + } + } } configurePaymentWallets() { @@ -297,7 +309,25 @@ class _PaymentSelectionPageState extends State { return ListView.builder( itemCount: netBankingList?.length, itemBuilder: (context, item) { + Widget? leadingWidget; + if (netBankingList?[item].logoUrl?.isNotEmpty == true) { + leadingWidget = Image.network( + netBankingList![item].logoUrl!, + height: 32.0, + width: 32.0, + errorBuilder: (context, obj, stkTrc) => SizedBox( + height: 32.0, + width: 32.0, + child: Center( + child: Text( + "Error", style: TextStyle(color: Colors.redAccent), + ), + ), + ), + ); + } return ListTile( + leading: leadingWidget, title: Text(netBankingList?[item].bankName ?? ''), trailing: Icon(Icons.arrow_forward_ios), onTap: () { @@ -580,6 +610,9 @@ class _PaymentSelectionPageState extends State { await _razorpay.getCardsNetwork("4111111111111111"); print(cardNetwork); */ + /*final bankLogo = await _razorpay.getBankLogoUrl('HDFC'); + print('Bank Logo URL : $bankLogo');*/ + /* final walletLogo await _razorpay.getWalletLogoUrl('paytm'); print('Wallet URL : $walletLogo'); */ diff --git a/lib/razorpay_flutter_customui.dart b/lib/razorpay_flutter_customui.dart index f57c796..036c08a 100644 --- a/lib/razorpay_flutter_customui.dart +++ b/lib/razorpay_flutter_customui.dart @@ -53,6 +53,12 @@ class Razorpay { return isCredAppPresent; } + Future getBankLogoUrl(String bankCode) async { + final bankLogoUrl = + await _channel.invokeMethod('getBankLogoUrl', bankCode); + return bankLogoUrl; + } + Future getWalletLogoUrl(String walletName) async { final walletLogoUrl = await _channel.invokeMethod('getWalletLogoUrl', walletName);