loadPaymentData method

Future<Map<String, dynamic>?> loadPaymentData(
  1. Map<String, dynamic> request,
  2. SmartCheckoutEnvironment environment
)

Implementation

Future<Map<String, dynamic>?> loadPaymentData(
  Map<String, dynamic> request,
  SmartCheckoutEnvironment environment,
) async {
  try {
    debugPrint('📱 Request received: $request');

    request = _addEnvironmentToRequest(request, environment);

    final payClient = Pay({
      PayProvider.google_pay: PaymentConfiguration.fromJsonString(
        jsonEncode({'provider': 'google_pay', 'data': request}),
      ),
    });
    debugPrint(
      '📏 Entered loadPaymentData to get information from request: $request',
    );
    // Extracts information from request for PaymentItems
    final transactionInfo = request['transactionInfo'];
    final result = await payClient
        .showPaymentSelectorAndListen(PayProvider.google_pay, [
          PaymentItem(
            label: 'Total',
            amount: transactionInfo['totalPrice'] ?? '0.00',
            status: PaymentItemStatus.final_price,
          ),
        ]);

    return result;
  } catch (e) {
    debugPrint('❌ Error starting Google Pay: $e');
    return null;
  }
}