2016-09-15 3 views
0

Мое требование - хранить данные кредитной карты в хранилище Paypal с помощью Android. Я последовал за эти ссылкиPayPal Android Sdk Vault

https://github.com/paypal/PayPal-Java-SDK

https://github.com/paypal/PayPal-Android-SDK

https://developer.paypal.com/docs/integration/direct/rest-vault-overview/

нет никакого упоминания о том, как перепрыгнуть кредит с помощью Android SDK. Я думаю, что это можно сделать, используя свой Rest API. Как достичь этого в Android?

+0

вы способны генерировать маркер доступа? –

ответ

3

Вы можете хранить кредитные карты в PayPal с помощью хранилища апи Следуйте этим шаги

Шаг 1: Генерация доступа токена OAuth токен Запрос

Try в почтальона

 Url :- https://api.sandbox.paypal.com/v1/oauth2/token 

     Headers :- (Key,Value) 

     1.(Accept , application/json) 
     2.(Accept-Language , en_US) 
     3.(Content-Type , application/x-www-form-urlencoded) 
     4.(Authorization , Basic<Space>(here your code generated by postman)) 

Примечание: - Создайте базовый Auth в почтовом человеке на вкладке выбора авторизации ==> Basic Auth и введите пароль клиента PayPal и идентификатор клиента.

 Body :- (Key,Value) 
     1.(grant_type,client_credentials) 

Примечание: - Выберите х-WWW-форм-urlencoded на вкладке тела в почтальона

Шаг 2: Хранить кредитные карты с помощью Валют API Try в почтальона

 Url :- https://api.sandbox.paypal.com/v1/vault/credit-cards 

     Headers :- (Key,Value) 

     1.(Accept , application/json) 
     2.(Accept-Language , en_US) 
     3.(Content-Type , application/x-www-form-urlencoded) 
     4.(Authorization , Bearer(your Access Token)) 

     Body : (Json) 

{ 
    "payer_id": "user12345", 
    "type": "visa", 
    "number": "4111111111111111", 
    "expire_month": "11", 
    "expire_year": "2018", 
    "first_name": "Joe", 
    "last_name": "Shopper", 
    "billing_address": { 
    "line1": "52 N Main ST", 
    "city": "Johnstown", 
    "state": "OH", 
    "postal_code": "", 
    "country_code": "US" 
    } 
} 

Примечание: - Выберите сырую вкладку в теле почтальона.

+0

Я успешно сделал это с помощью почтальона. Как это сделать в Android? –

+0

Я уже делал это с помощью почтальона. Как я могу сделать эти вызовы api в Android? –

+0

@karanvs, какую сетевую библиотеку вы используете в настоящее время? –

0

Благодаря 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

Смежные вопросы