微信H5支付【网络环境未能通过安全验证 请稍后再试】

今天用手机测试H5页面的支付场景,支付宝没有问题,但是使用微信支付时,给出以下提示,赶紧百度,发现是获取客户端IP的问题,修改获取方式,解决。这个issue也让我想起了网站使用方向代理,导致获取IP错误的问题,有兴趣的朋友可以点击此处访问。

网络环境未能通过安全验证 请稍后再试

原有的的获取方式

配置文件路径:extensions\wxpay\lib\WxPay.Api.php

$inputObj->SetSpbill_create_ip(self::getClientIP());//终端ip

定义函数获取IP

private static function getClientIP(){
          $ip = "unknown";
          /*
          * 访问时用localhost访问的,读出来的是“::1”是正常情况。
          * ::1说明开启了ipv6支持,这是ipv6下的本地回环地址的表示。
          * 使用ip地址访问或者关闭ipv6支持都可以不显示这个。
          * */
          if (isset($_SERVER)) {
              if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
                  $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
              } 
              elseif (isset($_SERVER["HTTP_CLIENT_ip"])) {
                  $ip = $_SERVER["HTTP_CLIENT_ip"];
              } else {
                  $ip = $_SERVER["REMOTE_ADDR"];
              }
          } else {
              if (getenv('HTTP_X_FORWARDED_FOR')) {
                  $ip = getenv('HTTP_X_FORWARDED_FOR');
              } elseif (getenv('HTTP_CLIENT_ip')) {
                  $ip = getenv('HTTP_CLIENT_ip');
              } else {
                  $ip = getenv('REMOTE_ADDR');
              }
          }

          if(trim($ip)=="::1"){
              $ip="127.0.0.1";
          }
              return $ip;
}

问题解决~

微信H5支付【网络环境未能通过安全验证 请稍后再试】

本文作者:肖云

本文链接:http://www.d7dd.com/2019/4/h5-getclientip

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

几个常用的git命令
0 条评论
已登录,注销 取消