getAccessToken method
Implementation
@override
Future<AccessTokenResult> getAccessToken(String clientId, String clientSecret)async {
final String url = "$BASE_URL/oauth/token";
final http.Response response = await http.post(
Uri.parse(url),
body: <String, String>{
"grant_type": "client_credentials",
"client_id": clientId,
"client_secret":clientSecret
},
headers: {
'Accept':'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
}
);
if(response.statusCode == 200){
final Map<String, dynamic> json = jsonDecode(response.body);
final AccessTokenResult? accessTokenResult = AccessTokenResult.fromJson(json);
if(accessTokenResult != null){
return accessTokenResult;
}else{
throw new AdjeminPayAuthException(json['message'], response.statusCode);
}
}else{
var message = "";
if(response.headers['content-type'] == 'application/json'){
final Map<String, dynamic> json = jsonDecode(response.body);
if(json.containsKey('message')){
message = json['message'] as String;
}
}else{
message = "Client authentication failed";
}
throw new AdjeminPayAuthException(message, response.statusCode);
}
}