我尝试在应用中启用支付功能,因此选择“checkout.com”作为支付网关
有几种方法可以接受付款,我选择了有令牌的方法。
我设法得到令牌成功,但接受付款不工作。我不确定如果我的代码是错误的,或他们的API是出于某种原因。因为它不响应我任何数据或任何错误代码是401
这是我代码
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,
};
响应正文为空。
这是网址
static const String _paymentURL = 'https://api.sandbox.checkout.com/payments';
密钥也是正确的。
知道为什么吗?谢谢
1条答案
按热度按时间3ks5zfa01#
可能有几个问题。您很可能使用的是新平台,该平台要求在密钥前面使用词语“Bearer”。您的授权标头值将类似于“Bearer sk_xxxx”