sendPayment method

Future<Map<String, dynamic>> sendPayment(
  1. CardModel card,
  2. String locale
)

Implementation

Future<Map<String, dynamic>> sendPayment(
    CardModel card, String locale) async {
  final url = Uri.parse('$host/tokens');

  final response = await client.post(
    url,
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer $apiKey',
      'Accept': 'application/vnd.conekta-v2.2.0+json',
      'Accept-Language': locale,
      'X-Tokenization-Source': 'flutter',
      'publisher': 'conekta',
      'origin': 'flutter sdk',
      'conekta-client-user-agent': jsonEncode({
        'agent': 'Conekta ActiveMerchantBindings',
        'lang': 'flutter',
        'publisher': 'conekta',
        'bindings_version': sdkVersion,
      })
    },
    body: jsonEncode({
      'card': {
        'number': encryptCardField(card.cardNumber),
        'name': encryptCardField(card.name),
        'cvc': encryptCardField(card.cvv),
        'exp_month': encryptCardField(card.expiryMonth),
        'exp_year': encryptCardField(card.expiryYear),
      }
    }),
  );

  if (response.statusCode < 300) {
    return jsonDecode(response.body);
  }
  throw HttpException(
    statusCode: response.statusCode,
    message: response.body,
  );
}