|
@@ -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);
|