dever 6 年 前
コミット
72fde9584d
1 ファイル変更24 行追加7 行削除
  1. 24 7
      src/Applet.php

+ 24 - 7
src/Applet.php

@@ -77,8 +77,12 @@ class Applet extends Base
         $update['temp'] = 3;
         if ($vid) {
 
-            $vinfo = Dever::db('passport/wechat')->one($vid);
-            $session_key = $vinfo['session_key'];
+            $key = 'applet_sessionKey_' . $vid;
+            $session_key = Dever::cache($key);
+            if (!$session_key) {
+                $vinfo = Dever::db('passport/wechat')->one($vid);
+                $session_key = $vinfo['session_key'];
+            }
 
             $data = $this->getWechatData($session_key);
             $unionid = $data['unionid'];
@@ -175,8 +179,12 @@ class Applet extends Base
         $encryptedData = Dever::input('encryptedData');
         
         if ($iv && $encryptedData) {
-            $vinfo = Dever::db('passport/wechat')->one($vid);
-            $session_key = $vinfo['session_key'];
+            $key = 'applet_sessionKey_' . $vid;
+            $session_key = Dever::cache($key);
+            if (!$session_key) {
+                $vinfo = Dever::db('passport/wechat')->one($vid);
+                $session_key = $vinfo['session_key'];
+            }
             
             $data = $this->getWechatData($session_key);
             if ($data && $data['mobile']) {
@@ -274,6 +282,9 @@ class Applet extends Base
             $wechat['type'] = 1;
             $wechat['system_id'] = $system;
             $id = Dever::db('passport/wechat')->insert($wechat);
+
+            $key = 'applet_sessionKey_' . $id;
+            $cache = Dever::cache($key, $data['session_key']);
         } else {
             $uid = $info['uid'];
             $id = $info['id'];
@@ -285,7 +296,13 @@ class Applet extends Base
                     $uid = $wechat['uid'];
                 }
             }
-            $wechat['session_key'] = $data['session_key'];
+
+            $key = 'applet_sessionKey_' . $id;
+            $cache = Dever::cache($key, $data['session_key']);
+
+            if (!$cache) {
+                $wechat['session_key'] = $data['session_key'];
+            }
 
             if ($wechat) {
                 $wechat['where_id'] = $info['id'];
@@ -386,12 +403,12 @@ class Applet extends Base
     private function getApplet()
     {
         $applet = Dever::config('base', 'project')->applet;
-        $project = array();
+        $project = false;
         $system = Dever::input('system', 1);
         if (Dever::project('token')) {
             $project = Dever::db('token/project')->one($system);
         }
-        
+
         if (!$project) {
             if (isset($applet['project']) && $applet['project']) {
                 $project = Dever::db($applet['project'])->one($system);