BlaCK _ WolF
BlaCK _ WolF

Reputation: 17

i could not accept the payment using flutter 'checkout.com'

I'm trying to enable payment in my app so i choose 'checkout.com' as a payment gateway

there are couples of methods there to accept the payment and i choose the one with token.

i managed to get the token successfully, but accepting the payment does not work. i am not sure if my code is wrong, or their API is broken for some reason. because it does not response me any data or anything the error code is 401

here is my code

  Future<bool> makePayment(PaymentCard card, int amount) async {
String? token = await _getPaymentToken(card);

Map<String, dynamic> body = {
  "source": {"type": "token", "token": token},
  "amount": amount,
  "currency": "USD",
};

http.Response respone = await http.post(Uri.parse(_paymentURL),
    headers: _Payment_Header, body: jsonEncode(body));
print(respone.body);
if (respone.statusCode == 200) {
  var data = await jsonDecode(respone.body);

  print(data['response_summary']);
  return true;
} else {
  print("invalid - payment");
  return false;
}

}

static const Map<String, String> _Payment_Header = {
    'Content-Type': 'Application/json',
    'Authorization': _secret_key,
  };

the response body is empty.

this is the url

  static const String _paymentURL = 'https://api.sandbox.checkout.com/payments';

also the secret key is correct.

any idea why ? thank you

Upvotes: 0

Views: 361

Answers (1)

Will H
Will H

Reputation: 404

Could be a couple of issues. You are most likely on the new platform which requires the word Bearer in front of the secret key. Your authorization header value would look similar to 'Bearer sk_xxxx'

Upvotes: 1

Related Questions