Благодаря vishal за его помощью. Я смог решить это с помощью модификации (добавление заголовков статически).
1. Сначала получите стоимость вашего заголовка авторизации:
String clientId = "your client id";
String clientSecret = "your client secret";
String credentials = clientId + ":" + clientSecret;
String basic =
"Basic " + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP);
Log.e("Authorization",basic);
Скопируйте это значение из журнала, он будет использоваться в дальнейшем в нашем решении.
2. Сделайте модель отклика в соответствии с этим: JSON
{
"scope":"https://api.paypal.com/v1/payments/.* https://api.paypal.com/v1/vault/credit-card https://api.paypal.com/v1/vault/credit-card/.*",
"access_token":"Access-Token",
"token_type":"Bearer",
"app_id":"APP-6XR95014SS315863X",
"expires_in":28800
}
3. Сделайте метод retorfit вызова, как это:
@Headers({
"Accept: application/json",
"Accept-Language : en_US",
"Content-Type : application/x-www-form-urlencoded",
"Authorization:your basic string value here"
})
@POST("https://api.sandbox.paypal.com/v1/oauth2/token/")
Call<AuthenticationTokenModel> getAuthentionToken(@Query("grant_type") String grant_type);
4. Наконец сделать вызов, как :
ApiInterface apiInterface= ApiClient.getClient().create(ApiInterface.class);
apiInterface.getAuthentionToken("client_credentials").enqueue(new Callback<AuthenticationTokenModel>() {
@Override
public void onResponse(Call<AuthenticationTokenModel> call, Response<AuthenticationTokenModel> response) {
Log.e("response",response.body().getAccess_token());
}
@Override
public void onFailure(Call<AuthenticationTokenModel> call, Throwable t) {
Log.e("response",t.getMessage());
}
});
Спасибо.
Отредактировано:
Вы также можете добавить динамические заголовки запросов в Модернизированный 2.
Следуйте за этим: https://futurestud.io/tutorials/retrofit-add-custom-request-header
вы способны генерировать маркер доступа? –