stanley-king 6 rokov pred
rodič
commit
96ac320bfa

+ 2 - 1
data/api/mini_wxpay/lib/WxPay.Api.php

@@ -53,12 +53,13 @@ class WxPayApi
 		
 		$inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
 		$inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
-		$inputObj->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']);//终端ip	  
+//		$inputObj->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']);//终端ip
 		//$inputObj->SetSpbill_create_ip("1.1.1.1");  	    
 		$inputObj->SetNonce_str(self::getNonceStr());//随机字符串
 		
 		//签名
 		$inputObj->SetSign();
+
 		$xml = $inputObj->ToXml();
 		
 		$startTimeStamp = self::getMillisecond();//请求开始时间

+ 3 - 2
helper/pay/webpay.php

@@ -15,9 +15,10 @@ require_once(MINIPAY_PATHEX . '/lib/WxPay.Config.php');
 require_once(MINIPAY_PATHEX . '/lib/WxPay.Data.php');
 require_once(MINIPAY_PATHEX . '/lib/WxPay.Exception.php');
 require_once(MINIPAY_PATHEX . '/lib/WxPay.Notify.php');
-
+require_once(BASE_ROOT_PATH . '/helper/util_helper.php');
 
 use Log;
+use util;
 
 class webpay implements IPay
 {
@@ -45,7 +46,7 @@ class webpay implements IPay
         $input->SetTime_expire(date("YmdHis", time() + 600));//订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则
         $input->SetNotify_url(self::wx_notifyurl);
         $input->SetTrade_type("MWEB");
-//        $input->SetOpenid($this->mOpenId);
+        $input->SetSpbill_create_ip(util::real_ip());
 
         Log::record("ip={$_SERVER['REMOTE_ADDR']}",Log::DEBUG);
         $order = \MiniPay\WxPayApi::unifiedOrder($input);

+ 42 - 0
helper/request_helper.php

@@ -161,6 +161,48 @@ class request_helper
         //            'DOCUMENT_URI',
         //            'DOCUMENT_ROOT',
         static $fields = array(
+            "USER",
+            "HOME",
+            "FCGI_ROLE",
+            "SCRIPT_FILENAME",
+            "QUERY_STRING",
+            "REQUEST_METHOD",
+            "CONTENT_TYPE",
+            "CONTENT_LENGTH",
+            "SCRIPT_NAME",
+            "REQUEST_URI",
+            "DOCUMENT_URI",
+            "DOCUMENT_ROOT",
+            "SERVER_PROTOCOL",
+            "GATEWAY_INTERFACE",
+            "SERVER_SOFTWARE",
+            "REMOTE_ADDR",
+            "REMOTE_PORT",
+            "SERVER_ADDR",
+            "SERVER_PORT",
+            "SERVER_NAME",
+            "REDIRECT_STATUS",
+            "HTTP_VIA",
+            "HTTP_EAGLEEYE_TRACEID",
+            "HTTP_ALI_SWIFT_LOG_HOST",
+            "HTTP_ALI_SWIFT_STAT_HOST",
+            "HTTP_X_FORWARDED_FOR",
+            "HTTP_X_CLIENT_SCHEME",
+            "HTTP_ALI_CDN_REAL_IP",
+            "HTTP_CACHE_CONTROL",
+            "HTTP_UPGRADE_INSECURE_REQUESTS",
+            "HTTP_USER_AGENT",
+            "HTTP_ACCEPT",
+            "HTTP_ACCEPT_ENCODING",
+            "HTTP_ACCEPT_LANGUAGE",
+            "HTTP_COOKIE",
+            "HTTP_ALI_CDN_DEBUG_LINK_LOG",
+            "HTTP_ALI_SWIFT_ORIGIN_HOST",
+            "HTTP_HOST",
+            "PHP_SELF",
+            "REQUEST_TIME_FLOAT",
+            "REQUEST_TIME",
+
             "HTTP_ACCEPT", "HTTP_ACCEPT_CHARSET",
             "HTTP_ACCEPT_ENCODING",
             "HTTP_ACCEPT_LANGUAGE", "HTTP_AUTHORIZATION",

+ 34 - 0
helper/util_helper.php

@@ -199,6 +199,40 @@ class util
         }
         return $input;
     }
+
+    public static function real_ip()
+    {
+        if (isset($_SERVER)) {
+            if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
+                $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
+
+                foreach ($arr as $ip) {
+                    $ip = trim($ip);
+
+                    if ($ip != 'unknown') {
+                        $realip = $ip;
+                        break;
+                    }
+                }
+            } else if (isset($_SERVER['HTTP_CLIENT_IP'])) {
+                $realip = $_SERVER['HTTP_CLIENT_IP'];
+            } else if (isset($_SERVER['REMOTE_ADDR'])) {
+                $realip = $_SERVER['REMOTE_ADDR'];
+            } else {
+                $realip = '0.0.0.0';
+            }
+        } else if (getenv('HTTP_X_FORWARDED_FOR')) {
+            $realip = getenv('HTTP_X_FORWARDED_FOR');
+        } else if (getenv('HTTP_CLIENT_IP')) {
+            $realip = getenv('HTTP_CLIENT_IP');
+        } else {
+            $realip = getenv('REMOTE_ADDR');
+        }
+
+        preg_match('/[\\d\\.]{7,15}/', $realip, $onlineip);
+        $realip = (!empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0');
+        return $realip;
+    }
 }
 
 class string_helper

+ 1 - 2
index.php

@@ -7,5 +7,4 @@
  */
 $site_url = strtolower('http://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/index.php')).'/shop/index.php');
 //@header('Location: '.$site_url);
-include('shop/index.php');
-
+include('shop/index.php');

+ 0 - 22
mobile/control/control.php

@@ -137,30 +137,8 @@ class mobileControl
         return (microtime(true) - self::$startime);
     }
 
-    function get_client_ip()
-    {
-        if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
-            $ip = getenv('HTTP_CLIENT_IP');
-            Log::record("get_client_ip 1 = {$ip}",Log::DEBUG);
-        } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
-            $ip = getenv('HTTP_X_FORWARDED_FOR');
-            Log::record("get_client_ip 2 = {$ip}",Log::DEBUG);
-
-        } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
-            $ip = getenv('REMOTE_ADDR');
-            Log::record("get_client_ip 3 = {$ip}",Log::DEBUG);
-
-        } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
-            $ip = $_SERVER['REMOTE_ADDR'];
-            Log::record("get_client_ip 4 = {$ip}",Log::DEBUG);
-
-        }
-        return preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
-    }
-
     protected function check_app_type()
     {
-        $this->get_client_ip();
         $client = strtolower(trim($_SERVER['HTTP_CLIENT_TYPE']));
         $version = trim($_SERVER['HTTP_CLIENT_VERSION']);
 

+ 88 - 0
test/TestStat.php

@@ -135,4 +135,92 @@ class TestStat extends PHPUnit_Framework_TestCase
         call_user_func_array($method_dicts['login'],['getcodex',['mobile' => '13911129867']]);
         call_user_func_array($method_dicts['cart'], ['getcodex',['mobile' => '13911129867']]);
     }
+
+    public function testRequest()
+    {
+        $fields = array(
+            "USER",
+            "HOME",
+            "FCGI_ROLE",
+            "SCRIPT_FILENAME",
+            "QUERY_STRING",
+            "REQUEST_METHOD",
+            "CONTENT_TYPE",
+            "CONTENT_LENGTH",
+            "SCRIPT_NAME",
+            "REQUEST_URI",
+            "DOCUMENT_URI",
+            "DOCUMENT_ROOT",
+            "SERVER_PROTOCOL",
+            "GATEWAY_INTERFACE",
+            "SERVER_SOFTWARE",
+            "REMOTE_ADDR",
+            "REMOTE_PORT",
+            "SERVER_ADDR",
+            "SERVER_PORT",
+            "SERVER_NAME",
+            "REDIRECT_STATUS",
+            "HTTP_VIA",
+            "HTTP_EAGLEEYE_TRACEID",
+            "HTTP_ALI_SWIFT_LOG_HOST",
+            "HTTP_ALI_SWIFT_STAT_HOST",
+            "HTTP_X_FORWARDED_FOR",
+            "HTTP_X_CLIENT_SCHEME",
+            "HTTP_ALI_CDN_REAL_IP",
+            "HTTP_CACHE_CONTROL",
+            "HTTP_UPGRADE_INSECURE_REQUESTS",
+            "HTTP_USER_AGENT",
+            "HTTP_ACCEPT",
+            "HTTP_ACCEPT_ENCODING",
+            "HTTP_ACCEPT_LANGUAGE",
+            "HTTP_COOKIE",
+            "HTTP_ALI_CDN_DEBUG_LINK_LOG",
+            "HTTP_ALI_SWIFT_ORIGIN_HOST",
+            "HTTP_HOST",
+            "PHP_SELF",
+            "REQUEST_TIME_FLOAT",
+            "REQUEST_TIME",
+
+            "HTTP_ACCEPT", "HTTP_ACCEPT_CHARSET",
+            "HTTP_ACCEPT_ENCODING",
+            "HTTP_ACCEPT_LANGUAGE", "HTTP_AUTHORIZATION",
+            "HTTP_CONNECTION", "CONTENT_TYPE",
+            "CONTENT_LENGTH", "HTTP_COOKIE", "HTTP_COOKIE2",
+            "HTTP_HOST", "HTTP_PRAGMA",
+            "HTTP_REFERER", "HTTP_USER_AGENT",
+            "HTTP_CACHE_CONTROL",
+            "HTTP_IF_MODIFIED_SINCE", "HTTP_IF_MATCH",
+            "HTTP_IF_NONE_MATCH",
+            "HTTP_IF_RANGE",
+            "HTTP_IF_UNMODIFIED_SINCE",
+            "HTTP_KEEP_ALIVE",
+            "HTTP_RANGE",
+            "HTTP_X_FORWARDED_FOR",
+            "HTTP_VIA",
+            'HTTPS',
+
+            'REMOTE_ADDR',
+            'REMOTE_HOST',
+            'REMOTE_PORT',
+            'REMOTE_USER',
+            'REDIRECT_REMOTE_USER',
+
+            'SERVER_ADMIN',
+            'SERVER_PORT',
+            'SERVER_SIGNATURE',
+
+            'REQUEST_URI',
+            'PHP_AUTH_DIGEST',
+            'PHP_AUTH_USER',
+            'PHP_AUTH_PW',
+            'AUTH_TYPE',
+            'PATH_INFO',
+            'HTTP_CLIENT_TYPE',
+            'HTTP_CLIENT_VERSION',
+            'ORIG_PATH_INFO');
+        sort($fields);
+        foreach ($fields as $val) {
+            Log::record("\"$val\",",Log::DEBUG);
+        }
+    }
 }