微信扫码支付出现“invalid spbill_create_ip”错误的解决办法:首先找到“/lib/WxPay.Api.php”文件;然后修改代码为“$inputObj->SetSpbill_create_ip(...)”即可。

微信扫码支付出现invalid spbill_create_ip错误怎么办?
参数 spbill_create_ip 在 /lib/WxPay.Api.php 的53行
打印出变量 $_SERVER['REMOTE_ADDR'] ,发现是 ::1 ,这明显是一个无效的ip地址
//获取浏览器ip地址
public static function real_ip()
{
static $realip;
if ($realip !== NULL) {
return $realip;
}
if (isset($_SERVER)) {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach ($arr as $ip) {
$ip = trim($ip);
if ($ip != 'unknown') {
$realip = $ip;
break;
}
}
}
else if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
}
else if (isset($_SERVER['REMOTE_ADDR'])) {
$realip = $_SERVER['REMOTE_ADDR'];
}
else {
$realip = '0.0.0.0';
}
}
else if (getenv('HTTP_X_FORWARDED_FOR')) {
$realip = getenv('HTTP_X_FORWARDED_FOR');
}
else if (getenv('HTTP_CLIENT_IP')) {
$realip = getenv('HTTP_CLIENT_IP');
}
else {
$realip = getenv('REMOTE_ADDR');
}
preg_match('/[\d\.]{7,15}/', $realip, $onlineip);
$realip = (!empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0');
return $realip;
}将上面的函数添加到类WxPayApi后,修改如下
$inputObj->SetSpbill_create_ip(self::real_ip());//终端ip
//$inputObj->SetSpbill_create_ip("1.1.1.1");
微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号