前言
微信H5支付時候需要獲取用戶的真實IP,如果代碼中報的IP與微信獲取的IP不一致,那么此時微信就會報錯。通常Node.js部署時候是通過Nginx本地轉發,所以獲取真實IP時候需要做以下配置。
Nginx配置
# 只轉發test
location /test/ {
proxy_pass http://localhost:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Node.Js獲取IP代碼
首先本著避免造輪子的原則,使用了request-ip庫。
# 鎖定版本號
npm i request-ip --save --save-exact
然后就要獲取IP了,以上都是準備工作
var requestIp = require('request-ip');
var IP = requestIp.getClientIp(req),
可以愉快地微信支付了。
--EOF--