UrlUtils.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.fdkankan.pay.paypal.sdk;
  2. import javax.servlet.http.HttpServletRequest;
  3. import java.net.InetAddress;
  4. import java.net.UnknownHostException;
  5. public class UrlUtils {
  6. //沙箱链接
  7. // public static final String TOKEN_URL = "https://api.sandbox.paypal.com/v1/oauth2/token";
  8. public static final String TOKEN_URL = "https://api.paypal.com/v1/oauth2/token";
  9. public static final String PAYMENT_DETAIL = "https://api.sandbox.paypal.com/v1/payments/payment/";
  10. public static String getBaseURl(HttpServletRequest request) {
  11. String scheme = request.getScheme();
  12. String serverName = request.getServerName();
  13. int serverPort = request.getServerPort();
  14. String contextPath = request.getContextPath();
  15. StringBuffer url = new StringBuffer();
  16. url.append(scheme).append("://").append(serverName);
  17. if ((serverPort != 80) && (serverPort != 443)) {
  18. url.append(":").append(serverPort);
  19. }
  20. url.append(contextPath);
  21. if(url.toString().endsWith("/")){
  22. url.append("/");
  23. }
  24. return url.toString();
  25. }
  26. /**
  27. * 获取用户实际ip
  28. * @param request
  29. * @return
  30. */
  31. public static String getIpAddr(HttpServletRequest request){
  32. String ipAddress = request.getHeader("x-forwarded-for");
  33. if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
  34. ipAddress = request.getHeader("Proxy-Client-IP");
  35. }
  36. if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
  37. ipAddress = request.getHeader("WL-Proxy-Client-IP");
  38. }
  39. if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
  40. ipAddress = request.getRemoteAddr();
  41. if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")){
  42. //根据网卡取本机配置的IP
  43. InetAddress inet=null;
  44. try {
  45. inet = InetAddress.getLocalHost();
  46. } catch (UnknownHostException e) {
  47. e.printStackTrace();
  48. }
  49. ipAddress= inet.getHostAddress();
  50. }
  51. }
  52. //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
  53. if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15
  54. if(ipAddress.indexOf(",")>0){
  55. ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
  56. }
  57. }
  58. return ipAddress;
  59. }
  60. }