之前稳定运行一段时间的微信H5支付,突然报错:“由于商家传入的H5交易参数有误 该笔交易暂时无法完成 请联系商家解决”。
经过多方排查,最终确定是微信下单的ip传递有误。上传的ip为“127.0.0.1”,这个ip微信H5支付的时候是不认的。
可以通过以下函数获取正确ip(适用于Node)
// 获取用户真实ip
get_client_ip (req) {
let ip = req.headers['x-forwarded-for'] ||
req.ip ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress || '';
if(ip.split(',').length>0){
ip = ip.split(',')[0]
}
return ip;
};