瀏覽代碼

add https

stanley-king 4 年之前
父節點
當前提交
a079815e94

+ 27 - 0
conf/nginx/cert/www.xyzshops.cn.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAsx5PGr1ffC+BJMN5hX9MjkvvaJ2kKxkiaZHcMDDoSllzLtjv
+Zhwd+1+YZBJ5Eq2llBxIrOTK7olB3j0AFGKz+k3Px5GrZ5uAoobv6efGLarp7BZW
+L5NUun8wQjDgegYlVIbnPMwOuhLbFdBV0LFSEAsy91sxoWDKsRKkh9BkrdEBaJWb
+pshakxbLSM/DgqKcG+GjruRT5Q5cl1cllP8TKOjirOEfQw794MJVxIxjQqxOtuRx
+VNLRIG2p6dRPM0hpKHtpFIF3mYzu9q7xOcG9jFWbb5/tsH/VfV+rP+33tRUjaOKL
+NhYaCKSZUO2F6EjyQKvXI65n6JE9dWkvFvtx+wIDAQABAoIBACmbyNR1WVEH2AAq
+SHhycd48VYj/1bsNQ6kycOvg8JUU4mTnj/UwYuaZ9lSI1gc4v1YAnAFNxLZUvDBc
+C0CxDQ4ANVwuwpp2zRL0NZcoeCjzoxNsvOigWPZZxWQa5opyEwnnrJ+651DiQHJ4
+yvaHuoBvmY9MZ+MNEQjBQ+coybp2hpRtDhOe1A92CAk79oKluupdi/pmY3+9l91Z
+TMyn8qhrNY8gerImC8NGmBCy3JmO3e7lD3k8FlAr1LhCovEc/ngcYj8xr/wfsxo2
+b7Jo27nEn59HjB4yG1MH/tRcxbc0IevTBRnD0shhYXZ+4IW2m7YIkZZKZc43GSjj
+NKKPbQECgYEA8maEXoVE4VvHRAFLZ3F7F51j8eaMj+TeDkXXYUufPC1puIc0UfT+
+5Pzy1SVdACLVC9W6CGggxLw6xq++S3aGiN3cDueE4W7Sfrm/Yb8kzXPts01AL8Dx
+EXwPB+LfwqQKSjfV4AQg9poJs6QqAr0xBAIkzECxAnMQp3Eh86LmAXECgYEAvSrm
+0k6hnMJfrgjlWyYRoYy+KNZtmAruqiYpoo4rylS46N0QlqTRlBeQFdJBUwqpiBAQ
+eV2Aap8VnRIkn7j94Y0HkayVjf9qra78k8T+5yws08FlVbegF/8bVc3cZfdzn8AZ
+s7loe+DhfdL2g36l1HjW0mfVPTnTVDwIUQPSdCsCgYBBjyKL4eVwQf9R0DvRnWqa
+R3IpkZ5AqLi6CX+oC+jkQLAQPVkUNXve+N7AcRuHFuSiD8sBzQ/XxcTrycpg5Iyc
+ZczHpyxUQEHkDl7JlAXjH1CRpvoOMFPC09fI3T6BiRZTXmiU7ujvaVfoYyUNmpew
+KthC+dgl/nLppnp1R4CHsQKBgFVl0sJKgScVkMAuf+xAKWF2+jnRY7Rp6wihJdae
+vCIhUUC+28hGK97hLEjNnHPyskochnNjxJ9dphI8qI/6oZJ7allXQkTSc8Ro5NmI
+61JNXQdTnX2u4fUzU5HO15qotWf+/xtlrkeOY/27iVIfkJl02/YsrdVwD3lNiKua
+QB31AoGBAMv28LQ1jpCiKGxplgXzvZ+a0Zm5m9OpQ1bV7qTTa6jZsYjrW8Zi/E5P
+V727TM3oExslBYjF+onYY9zRqVZlxTyQn1GWC3kCO/swz/XKTQJyZ9cm4QIgTxl9
+b5ARNKkE3FhOpnImALWpyHAxqV4aPtBJtURGxHD9Wr2wVeG++mt1
+-----END RSA PRIVATE KEY-----

+ 59 - 0
conf/nginx/cert/www.xyzshops.cn.pem

@@ -0,0 +1,59 @@
+-----BEGIN CERTIFICATE-----
+MIIFljCCBH6gAwIBAgIQD31bNBE8c271eXQzDsEDfjANBgkqhkiG9w0BAQsFADBu
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
+RFYgVExTIENBIC0gRzEwHhcNMjAwNzE3MDAwMDAwWhcNMjEwNzE4MTIwMDAwWjAa
+MRgwFgYDVQQDEw93d3cueHl6c2hvcHMuY24wggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQCzHk8avV98L4Ekw3mFf0yOS+9onaQrGSJpkdwwMOhKWXMu2O9m
+HB37X5hkEnkSraWUHEis5MruiUHePQAUYrP6Tc/Hkatnm4Cihu/p58YtqunsFlYv
+k1S6fzBCMOB6BiVUhuc8zA66EtsV0FXQsVIQCzL3WzGhYMqxEqSH0GSt0QFolZum
+yFqTFstIz8OCopwb4aOu5FPlDlyXVyWU/xMo6OKs4R9DDv3gwlXEjGNCrE625HFU
+0tEgbanp1E8zSGkoe2kUgXeZjO72rvE5wb2MVZtvn+2wf9V9X6s/7fe1FSNo4os2
+FhoIpJlQ7YXoSPJAq9cjrmfokT11aS8W+3H7AgMBAAGjggKCMIICfjAfBgNVHSME
+GDAWgBRVdE+yck/1YLpQ0dfmUVyaAYca1zAdBgNVHQ4EFgQUPGiiZ/YH6U/eivGA
+6Nrq7Iwp784wJwYDVR0RBCAwHoIPd3d3Lnh5enNob3BzLmNuggt4eXpzaG9wcy5j
+bjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
+MEwGA1UdIARFMEMwNwYJYIZIAYb9bAECMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
+d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQIBMIGABggrBgEFBQcBAQR0MHIw
+JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBKBggrBgEFBQcw
+AoY+aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0VuY3J5cHRpb25FdmVyeXdo
+ZXJlRFZUTFNDQS1HMS5jcnQwCQYDVR0TBAIwADCCAQYGCisGAQQB1nkCBAIEgfcE
+gfQA8gB3APZclC/RdzAiFFQYCDCUVo7jTRMZM7/fDC8gC8xO8WTjAAABc1pqDXwA
+AAQDAEgwRgIhAMyX1ko7auS/AnOXTTsvypvgUv6T6NYJpofIArVGe88YAiEAhG/2
+eVK2eVGFQcsH4isd4fZLCLHE8XxCHScED0QB/LgAdwBc3EOS/uarRUSxXprUVuYQ
+N/vV+kfcoXOUsl7m9scOygAAAXNaag2sAAAEAwBIMEYCIQDRgE5ddaSmrI5T6lnz
+5jljR0N6jU8c4YIgytTrwT9niwIhAJ/HD+1aGa2J0Hav8RODqzY8iE3nUwOoQrhd
+I7VIjvSsMA0GCSqGSIb3DQEBCwUAA4IBAQCZ+PUH8QQ38rt6fp/cKygtErVEPlx2
+BizB8UbJJ77w5H9TPM1k7/hHXXwd32hqFzIhQR4wLOG9bluB6BxJz3L1NrBLjjkR
+ePknyTRg8u6L6yFWsh2fSxgy4af8RgJaxRGJxBGjsAxg6wxOf9MoLupRLIDCBQbA
+QpMKtsX5MDvkagEVMvY69BROi4kABeBSeSnjZENo1aZho7trOFmTjfgb0OMuMOnm
+Wup63n0W8n/yQqgMIBhYkLF9Lc/JKXg2tRmDtfa7hvyI/at8sVoaO0RYZbNhfZp+
+rkn2LPAtGBKyCDKdlZCFDLdL17tEQGqHdRmf4YFn0XMqN7ZzHKIRn5aW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0xNzExMjcxMjQ2MTBaFw0yNzExMjcxMjQ2MTBaMG4xCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
+MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPeP6wkab41dyQh6mKc
+oHqt3jRIxW5MDvf9QyiOR7VfFwK656es0UFiIb74N9pRntzF1UgYzDGu3ppZVMdo
+lbxhm6dWS9OK/lFehKNT0OYI9aqk6F+U7cA6jxSC+iDBPXwdF4rs3KRyp3aQn6pj
+pp1yr7IB6Y4zv72Ee/PlZ/6rK6InC6WpK0nPVOYR7n9iDuPe1E4IxUMBH/T33+3h
+yuH3dvfgiWUOUkjdpMbyxX+XNle5uEIiyBsi4IvbcTCh8ruifCIi5mDXkZrnMT8n
+wfYCV6v6kDdXkbgGRLKsR4pucbJtbKqIkUGxuZI2t7pfewKRc5nWecvDBZf3+p1M
+pA8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRVdE+yck/1YLpQ0dfmUVyaAYca1zAf
+BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTAOBgNVHQ8BAf8EBAMCAYYw
+HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
+Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
+Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
+/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
+MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAK3Gp6/aGq7aBZsxf/oQ+TD/B
+SwW3AU4ETK+GQf2kFzYZkby5SFrHdPomunx2HBzViUchGoofGgg7gHW0W3MlQAXW
+M0r5LUvStcr82QDWYNPaUy4taCQmyaJ+VB+6wxHstSigOlSNF2a6vg4rgexixeiV
+4YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
+sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
+rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
+-----END CERTIFICATE-----

+ 70 - 0
conf/nginx/nginx-debug.conf

@@ -83,4 +83,74 @@ http
             include        fastcgi_params;
         }
     }
+
+    server
+    {
+        listen       443 ssl;
+        set  $folder_name /var/www/html;
+        server_name www.xyzshops.cn;
+        root $folder_name;
+
+        ssl_certificate      cert/www.xyzshops.cn.pem;
+        ssl_certificate_key  cert/www.xyzshops.cn.key;
+
+        ssl_session_cache    shared:SSL:1m;
+        ssl_session_timeout  5m;
+
+        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
+        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
+        ssl_prefer_server_ciphers on;
+
+        index index.html index.php;
+    	client_max_body_size 100m;
+    	proxy_connect_timeout 500s;
+        proxy_read_timeout 500s;
+        proxy_send_timeout 500s;
+        fastcgi_connect_timeout 75;
+        fastcgi_read_timeout 600;
+        fastcgi_send_timeout 600;
+
+        charset utf-8;
+
+        location /logs {
+            deny all;
+            return 403;
+        }
+
+        location /data/log {
+            deny all;
+            return 403;
+        }
+        location / {
+            index  index.html index.htm index.php;
+        }
+
+        location /mshop {
+            root $folder_name;
+            autoindex on;
+            index  index.html index.htm index.php;
+	        try_files $uri $uri/ /mshop/index.html;
+        }
+
+        location ~ /mobile/[/\w]+\.php$ {
+            root           $folder_name;
+            fastcgi_pass   mobilesrv:9100;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            include fastcgi_params;
+        }
+
+        location ~ /mobile/[/\w]+\.html$ {
+            try_files $uri $uri/ /mobile/index.html;
+        }
+
+        location ~ \.php$ {
+	        add_header Cache-Control no-store;
+            root           $folder_name;
+            fastcgi_pass   fpmsrv:9000;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            include        fastcgi_params;
+        }
+    }
 }

conf/nginx/nginx-prod.conf → conf/nginx/nginx-prod-http.conf


+ 95 - 0
conf/nginx/nginx-prod-https.conf

@@ -0,0 +1,95 @@
+user nginx;
+worker_processes  1;
+error_log   /var/error.log  info;
+worker_rlimit_nofile 1024;
+
+events {
+    worker_connections  1024;
+}
+
+http 
+{
+    include       mime.types;
+    default_type  application/octet-stream;
+    fastcgi_buffer_size 32k;
+    fastcgi_buffers 8 32k;
+    underscores_in_headers on;
+    client_max_body_size 1024M;
+
+    sendfile            on;
+    keepalive_timeout   65;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    server
+    {
+        listen       443 ssl;
+        set  $folder_name /var/www/html;
+        server_name www.xyzshops.cn;
+        root $folder_name;
+
+        ssl_certificate      cert/www.xyzshops.cn.pem;
+        ssl_certificate_key  cert/www.xyzshops.cn.key;
+
+        ssl_session_cache    shared:SSL:1m;
+        ssl_session_timeout  5m;
+
+        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
+        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
+        ssl_prefer_server_ciphers on;
+
+        index index.html index.php;
+        client_max_body_size 100m;
+        proxy_connect_timeout 500s;
+        proxy_read_timeout 500s;
+        proxy_send_timeout 500s;
+        fastcgi_connect_timeout 75;
+        fastcgi_read_timeout 600;
+        fastcgi_send_timeout 600;
+
+        charset utf-8;
+
+        location /logs {
+            deny all;
+            return 403;
+        }
+
+        location /data/log {
+            deny all;
+            return 403;
+        }
+        location / {
+            index  index.html index.htm index.php;
+        }
+
+        location /mshop {
+            root $folder_name;
+            autoindex on;
+            index  index.html index.htm index.php;
+            try_files $uri $uri/ /mshop/index.html;
+        }
+
+        location ~ /mobile/[/\w]+\.php$ {
+            root           $folder_name;
+            fastcgi_pass   mobilesrv:9100;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            include fastcgi_params;
+        }
+
+        location ~ /mobile/[/\w]+\.html$ {
+            try_files $uri $uri/ /mobile/index.html;
+        }
+
+        location ~ \.php$ {
+            add_header Cache-Control no-store;
+            root           $folder_name;
+            fastcgi_pass   fpmsrv:9000;
+            fastcgi_index  index.php;
+            fastcgi_param  SCRIPT_FILENAME  $folder_name$fastcgi_script_name;
+            include        fastcgi_params;
+        }
+    }
+}

+ 7 - 2
data/config/dev/base.ini.php

@@ -9,10 +9,15 @@ define('LOCAL_DEBUG',false);
 define('BONUS_EXPIRY_DATE',true);
 define('USE_BONUS_RATE',false);
 define('SERVER_TYPE','panda');
-define('LOCAL_DOMAIN','192.168.1.200');
+
+define('COOKIE_DOMAIN','xyzshops.cn');
+$SRV_HOST = 'https://www.xyzshops.cn';
+
+//define('COOKIE_DOMAIN','192.168.1.200');
+//$SRV_HOST = 'http://192.168.1.200';
 
 $config = [];
-$SRV_HOST = 'http://192.168.1.200';
+
 $REMOTE_IMG_HOST = $SRV_HOST;
 
 $config['base_site_url']        = $SRV_HOST;

+ 2 - 0
data/config/dev/srv.ini.php

@@ -1,6 +1,8 @@
 <?php declare(strict_types=1);
 defined('InShopNC') or exit('Access Invalid!');
 
+define('LOCAL_DOMAIN','192.168.1.200');
+
 $config['searcher']['host'] = 'SearchSrv';
 $config['searcher']['port'] = 2000;
 

+ 4 - 3
data/config/prod/base.ini.php

@@ -10,12 +10,13 @@ define('LOCAL_DEBUG',false);
 define('BONUS_EXPIRY_DATE',true);
 define('USE_BONUS_RATE',false);
 define('SERVER_TYPE','panda');
-define('LOCAL_DOMAIN','www.xyzshops.cn');
 
-$config = [];
-$SRV_HOST = 'http://www.xyzshops.cn';
+define('COOKIE_DOMAIN','xyzshops.cn');
+$SRV_HOST = 'https://www.xyzshops.cn';
+
 $REMOTE_IMG_HOST = $SRV_HOST;
 
+$config = [];
 $config['base_site_url']        = $SRV_HOST;
 $config['client_site_url']      = $SRV_HOST;
 $config['shop_site_url'] 		= $SRV_HOST.'/shop';

+ 2 - 0
data/config/prod/srv.ini.php

@@ -1,6 +1,8 @@
 <?php declare(strict_types=1);
 defined('InShopNC') or exit('Access Invalid!');
 
+define('LOCAL_DOMAIN','192.168.1.200');
+
 $config['searcher']['host'] = 'SearchSrv';
 $config['searcher']['port'] = 2000;
 

+ 2 - 0
docker-compose-dev.yml

@@ -5,10 +5,12 @@ services:
     image: nginx:alpine
     ports:
       - "80:80"
+      - "443:443"
     volumes:
       - $PWD/conf/etc/localtime:/etc/localtime:ro
       - $PWD:/var/www/html
       - /Volumes/Transcend/upload:/var/www/html/data/upload
+      - $PWD/conf/nginx/cert:/etc/nginx/cert
       - $PWD/conf/nginx/nginx-debug.conf:/etc/nginx/nginx.conf:ro
     links:
       - mobilesrv

+ 2 - 1
docker-compose.yml

@@ -5,11 +5,12 @@ services:
     image: nginx:alpine
     ports:
       - "80:80"
+      - "443:443"
     volumes:
       - $PWD:/var/www/html
       - $PWD/conf/etc/localtime:/etc/localtime:ro
       - /mnt/upload:/var/www/html/data/upload
-      - $PWD/conf/nginx/nginx-prod.conf:/etc/nginx/nginx.conf:ro
+      - $PWD/conf/nginx/nginx-prod-https.conf:/etc/nginx/nginx.conf:ro
     links:
       - mobilesrv
       - fpmsrv

+ 2 - 2
helper/session.php

@@ -72,7 +72,7 @@ class session
     {
         $this->fdestroy = true;
         $sid = $this->sessid;
-        fcgi_setcookie("MPHPSESSID", "{$sid}", -3600, '/', LOCAL_DOMAIN);
+        fcgi_setcookie("MPHPSESSID", "{$sid}", -3600, '/', COOKIE_DOMAIN);
     }
 
     public function onOpen()
@@ -184,7 +184,7 @@ class session
     public function set_cookie($sid)
     {
         $expire_time = time() + self::expire_min() * 60;
-        fcgi_setcookie("MPHPSESSID", "{$sid}", $expire_time, '/', LOCAL_DOMAIN);
+        fcgi_setcookie("MPHPSESSID", "{$sid}", $expire_time, '/', COOKIE_DOMAIN);
         Log::record("set_cookie MPHPSESSID={$sid}", Log::DEBUG);
     }
 

+ 35 - 20
mobile/control/login.php

@@ -97,8 +97,10 @@ class loginControl extends mobileHomeControl
 
         //cur-> wx
         $unionid_loginner = new login\open_userinfo_log($user_info);
-        if ($unionid_loginner->ismember()) {
-            if ($unionid_loginner->binded_mobile()) {
+        if ($unionid_loginner->ismember())
+        {
+            if ($unionid_loginner->binded_mobile())
+            {
                 //pre-> mobile
                 if (session_helper::has_regmobile()) {
                     $mobile = session_helper::get_regmobile();
@@ -116,7 +118,9 @@ class loginControl extends mobileHomeControl
                     $unionid_loginner->login();
                 }
                 account_helper::onLogin(session_helper::memberid());
-            } else {
+            }
+            else
+            {
                 //pre-> mobile
                 if (session_helper::has_regmobile()) {
                     $mobile = session_helper::get_regmobile();
@@ -137,8 +141,11 @@ class loginControl extends mobileHomeControl
                     wechat_helper::set_userinfo($user_info);
                 }
             }
-        } else {
-            if (session_helper::has_regmobile()) {
+        }
+        else
+        {
+            if (session_helper::has_regmobile())
+            {
                 $mobile = session_helper::get_regmobile();
                 $mobile_loginner = new login\mobile_log($mobile);
 
@@ -336,6 +343,11 @@ class loginControl extends mobileHomeControl
         }
     }
 
+    public function login_codeOp()
+    {
+
+    }
+
     public function bind_mobilexOp()
     {
         if (session_helper::logined()) {
@@ -510,7 +522,7 @@ class loginControl extends mobileHomeControl
     public function loginOp()
     {
         if ($_SESSION['is_login'] == '1') { //检查是否已经登录
-            return self::outsuccess(array('member_id' => $_SESSION['member_id'], 'HPHPSESSID' => $_SESSION['MPHPSESSID']));
+            return self::outsuccess(['member_id' => $_SESSION['member_id'], 'HPHPSESSID' => $_SESSION['MPHPSESSID']]);
         }
 
         $type = intval(trim($_POST['type']));
@@ -543,7 +555,8 @@ class loginControl extends mobileHomeControl
             if (!$member_info['member_state']) {
                 return self::outerr(errcode::ErrAccountStop);
             }
-        } else {
+        }
+        else {
             if ($type == self::wxopen_login) { //如果是开放平台帐号,此处先需要注册
                 return self::outerr(errcode::ErrWxNotExist);
             } else {
@@ -557,12 +570,12 @@ class loginControl extends mobileHomeControl
 
         account_helper::onLogin($_SESSION['member_id']);
         session::instance()->set_cookie($_SESSION['MPHPSESSID']);
-        return self::outsuccess(array('member_id' => $_SESSION['member_id'], 'HPHPSESSID' => $_SESSION['MPHPSESSID']));
+        return self::outsuccess(['member_id' => $_SESSION['member_id'], 'HPHPSESSID' => $_SESSION['MPHPSESSID']]);
     }
 
     private function getMemberInfoEx($model_member, $openid, $type, $passwd = '')
     {
-        $conditions = array();
+        $conditions = [];
         if ($type == self::mobile_login) {
             $conditions['member_mobile'] = $openid;
             $conditions['member_passwd'] = md5($passwd);
@@ -633,13 +646,13 @@ class loginControl extends mobileHomeControl
         if (!empty($ret)) {
             return self::outerr(errcode::ErrUserExisted, "用户已经存在.");
         } else {
-            $member_info = array('member_mobile' => $mobile,
+            $member_info = ['member_mobile' => $mobile,
                 'member_type' => self::mobile_login,
                 'member_passwd' => $password,
                 'member_sex' => 0,
                 'member_name' => $mobile,
                 'member_nickname' => substr_replace($mobile, '****', 3, 4),
-                'member_mobile_bind' => 1);
+                'member_mobile_bind' => 1];
 
             $insert_id = $model->addMember($member_info);
             if ($insert_id == false) {
@@ -652,7 +665,7 @@ class loginControl extends mobileHomeControl
                 Model('goods_browse')->mergebrowse($_SESSION['member_id'], $_SESSION['store_id']);
                 account_helper::onRegister($_SESSION['member_id'], session_helper::relay_id());
                 session::instance()->set_cookie($_SESSION['MPHPSESSID']);
-                return self::outsuccess(array('member_id' => $_SESSION['member_id'], 'HPHPSESSID' => $_SESSION['MPHPSESSID']));
+                return self::outsuccess(['member_id' => $_SESSION['member_id'], 'HPHPSESSID' => $_SESSION['MPHPSESSID']]);
             }
         }
     }
@@ -678,7 +691,7 @@ class loginControl extends mobileHomeControl
         }
 
         $model = Model('member');
-        $ret = $model->editMember(array('member_mobile' => $mobile), array('member_passwd' => md5($password)));
+        $ret = $model->editMember(['member_mobile' => $mobile], ['member_passwd' => md5($password)]);
         if ($ret == false || $model->affected_rows() <= 0) {
             $ret = $model->getBindedMemberByMobile($mobile);
             if (empty($ret)) {
@@ -721,7 +734,8 @@ class loginControl extends mobileHomeControl
         // 判断是否处理
         $model = Model('member');
         $ret = $model->getBindedMemberByMobile($mobile);
-        if (empty($ret)) {
+        if (empty($ret))
+        {
             $passwd = $_POST['passwd'];
             $validator = new Validator();
             $validator->setValidate(Validator::verify_password($passwd));
@@ -729,13 +743,13 @@ class loginControl extends mobileHomeControl
             if ($err != '') {
                 return self::outerr(errcode::ErrInputParam, $err);
             }
-            $member_info = array('member_mobile' => $mobile,
+            $member_info = ['member_mobile' => $mobile,
                 'member_type' => self::mobile_login,
                 'member_passwd' => $passwd,
                 'member_sex' => 0,
                 'member_name' => $mobile,
                 'member_nickname' => substr_replace($mobile, '****', 3, 4),
-                'member_mobile_bind' => 1);
+                'member_mobile_bind' => 1];
             $member_id = $model->addMember($member_info);
 
             if (!isset($member_id) || $member_id == false) {
@@ -743,11 +757,12 @@ class loginControl extends mobileHomeControl
             } else {
                 account_helper::onRegister($member_id, session_helper::relay_id());
             }
-        } else {
+        }
+        else {
             $member_id = $ret['member_id'];
         }
 
-        $update_arr = array();
+        $update_arr = [];
         $info = session_helper::parase_wxinfo($_GET['user_info']);
         if ($info == false) {
             $update_arr['member_wxopenid'] = $wx_openid;
@@ -756,7 +771,7 @@ class loginControl extends mobileHomeControl
             $update_arr = array_merge($update_arr, $info);
         }
 
-        $ret = $model->editMember(array('member_id' => $member_id), $update_arr);
+        $ret = $model->editMember(['member_id' => $member_id], $update_arr);
         if (!$ret) {
             return self::outerr(errcode::ErrDB);
         } else {
@@ -765,7 +780,7 @@ class loginControl extends mobileHomeControl
             Model('cart')->mergecart($info, $_SESSION['store_id']);
             Model('goods_browse')->mergebrowse($_SESSION['member_id'], $_SESSION['store_id']);
             session::instance()->set_cookie($_SESSION['MPHPSESSID']);
-            return self::outsuccess(array('member_id' => $_SESSION['member_id'], 'HPHPSESSID' => $_SESSION['MPHPSESSID']));
+            return self::outsuccess(['member_id' => $_SESSION['member_id'], 'HPHPSESSID' => $_SESSION['MPHPSESSID']]);
         }
     }
 }

+ 44 - 0
mobile/control/member_card.php

@@ -0,0 +1,44 @@
+<?php
+
+
+defined('InShopNC') or exit('Access Invalid!');
+
+require_once(BASE_ROOT_PATH . '/helper/session_helper.php');
+require_once(BASE_HELPER_PATH . '/mtopcard/mtopcard.php');
+
+
+class member_cardControl extends mbMemberControl
+{
+    const MAX_CARD_COUNT = 50;
+    private $mCardModel;
+
+    public function __construct() {
+        parent::__construct();
+        $this->mCardModel = Model('member_topcard');
+    }
+
+    public function card_listOp()
+    {
+        $card_list = $this->mCardModel->getAllCards(session_helper::memberid());
+        self::outsuccess(['card_list' => $card_list]);
+    }
+
+    public function card_addOp()
+    {
+        $card_type = intval($_GET['card_type']);
+        $card_no = $_GET['card_no'];
+
+        if($card_type < 0 || $card_type > 3 || empty($card_no)) {
+            return self::outerr(errcode::ErrParamter, '输入参数错误.');
+        }
+        $cards = new mtopcard\user_topcards(session_helper::memberid());
+        $result = $cards->addCard($card_no,$card_type);
+
+        if ($result)
+        {
+            self::outsuccess(null);
+        } else {
+            return self::outerr(errcode::ErrTopCard, '充值卡保存失败保存失败');
+        }
+    }
+}

+ 2 - 2
mobile/control/mshop.php

@@ -79,7 +79,7 @@ class mshopControl extends specialControl
         $goods_id = intval($_GET['goods_id']);
 
         $relay_id = session_helper::relay_id();
-        fcgi_setcookie("relay_id","{$relay_id}",time() + 86400,'/',LOCAL_DOMAIN);
+        fcgi_setcookie("relay_id","{$relay_id}",time() + 86400,'/',COOKIE_DOMAIN);
 
         if(session_helper::need_wechat_author())
         {
@@ -109,7 +109,7 @@ class mshopControl extends specialControl
         $title = $_GET['title'];
 
         $relay_id = session_helper::relay_id();
-        fcgi_setcookie("relay_id","{$relay_id}",time() + 86400,'/',LOCAL_DOMAIN);
+        fcgi_setcookie("relay_id","{$relay_id}",time() + 86400,'/',COOKIE_DOMAIN);
 
         if(session_helper::need_wechat_author())
         {

+ 3 - 0
mobile/util/errcode.php

@@ -77,6 +77,9 @@ class errcode //extends SplEnum
     const ErrDB = 11000;
     const ErrShake = 11100;
     const ErrRelation = 11200;
+
+    const ErrTopCard = 11300;
+
     const ErrSms = 12000;
     const ErrSmsLessRepeateMinTime = 12001;