PayPal Android Sdk Vault

时间:2016-09-15 10:33:26

标签: android paypal paypal-rest-sdk

我的要求是使用Android将信用卡详细信息存储在Paypal保险库中。 我按照这些链接

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中实现这一目标?

2 个答案:

答案 0 :(得分:3)

您可以使用vault api将信用卡存储在PayPal中按照以下步骤操作

步骤1:通过OAuth令牌请求生成访问令牌

尝试邮递员

DataTables

注意: - 通过选择授权标签在帖子中生成基本身份验证==>基本身份验证并输入paypal客户端密码和客户端ID。

      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))

注意: - 在邮递员的正文标签中选择x-www-form-urlencoded

第2步:使用valut api存储信用卡 试试邮递员

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

注意: - 选择邮递员身体中的原始标签。

答案 1 :(得分:1)

感谢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());
        }
    });

感谢。

编辑:

您还可以在Retrofit 2中为请求添加动态标头。

关注此: https://futurestud.io/tutorials/retrofit-add-custom-request-header