支付IP问题

今天支付出现了一个这么问题:某个客户用同一张卡支付,前几天可以,今天一直不行。错误时IP参数错误。

问题的根源是与第三方支付的接口,有一个客户IP参数,第三方用来判断是否是恶意用户。我们程序是这么获取客户IP,如下

if (request.getHeader("x-forwarded-for") != null&& !"unknown".equalsIgnoreCase(request.getHeader("x-forwarded-for"))) {           ip = request.getHeader("x-forwarded-for");}else{

        ip = request.getRemoteAddr();

        }

正常情况下没有问题,但是当客户使用代理或者其他机制是 获取的IP是以逗号分隔的多个ip,这时传到第三方支付机构,他们判断IP参数不正确,不符合他们的规则,也就是一个ip。

解决方法,如果是多个IP,只保留一个。


你可能感兴趣的:(支付IP问题)