JSP获取用户真实IP/Nginx代理用户IP/微信支付签名算法

博主个人主页

前言

今天分享几个小知识点和工具类~

使用nginx代理后,获取用户真实ip

在nginx配置文件中添加

server {
    listen 80;
    server_name _;
    location / {
    	..................
        proxy_pass         http://127.0.0.1:8000/;
        # $host 变量,Host 为变量名  都是内置的$
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;						
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        
    }
}

获取IP和微信支付签名算法

package com.weixin.util;

import java.util.Arrays;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.weixin.config.WeChatPatConfig;

public class CommonsUtil {
	  
	    /**
	     * 	获取IP	
	     */
	  public static String getRemoteIP(HttpServletRequest request) {
		     if(request.getHeader("x-forwarded-for") == null){
		    	 return request.getRemoteAddr();
		     }
		     return request.getHeader("x-forwarded-for");
	  }
	
	  /**
	   *  	微信支付签名算法
	   */
	  public static String getSign(Map<String,Object> map) {
		  StringBuffer sb = new StringBuffer();
		  String[] keyArr = (String[])map.keySet().toArray(new String[map.size()]);
		  Arrays.sort(keyArr);
		  for(int i = 0,size=keyArr.length;i <  size ;++i) {
			  if("sign".equals(keyArr[i])) {
				  continue;
			  }
			  sb.append(keyArr[i]+"="+map.get(keyArr[i])+"&");	
		  }
		  sb.append("key="+WeChatPatConfig.key);//这个key是在商户密匙中设置过的   拼接到这里  用来生成sign签名
		  String sign = Md5Util.MD5(sb.toString());
		  return sign;
	  } 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值