public function dopayback($pid)
 {
     $cmd = "cmd=refund&pid={$pid}\r\n";
     $svr = Config::getIP('pay_svr');
     $ret = NetUtil::tcpCmd($svr['IP'], $svr['PORT'], $cmd, 2, 2);
 }
Example #2
0
 /**
  * 通过IP地址定位用户所在的城市(注:使用即通的IP地址库)
  *
  * @return  sting/bool      $data, 为返回数据, 失败返回 false
  */
 public static function getCityByIp($ip, $time = 0)
 {
     $serverNum = 2;
     $rand = rand(0, $serverNum - 1);
     $config = Config::getIP('ipagent', $time == 0 ? $rand : $time % $serverNum);
     if (false === $config) {
         self::$errCode = Config::$errCode;
         self::$errMsg = Config::$errMsg;
         return false;
     }
     // 即通省份ID转易迅省份ID
     $_ProvList = array(1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15, 6 => 32, 7 => 34, 8 => 37, 9 => 21, 10 => 22, 11 => 23, 12 => 31, 13 => 33, 14 => 36, 15 => 35, 16 => 42, 17 => 43, 18 => 41, 19 => 44, 20 => 45, 21 => 46, 22 => 50, 23 => 51, 24 => 52, 25 => 53, 26 => 54, 27 => 61, 28 => 62, 29 => 64, 30 => 63, 31 => 65, 32 => 81, 33 => 82, 34 => 71);
     $ipLookUpAsk = pack("NNNNA64", 0, 80, ip2long($ip), 1, 'this is iptest for 51buy!');
     $ipInfo = NetHelper::udpCmd($config['IP'], $config['PORT'], $ipLookUpAsk, true, 0, 100000);
     if (empty($ipInfo)) {
         if ($time < 3) {
             $time++;
             return self::getCityByIp($ip, $time);
         } else {
             self::$errCode = 10617;
             self::$errMsg = 'failed to request ip_agent server: ' . $config['IP'];
             return false;
         }
     }
     $retArray = unpack("Ntype/Nlen/A64info/Nflag/Nidflag/Ncountry/Nprovince/Ncity/Ntown/Naddrtype/Nnetworktype/Nbackbone1/Nbackbone2", $ipInfo);
     if (isset($retArray) && is_array($retArray) && isset($retArray['province']) && isset($retArray['city']) && isset($retArray['town']) && isset($retArray['backbone1'])) {
         $prov = isset($_ProvList[$retArray['province']]) ? $_ProvList[$retArray['province']] : 0;
         $city = $prov . '00';
         $city2 = $retArray['city'];
         $town = $retArray['town'];
         $net = $retArray['backbone1'];
         // 站点定位只用到省份,目前只做ip_agent省份编码的转换,城市默认取省会
         // 即通的IP地址库可以定位 省->市->区 三级,但ID定义与网站端及ERP端不一致,如果后续需要精确定位,
         // 需要ERP侧做更细致的ID映射,目前为站点定位只映射了省份ID
         return array('prov' => $prov, 'city' => $city, 'city2' => $city2, 'town' => $town, 'net' => $net);
     } else {
         return false;
     }
 }
Example #3
0
 /**
  * 维护分表统一自增字段
  *
  * @param Mixed $code
  * @return 获取的可插入DB的ID
  */
 public static function getAutoId($code)
 {
     self::clearError();
     if (empty($code) || !is_numeric($code)) {
         self::$errCode = 5001;
         self::$errMsg = 'autoid code err';
         return false;
     }
     $autoIdSvr = Config::getIP('autoId');
     if ($autoIdSvr === false) {
         self::$errCode = Config::$errCode;
         self::$errMsg = Config::$errMsg;
         return false;
     }
     $bag = array('code' => intval($code));
     $bag = self::wrap($bag);
     $rev = self::tcpPHPCmd($autoIdSvr['IP'], $autoIdSvr['PORT'], $bag);
     if ($rev === false) {
         self::$errCode = self::$errCode;
         self::$errMsg = self::$errMsg;
         return false;
     }
     $rev = self::unwrap($rev);
     if (!is_array($rev)) {
         self::$errCode = 5002;
         self::$errMsg = 'server returns errno ' . $rev;
         return false;
     }
     if (!isset($rev['value'])) {
         self::$errCode = 5003;
         self::$errMsg = 'server returns no value';
         return false;
     }
     return intval($rev['value']);
 }