网络环境未能通过安全验证怎么办

 时间:2026-02-13 16:47:51

1、产生这个问题的原因是:调用微信接口传入的参数spbill_create_ip与实际支付时获取的不一致

2、首先,注释掉这一行[Wxpay/lib/WxPay.Api.php]

//$inputObj->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']);//终端ip

3、然后在业务代码中,新增函数get_client_ip();

/**

 * 获取客户端IP地址

 * @return string

 */

function get_client_ip() {

    if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {

        $ip = getenv('HTTP_CLIENT_IP');

    } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {

        $ip = getenv('HTTP_X_FORWARDED_FOR');

    } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {

        $ip = getenv('REMOTE_ADDR');

    } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {

        $ip = $_SERVER['REMOTE_ADDR'];

    } else {

        $ip = '0.0.0.0';

    }

    return preg_match('/[\d\.]{7,15}/', $ip, $matches) ? $matches[0] : '';

4、最后获取终端IP,再调用微信SDK的统一下单

//...

$spbill_create_ip = get_client_ip();

$input = new WxPayUnifiedOrder();

//...

$input->SetSpbill_create_ip($spbill_create_ip);

// 调用统一下单接口

$result = WxPayApi::unifiedOrder($input);

  • 密室逃脱18移动迷城(失落的领地4流浪者)全攻略
  • 密室逃脱18—第8关攻略
  • 密室逃脱7环游世界高级版攻略
  • 密室逃脱18移动迷城第十一章攻略
  • 密室逃脱18移动迷城(失落4第42关怎么点击钢琴键
  • 热门搜索
    环保小报手抄报 预防新型冠状病毒的手抄报 安全伴我行手抄报内容 手抄报边框设计 经典伴我行手抄报 关于创文的手抄报 国庆70周年手抄报内容 食品安全手抄报资料 文明安全行手抄报 家庭文明公约手抄报