iwebshop商城插件ip2region-准确率99.9%的ip地址定位库,0.0x毫秒级查询

原商城系统IP查询流程

  1. 请求/block/iplookupAjax 获取省份名称
  2. /block/iplookupAjax内调用 IClient::getLocal()请求http://ipservice.suning.com/ipQuery.do得到省市区名称(这个接口不准确,慢经常1秒以上),返回
  3. 请求/block/searchProvince查找与iWebShop系统匹配的地区

本插件 可提高ip识别精确度,减少2次网络请求(省去1,2步骤)提高产品详情页加载速度。

插件下载

点此下载

使用方法

1、 首先复制本目录ip2region,到plugins/插件目录下

2、 修改 /public/javascript/products.jsthis.initLocalArea函数

   /**
    * @brief 根据接口获取当前所在地的运费
    */
    this.initLocalArea = function()
    {
        //根据接口返回的数据查找与iWebShop系统匹配的地区
        $.getJSON(creatUrl("block/searchProvince"),{'random':Math.random},function(json)
        {
            if(json.flag == 'success')
            {
                //计算各个配送方式的运费
                _self.delivery(json.area_id,json.area_name);
            }
        });
 
        //绑定地区选择按钮事件
        $('[name="areaSelectButton"]').bind("click",function(){
            var provinceId   = $(this).attr('value');
            var provinceName = $(this).text();
            _self.delivery(provinceId,provinceName);
        });
    }

3、 修改 /controllers/block.phpsearchProvince函数

   /**
    * @brief 根据IP查询 area_id , area_name
    */
    public function searchProvince()
    {
        //大卫 2018年11月21日
        $classfile = IWeb::$app->getBasePath().'plugins/ip2region/Ip2Region.php';
        require_once($classfile);
        $ip2region = new Ip2Region();
        $info = $ip2region->btreeSearch( IClient::getIp() );
 
        $areas_info = NULL;
        if( $info['city_id']!=0 ){
            $area_id = substr($info['city_id'],0,2).'0000';   //取字符串前2位(省份编码),然后补齐0000
            $tb_areas = new IModel('areas');
            $areas_info = $tb_areas->getObj('parent_id = 0 and area_id = "'.$area_id.'"','area_name');
        }
        $result = array('flag' => 'fail','area_id' => 0);
        if($areas_info)
        {
            $result = array('flag' => 'success','area_id' => $area_id,'area_name'=>$areas_info['area_name'],'data'=>$info);
        }
        echo JSON::encode($result);
    }
最后修改:2018 年 11 月 29 日 12 : 23 PM
如果觉得我的文章对你有用,请随意赞赏

1 条评论

  1. David

    自己留名。OωO

发表评论 取消回复