添加过期openid处理

This commit is contained in:
aozhiwei 2019-09-16 16:45:33 +08:00
parent 0d72b05c62
commit a4e99d45ff

View File

@ -227,12 +227,17 @@ class KefuController {
} }
$ret_info = json_decode($response, true); $ret_info = json_decode($response, true);
error_log(json_encode($response)); error_log(json_encode($response));
if (isset($ret_info['errcode']) && ($ret_info['errcode'] == 40001 || $ret_info['errcode'] == 40003)) { if (isset($ret_info['errcode']) && ($ret_info['errcode'] == 40001 || $ret_info['errcode'] == 40003 || $ret_info['errcode'] == 41001)) {
if ($ret_info['errcode'] == 40003) {
//无效的openid更换appid appkey导致之前的openid失效
//从db里删除这种过期的openid
return true;
}
error_log('重新获取access_token'); error_log('重新获取access_token');
$r = $this->getRedis($gameid); $r = $this->getRedis($gameid);
$r->del('kf_token:' . $gameid . ':'); $r->del('kf_token:' . $gameid . ':');
$access_token = $this->getAccessToken($gameid); $access_token = $this->getAccessToken($gameid);
$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=$access_token"; $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=". urlencode($access_token);
$response = ''; $response = '';
error_log(json_encode($data, JSON_UNESCAPED_UNICODE)); error_log(json_encode($data, JSON_UNESCAPED_UNICODE));
@ -243,6 +248,7 @@ class KefuController {
phpcommon\sendError(ERR_RETRY, '系统繁忙'); phpcommon\sendError(ERR_RETRY, '系统繁忙');
return; return;
} }
error_log('retry:' . $response);
$ret_info = json_decode($response, true); $ret_info = json_decode($response, true);
} }
return !empty($ret_info) && $ret_info['errcode'] == 0; return !empty($ret_info) && $ret_info['errcode'] == 0;
@ -402,6 +408,7 @@ class KefuController {
$r->pexpire('kf_token:' . $gameid . ':', 1000 * ($respobj['expires_in'] - 60 * 1)); $r->pexpire('kf_token:' . $gameid . ':', 1000 * ($respobj['expires_in'] - 60 * 1));
return $respobj['access_token']; return $respobj['access_token'];
} else { } else {
error_log('getAccessToken:' . $response);
return ''; return '';
} }
} }