//Generate an OAuth Access Token
public MpesaTokenGet Oauthgettoken() throws Exception {
RestTemplate restTemplate = new RestTemplate();
String url = "https://sandbox.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials";
String username = "";
String password = "";
String authorizationHeader = "Basic "
+ DatatypeConverter.printBase64Binary((username + ":" + password).getBytes());
org.springframework.http.HttpHeaders requestHeaders = new org.springframework.http.HttpHeaders();
requestHeaders.add("Authorization",authorizationHeader);
requestHeaders.add("Accept", MediaType.APPLICATION_JSON_VALUE);
HttpEntity<MpesaTokenGet> httpentity = new HttpEntity<MpesaTokenGet>( requestHeaders);
System.out.println(authorizationHeader);
ResponseEntity<MpesaTokenGet> responseEntity = restTemplate.exchange(url, HttpMethod.GET,
httpentity, MpesaTokenGet.class);
// mpesa_authRepository.update(responseEntity.getBody().getAccess_token(),responseEntity.getBody().getExpires_in());
System.out.println(responseEntity.getBody().getAccess_token());
return responseEntity.getBody();
}
It is a GET api and im getting auth token successfully using this code
//Register C2B Confirmation and Validation URLs
public RegisterUrlResponse getC2B(RegisterUrlC2B RegisterUrlC2B) throws Exception{
String url = "https://sandbox.safaricom.co.ke/mpesa/c2b/v1/registerurl";
String token=mpesa_authRepository.token();
String authorizationHeader = "Bearer "+token;
org.springframework.http.HttpHeaders requestHeaders = new org.springframework.http.HttpHeaders();
requestHeaders.add("Authorization",authorizationHeader);
requestHeaders.add("Accept", MediaType.APPLICATION_JSON_VALUE);
HttpEntity<com.mpesa.domain.RegisterUrlC2B> httpentity = new HttpEntity<RegisterUrlC2B>(RegisterUrlC2B, requestHeaders);
System.out.println(authorizationHeader);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<RegisterUrlResponse> responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpentity,
RegisterUrlResponse.class);
return responseEntity.getBody();
}
Its a POST Api and after checking RegisterurlC2B requestbody in postman it return the 500 internal server exception
And the output showing like this error
anyone can explain what i need to do