Red de conocimiento informático - Conocimiento del nombre de dominio - Se corrigió el salto repetido del inicio de sesión de la cuenta oficial de WeChat al motor de WeChat.

Se corrigió el salto repetido del inicio de sesión de la cuenta oficial de WeChat al motor de WeChat.

Dado que la cuenta oficial ha modificado el contenido del campo de retorno para obtener la información básica del usuario, el motor WeChat no puede obtener el apodo obteniendo la información básica del usuario, sino que necesita saltar repetidamente. Especialmente al abrir desde la computadora, aparecerá una ventana emergente de autorización

¿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>

}

}

}return $userinfo;

}

}

}

Reemplazar con:

$state = 'we7sid-' .$_W['session_id'];

$_SESSION['dest

_url'] = urlencode($_W['siteurl']);

Lo anterior es un registro y una nota.