Не удается получить токен доступа при звонке в Paypal в Android - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу получить токен доступа от Сделай свой первый звонок в PayPal

Я конвертирую Curl в код Котлина

Здесь я использую модификацию для вызова API.

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
  -H "Accept: application/json" \
  -H "Accept-Language: en_US" \
  -u "client_id:secret" \
  -d "grant_type=client_credentials"

Как мне добиться этого, используя kotlin и retofit?

1 Ответ

0 голосов
/ 13 сентября 2018
interface PayPalClient {
@FormUrlEncoded
@POST("/v1/oauth2/token")
fun getAccessToken(
        @Header("Authorization") credentials: String,
        @Field("grant_type") grantType: String
): Single<PayPalAccessToken>}

MainActivity

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val credentials = Credentials.basic(CLIENT_ID, CLIENT_SECRET)

    initRetrofit().getAccessToken(credentials, "client_credentials")
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                    { token -> Log.d(TAG, token.accessToken) },
                    { error -> Log.d(TAG, error.localizedMessage) }
            )

}

private fun initRetrofit(): PayPalClient {
    return Retrofit.Builder()
            .baseUrl("https://api.sandbox.paypal.com")
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build().create(PayPalClient::class.java)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...