loadPaymentData method
Future<Map<String, dynamic> ?>
loadPaymentData(
- Map<
String, dynamic> request, - SmartCheckoutEnvironment environment
Implementation
Future<Map<String, dynamic>?> loadPaymentData(
Map<String, dynamic> request,
SmartCheckoutEnvironment environment,
) async {
try {
debugPrint('📱 Request received: $request');
final payClient = Pay({
PayProvider.apple_pay: PaymentConfiguration.fromJsonString(
jsonEncode({
'provider': 'apple_pay',
'data': {
'merchantIdentifier': request['merchantIdentifier'] as String,
'merchantCapabilities': ['3DS', 'debit', 'credit'],
'supportedNetworks': ['visa', 'masterCard'],
'countryCode': request['countryCode'] as String,
'currencyCode': request['currencyCode'] as String,
},
}),
),
});
final item = request['item'] as Map<String, dynamic>;
final result = await payClient
.showPaymentSelector(PayProvider.apple_pay, [
PaymentItem(
label: item['label'] as String,
amount: item['price'] as String,
status: PaymentItemStatus.final_price,
),
PaymentItem(
label: request['merchantLabel'] as String,
amount: request['totalPrice'] as String,
status: PaymentItemStatus.final_price,
),
]);
return result;
} catch (e) {
debugPrint('❌ Error starting Apple Pay: $e');
return null;
}
}