Я работаю над услугой Restful, связанной с оплатой. когда я пытаюсь вызвать API, возникает исключение под названием java.lang.IllegalArgumentException
карта не имеет значения для orderId
В качестве фона я создал HttpHeaders и LinkedMultiValueMap, поместил в него значения и вызвал API.
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
LinkedMultiValueMap<String, String> uriVars = new LinkedMultiValueMap<>();
uriVars.add("merchantId", _paymentInstrument.getAcquirerMid());
uriVars.add("orderId", _paymentInstrument.getOrderId().toString());
uriVars.add("transactionId", _paymentInstrument.getTransactionId().toString());
VoidRequest voidRequest = createVoidRequest(_paymentInstrument.getTargetTransactionId());
HttpEntity<VoidRequest> requestEntity = new HttpEntity<>(voidRequest, headers);
TransactionResponse voidResponse = null;
try {
ResponseEntity<TransactionResponse> responseEntity = restTemplate.exchange(getEnvironment().getProperty(IPG_TRANSACTION_URL),
HttpMethod.PUT, requestEntity, TransactionResponse.class, uriVars);
voidResponse = responseEntity.getBody();
log.info(LogSupport.PG_LOGS_CARGILLS_VOID_TRX + "[AcquirerMID ={};TransactionId ={};ResponseCode={};ResponseText={}]", _paymentInstrument.getAcquirerMid(),
_paymentInstrument.getTransactionId(), voidResponse.getResponse().getAcquirerCode(), voidResponse.getResponse().getAcquirerMessage());
} catch (ResourceAccessException rae) {
throw rae;
} catch (Exception e) {
voidResponse = new TransactionResponse();
voidResponse.setResult("ERROR");
ErrorResponse error = new ErrorResponse();
error.setCause("EXCEPTION");
error.setExplanation(e.getMessage());
}
Это происходит исключение java.lang.IllegalArgumentException Карта не имеет значения для "orderId".