有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

身份验证PayPal获取java中的身份验证令牌生存期/过期时间(Rest API)

我无法在PayPal(Java语言)中获取访问令牌的生命周期。在Paypal开发者网站上,描述了如何获取令牌的解决方案,而不是如何获取生存期(但他们写道,响应应该包含字段中的过期_…)。 还有object tokenfo,它应该有关于令牌生存期的信息,但是不清楚如何使用基本凭证(比如token/secret/id等)获取这个对象

有没有一个智能的解决方案可以在Java中获得令牌生存期

如果您需要任何代码(例如我如何获取访问令牌),请将其写在注释中


共 (1) 个答案

  1. # 1 楼答案

    不是美容解决方案,而是解决方案(贝宝基本路径为“https://api.sandbox.paypal.com”或“https://api.paypal.com”:

    import java.io.BufferedReader;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.Date;
    import java.util.Map;
    import java.util.Set;
    
    import org.json.simple.JSONObject;
    import org.json.simple.parser.JSONParser;
    import org.json.simple.parser.ParseException;
    
    
    try{
                    URL url = new URL(basicPayPalPath+"/v1/oauth2/token");
                    HttpURLConnection uc = (HttpURLConnection) url.openConnection();
                    uc.setRequestMethod("POST");
                    uc.setDoOutput(true);
                    String userpass = clientID + ":" + clientSecret;
                    String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());
    
                    uc.setRequestProperty("Accept", "application/json");
                    uc.setRequestProperty("Authorization", basicAuth);
                    uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                    DataOutputStream wr = new DataOutputStream (uc.getOutputStream ());
                    wr.writeBytes ("grant_type=client_credentials");
                    wr.flush ();
                    wr.close ();
    
                    InputStream is = uc.getInputStream();
                    BufferedReader rd = new BufferedReader(new InputStreamReader(is));
                    String line;
                    StringBuffer response = new StringBuffer(); 
                    while((line = rd.readLine()) != null) {
                        response.append(line);
                        response.append('\r');
                    }
                    rd.close();
                    JSONParser jsonParser = new JSONParser();
                    System.out.println(response.toString());
                    JSONObject jsonObject = (JSONObject) jsonParser.parse(response.toString());
                    Set<Map.Entry<String, String>> map = jsonObject.entrySet();
                    for(Map.Entry<String, String> entry : map){
                        System.out.println(entry.toString());
                    }
                }catch (IOException | ParseException e){
                    e.printStackTrace();
                }