extractParameters static method

Future<Map<String, dynamic>> extractParameters(
  1. Map<String, dynamic> configuration
)

Complements the payment configuration object with metadata about the package.

Takes the configuration included in config and returns and updated version of the object wrapped in a Future with additional metadata.

Implementation

static Future<Map<String, dynamic>> extractParameters(
    Map<String, dynamic> configuration) async {
  PayProvider provider =
      PayProviders.fromString(configuration['provider'] as String)!;
  Map<String, dynamic> configurationParams =
      configuration['data'] as Map<String, dynamic>;

  switch (provider) {
    case PayProvider.apple_pay:
      return configurationParams;

    case PayProvider.google_pay:

      // Add information about the package.
      final updatedMerchantInfo = {
        ...(configurationParams['merchantInfo'] ?? {}) as Map,
        'softwareInfo': {
          'id': 'flutter/pay-plugin',
          'version': (await _getPackageConfiguration())['version']
        }
      };

      final updatedPaymentConfiguration = Map<String, Object>.unmodifiable(
          {...configurationParams, 'merchantInfo': updatedMerchantInfo});

      return updatedPaymentConfiguration;
  }
}