payOrder method
Future<PaymentResponseModel?>
payOrder(
{ - required Card dataCard,
- required UserModel userModel,
- required String orderNumber,
- required double amount,
})
Implementation
Future<PaymentResponseModel?> payOrder({
required Card dataCard,
required UserModel userModel,
required String orderNumber,
required double amount,
}) {
const String path = "/payments";
Map<String, dynamic> body = {
"transaction_amount": amount,
"token": dataCard.id,
"notification_url": "https://website.com/retorno",
"installments": dataCard.installments ?? 1,
"payment_method_id": dataCard.paymentMethod?.id,
"description": "Compra en https://website.com Flutter",
"payer": {
"id": dataCard.customerId,
"identification": {
"number": userModel.document,
"type": userModel.idCountriesDocumentsTypes ?? 'DNI',
}
},
"external_reference": orderNumber,
"additional_info": {
"payer": {
"first_name": userModel.firstName,
"last_name": userModel.lastName,
"registration_date": "",
"phone": {
"area_code": userModel.idCountriesCodes,
"number": userModel.phoneNumber
}
},
}
};
Future<PaymentResponseModel?> futurePaymentResponseModel = httpService
.postWithCredentials(path: path, body: body)
.then((http.Response response) {
final decodeData = json.decode(response.body);
if (decodeData != null &&
(decodeData['id'] != null || decodeData['message'] != null)) {
final PaymentResponseModel paymentResponseModel =
PaymentResponseModel.fromJson(decodeData);
return paymentResponseModel;
}
// }
return null;
});
return futurePaymentResponseModel;
}