addCard method
Implementation
void addCard(BuildContext context) async {
FocusScope.of(context).requestFocus(FocusNode());
if (formKey.currentState!.validate()) {
FocusScope.of(context).unfocus();
// Get hold of the current form state
final FormState form = formKey.currentState!;
//save form values
form.save();
isLoading.value = true;
var request = {
'token': Storage.getValue(Constants.token),
'api_key': Constants.apiKey,
'sub_client_api_key': Storage.getValue(Constants.subClientApiKey),
'card_name': userFirstName.value,
'card_number': paymentCard.number,
'cvv': paymentCard.cvv,
'expiry_month': paymentCard.month,
'expiry_year': paymentCard.year,
'zip': zipController.text.toString()
};
var response = await DioClient().request(context: context,
api: '/tokenize-card', method: Method.POST, params: request);
TokenizeCardResponse tokenizeCardResponse =
TokenizeCardResponse.fromJson(response);
if (tokenizeCardResponse.status == Strings.success) {
// var json = jsonEncode(paymentCard.toJson());
// Storage.saveValue(Constants.savedCard, json);
// print('card number is ${paymentCard.number.toString().substring(paymentCard.number.toString().length - 4)}');
// print('card id is ${tokenizeCardResponse.data!.id.toString()}');
Storage.saveValue(Constants.cardNumber,
tokenizeCardResponse.data!.metaDataJson!.maskedCardNumber);
Storage.saveValue(
Constants.cardId, tokenizeCardResponse.data!.id.toString());
Storage.saveValue(Constants.isCardAdded, true);
payWithCard(context);
} else {
isLoading(false);
return Utils.showSnackbar(
context, Strings.error, response['message'].toString().toTitleCase(), AppColors.red);
}
}
}