之前穩定運作一段時間的微信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;
};