Se corrigió el salto repetido del inicio de sesión de la cuenta oficial de WeChat al motor de WeChat.
¿Modificando framework/model/mc.mod.php?
El siguiente fragmento de la función mc_oauth_account_userinfo
if (intval($_W['cuenta']['oauth']['nivel']) < 4 &&in_array($_W['cuenta']['oauth'][' nivel'], matriz (ACCOUNT_TYPE_APP_NORMAL, ACCOUNT_TYPE_APP_AUTH, ACCOUNT_TYPE_WXAPP_WORK)){ error de retorno (-3, 'El número público no es un número de servicio certificado, no se puede obtener información del usuario').
) }
El siguiente contenido del juicio es el siguiente
if (!empty($_SESSION['openid']) && intval($_W['account']['level' ]) >= 3) {
$oauth_account = WeAccount::createByUniacid();
$userinfo = $oauth_account->fansQueryInfo($_SESSION['openid']);
// Consulta la información del usuario para determinar si se ha guardado en el registro de fans
$fan = mc_fansinfo($_SESSION['openid']
);
p>// Obtenga información básica del usuario libre de errores y no vacía
if(empty($fan) && !is_error($userinfo) && amp; !empty($ información de usuario) && !empty ($información de usuario['openid']) ){
$record = array();
$record['updatetime'] = TIMESTAMP;
$ registro['apodo'] = '';
$registro['etiqueta'] = base64_encode(iserializer($userinfo));
$registro[ 'openid'] = $_SESSION['openid']
$record['acid'] = $_W['acid ']; = $_W['uniacid']
$record['unionid'] = $userinfo['unionid']
?$record['user_from'] = $_W ['cuenta'] ->typeSign == 'wxapp' ?1 : 0;
pdoo_insert('mc_mapping_fans', $record);
}
// La información del usuario capturada no es nula y el apodo ya existe.
else if (!is_error($userinfo) && !empty($fan) && !empty($fan['nickname']) && is_array($userinfo) ){
// ¿Devolver fans e información de fans existente? == "Después de esta modificación, la información de los fans y usuarios en el sistema no se actualizará en tiempo real.
Después de que Tencent modificó las reglas de devolución de información, solo puede obtener el apodo y el avatar del usuario mediante el uso y la autorización de la ventana emergente
$userinfo['nickname'] = stripcslashes($fan['nickname']) ;
p>
$userinfo['avatar'] = $fan[' headimgurl'];
$_SESSION['userinfo'] = base64_encode(iserializer($userinfo) ));
$record = array(
'updatetime' =>.TIMESTAMP,
'follow' => $userinfo['subscribe'],
' followtime' => $userinfo['subscribe_time'],
'unionid' => $ userinfo['unionid'],
'etiqueta' => base64_encode(iserializer($userinfo ))
);
// Actualizar la información del estado de suscripción de los fans
pdoo_update('mc_ mapping_fans', $record, array('openid' => $_SESSION['openid'], 'uniacid' => $_W['uniacid']));
if (!empty($fan['uid']) ||| !empty( $ _SESSION['uid'])){
$uid = intval($fan['uid']);
if (vacío($uid )) {
$uid = intval($_SESSION['uid']);
}
$ miembro = mc_fetch($uid,array(' apodo','género', 'Ciudad de residencia','Provincia de residencia','Nacionalidad','Avatar'));
$record = array();
if (empty( $miembro['apodo']) && ! vacío($userinfo['apodo']){
$record['apodo'] = stripslashes($userinfo['apodo']);
}
if (empty($miembro['avatar']) && !empty($userinfo['headimgurl'])){
$record['avatar '] = $ información de usuario['headimgurl '];
}
if (! vacío($record)) {
pdoo_update('mc_members', $record, array('uid' => $uid));
cache_build_memberinfo($uid); p> p>
}
}
}return $userinfo;
}
}
}
Reemplazar con:
$state = 'we7sid-' .$_W['session_id'];
$_SESSION['dest
_url'] = urlencode($_W['siteurl']);
Lo anterior es un registro y una nota.