pay method

Future<ResponseDto<PayResponseDto>> pay(
  1. String paymentNumber,
  2. String securityCode,
  3. String? firstName,
  4. String? lastName,
  5. int? expirationMonth,
  6. int? expirationYear,
  7. bool shouldSavePaymentMethod,
  8. String authToken,
)

Implementation

Future<ResponseDto<PayResponseDto>> pay(String paymentNumber,
    String securityCode,
    String? firstName,
    String? lastName,
    int? expirationMonth,
    int? expirationYear,
    bool shouldSavePaymentMethod,
    String authToken) async {
  final PayRequestDto payRequestDto = PayRequestDto(
      paymentNumber: paymentNumber,
      securityCode: securityCode,
      firstName: firstName,
      lastName: lastName,
      expirationMonth: expirationMonth,
      expirationYear: expirationYear,
      shouldSavePaymentMethod: shouldSavePaymentMethod);

  final RequestDto<PayRequestDto> requestDto = RequestDto<PayRequestDto>(
      body: payRequestDto);

  final String requestJson = json.encode(requestDto.toJson());
  final String requestHash = HttpUtils.computeHash(
      requestJson, _requestHashKey);

  final Map<String, dynamic> response = await AcceptanceApiClient(_stage)
      .postAndParseJson(
      _payPath, requestJson, _apiKey,
      authToken: authToken,
      requestHash: requestHash);

  final ResponseDto<PayResponseDto> responseDto = ResponseDto<
      PayResponseDto>.fromJson(
      response, PayResponseDto.fromJson);

  responseDto.throwApiExceptionIfError();
  return responseDto;
}