当前位置:首页 > PHP教程 >

微信支付:invalid spbill_create_ip错误

发布时间:2020-10-26 09:11:39 作者:佚名 阅读:(24)

最近在调整微信支付的时候,一开始还有返回值,再次测试的时候返回值就为空了,查看日志却提示:[invalid spbill_create_ip]],接下来吾爱编程为大家介绍一下微信支付invalid spbill_create_ip错误的解决方法,有需要的小伙伴可以参考一下:

1、错误提示:

RET: array (
  0 => 0,
  1 => '<xml><return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[invalid spbill_create_ip]]></return_msg>
</xml>',
)

2、错误分析:

    从上述错误看是因为程序获取到的IP不止一个,所有才会提示invalid spbill_create_ip,这个时候我们看下POST的参数中的对应的参数,

<spbill_create_ip><![CDATA[180.156.1.146, 153.35.25.50]]></spbill_create_ip>

3、解决方法:

    重新调整一下IP的获取方法,如果取到的是多个IP就先进行去除空格,然后再进行分割

function get_real_ip(){
    $ip=false;
    if (isset($_SERVER['HTTP_X_CDN_IP']) && $_SERVER['HTTP_X_CDN_IP']) {
        $ip = $_SERVER['HTTP_X_CDN_IP'];
    } else if(!empty($_SERVER["HTTP_CLIENT_IP"])){
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    }else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        $ips = explode (",", trim($_SERVER['HTTP_X_FORWARDED_FOR']));
        if($ip){
            array_unshift($ips, $ip);
            $ip = false;
        }
        for($i = 0; $i < count($ips); $i++){
            if (!preg_match ("/^(10|172.16|192.168).$/", $ips[$i])){
                $ip = $ips[$i];
                break;
            }
        }
    }
    return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}


以上就说吾爱编程为大家介绍的关于微信支付invalid spbill_create_ip错误的解决方法,了解更多相关文章请关注吾爱编程网!

欢迎分享转载→ 微信支付:invalid spbill_create_ip错误

© 2015-2019 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们