customerCardTokenCreate method
Future<Map?>
customerCardTokenCreate(
{ - required Card? dataCard,
- required dynamic email,
})
Implementation
Future<Map?> customerCardTokenCreate({
required Card? dataCard,
required email,
}) {
const String path = "/card_tokens";
Map<String, dynamic> body = {};
if (dataCard?.id != null) {
body = {"cardId": dataCard?.id, "securityCode": dataCard?.cvv};
} else {
body = {
"cardNumber": dataCard?.cardNumber,
// "email": email,
"cardholder": dataCard?.cardholder?.toJson(),
// "cardholder": {"name": "APRO"},
// "issuer": {"name": "APRO"},
"expirationYear": dataCard?.expirationYear,
"expirationMonth": dataCard?.expirationMonth,
"securityCode": dataCard?.cvv
};
}
Future<Map?> futureCustomerModel = httpService
.postWithCredentials(path: path, body: body)
.then((http.Response response) async {
final decodeData = json.decode(response.body);
if (response.statusCode == 200 || response.statusCode == 201) {
if (decodeData != null && decodeData['id'] != null) {
if (dataCard?.id != null) {
Card newCard = dataCard!.copyWith(token: decodeData['id']);
return {
'success': true,
'data': newCard,
};
} else {
Card? card = await customerCardCreate(
dataCard: dataCard,
token: decodeData['id'],
);
if (card != null && card.id != null) {
Card newCard = card.copyWith(token: decodeData['id']);
return {'success': true, 'data': newCard};
} else if (card != null && card.error != null) {
return {
'success': false,
'msg': card.error,
'data': dataCard,
};
}
return null;
}
}
}
final msg = _readErrorCode(decodeData, 'leyendo la tarjeta');
return {
'success': false,
'msg': msg,
'data': dataCard,
};
});
return futureCustomerModel;
}