我的要求是使用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中实现这一目标?
答案 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