addPaymentMethodToCustomer method
Used for adding a new payment method to a customer object.
Implementation
Future<CardPayment?> addPaymentMethodToCustomer({
required String customerId,
required String type,
required String number,
required String expirationMonth,
required String expirationYear,
required String cvv,
required String cardHoldersName,
}) async {
CardPayment? cardDetails;
var method = "post";
var checkoutEndpoint = '/v1/customers/$customerId/payment_methods';
final checkoutURL = Uri.parse(baseURL + checkoutEndpoint);
var data = jsonEncode({
"type": type,
"fields": {
"number": number,
"expiration_month": expirationMonth,
"expiration_year": expirationYear,
"cvv": cvv,
"name": cardHoldersName,
},
"metadata": {
"merchant_defined": true,
},
});
final headers = _generateHeader(
method: method,
endpoint: checkoutEndpoint,
body: data,
);
try {
var response = await http.post(
checkoutURL,
headers: headers,
body: data,
);
if (response.statusCode == 200) {
dev.log('PAYMENT METHOD SUCCESSFULLY ADDED');
cardDetails = CardPayment.fromJson(jsonDecode(response.body));
} else {
dev.log(response.statusCode.toString());
}
} catch (e) {
dev.log('Failed to create the payment method');
}
return cardDetails;
}