WeChat comparte jssdk no puede compartir qq. ¿Qué pasó?
2
Haga clic en "Configuración de funciones" y luego haga clic en "Configuración".
Tres
Establezca el nombre de dominio de seguridad de la interfaz JS. Este es un nombre de dominio de primer nivel, no hay www ni /cgi-bin/token? Tipo de autorización=Certificado de cliente. Appid="."Tu appid"."; Secret= ' 'El secreto de tu aplicación');
$res = json_decode($res, true);
$ token = $RES[' access _ token '];
//Nota: el token obtenido debe almacenarse en caché (o escribirse en la base de datos).
//No se puede acceder a /cgi-bin/token con frecuencia, el número de veces por día es limitado.
//El período de validez del token devuelto a través de esta interfaz es actualmente de 2 horas. Una vez que el token caduque, el JS-SDK no se podrá utilizar.
//Entonces, el valor del token almacenado en caché aquí es 1 hora, menos de 2 horas. Después de un error de caché, se obtiene un nuevo token de la interfaz, por lo que
// se puede evitar la caducidad del token.
// S() es la función de almacenamiento en caché de ThinkPhp. Si está utilizando un marco que no es ThinkPhp, puede usar su funcionalidad de almacenamiento en caché o usar una base de datos para guardarlo.
S('access_token ', $token, 3600
}
Devuelve $token
}
<); p>Nota: La longitud del token de acceso devuelto debe ser de al menos 512 bytes. Valor de retorno de la interfaz:{"access_token": "ACCESS_TOKEN", "expires_in": 7200}
{ "access_token": "vdlthytfyb 0n 5 emo i3 n_amfmkpuwke 0 mgygf _ 0h 0 fpzl 8 p _ HSD UX 8 VG xz 5 OS xuq 5dm 69 LX p9 wbwn 9 yzg-0k vhy 33 bykrc 0 yxzzz-wdx EIC 4 "," expires_in": 7200}
Seis
Consigue entradas para jsapi. Jsapi_ticket es un ticket temporal utilizado por la cuenta oficial de WeChat para llamar a la interfaz WeChat JS. Generalmente, el período de validez de jsapi_ticket es de 7200 segundos y se obtiene a través de access_token.
Función wx_get_jsapi_ticket(){
$ ticket =
Hacer {
$ ticket = S(' wx _ ticket ');
if(!empty($ticket)){
Romper
}
$ token = S(' acceso _ token ');
if (empty($token)){
wx _ get _ token()
}
$; token = S(' access _ token ');
if (empty($token)) {
logErr("Error al obtener el token de acceso.
");
Descanso;
}
$ URL 2 = sprintf("/CGI-bin/ticket/getticket?access-token=s amptype= jsapi ",
$ token);
$ RES = archivo _ obtener _ contenidos($ URL 2);
$res = json_decode($res, true);
$ ticket = $ RES[' ticket '];
//Nota: Los tickets obtenidos deben almacenarse en caché (o escribirse en la base de datos).
// El ticket, al igual que el token, no se puede obtener mediante acceso frecuente a la interfaz. Después de cada adquisición, lo guardaremos
S('wx_ticket', $ticket, 3600); /p >
} while(0);
Devuelve $ticket;
}
Valor de retorno de la interfaz:
{ "errcode": 0," errmsg": "ok", "ticket": "sm 4 aovdwfpe 4 dxk xges 8 vmkv 7 fmcpm-I98-klc 6 so 3 awzxql jywtztcxih 9 hdoxzco 9 CGF hi 6 kwbe_YWtOQg", "expires_in" :7200}
Siete
Firma: concatena jsapi_ticket, noncestr, marca de tiempo y URL compartida en orden alfabético, firma sha1
Noncestr es cualquier carácter que establezcas.
La marca de tiempo es una marca de tiempo
$ timestamp = time();
$ wxconcestr = "Cualquier cadena"
$. wx ticket = wx_get_jsapi_ticket();
$ wxOri = sprintf(" jsapi_ticket = s amp; noncestr = s amp timestamp = s ampurl=s ",
$wxticket, $wxnonceStr, $timestamp,
URL a compartir (desde/open/js/jweixin-1 . 0 . 0 . js " > lt; /script gt;
ltscript type = " texto /JavaScript " gt;
//Configuración de WeChat
wx.config({
Depuración: false ,
AppID: "Su AppId",
Timestamp: "La marca de tiempo generada en el paso anterior",
NonceStr: "La marca de tiempo generada en el paso anterior" String",
Firma: "Firma generada en el paso anterior",
Lista JSAPI: ['onmenusharepointimeline', 'OnMenuShareAppMessage'] // Lista de funciones, deberíamos usar JS- ¿Qué función tiene el SDK?
});
El método listo se ejecutará después de verificar la información de configuración. Todas las llamadas a la interfaz deben realizarse después de que la interfaz de configuración obtenga el resultado. La configuración es una operación asincrónica en el lado del cliente.
Por lo tanto, si necesita llamar a la interfaz relevante cuando se carga la página, debe llamarla en la función lista para garantizar una ejecución correcta. Para las interfaces que solo se llaman cuando las activa el usuario, se pueden llamar directamente sin ponerlas en la función lista.
wx.ready(function(){
//Obtenga el estado del clic del botón "Compartir en momentos" y personalice la interfaz para compartir contenido.
wx.onMenuShareTimeline({
Título: 'Compartir título', //Compartir título
Enlace: "Compartir URL, comenzando con http o https",
ImgUrl: "La URL del icono para compartir, que comienza con http o https" // Icono para compartir
}
//Obtener el estado del clic de "Compartir con amigos" ", interfaz personalizada para compartir contenido.
wx.onMenuShareAppMessage({
Título: 'Compartir título', //Compartir título
Desc: "Compartir descripción",/ /Descripción del recurso compartido
Enlace: "URL compartida, que comienza con http o https",
ImgUrl: "Url del icono de compartir, que comienza con http o https", //Compartir icono
Tipo: 'Enlace', //Tipo de compartir, música, vídeo o enlace; si se deja en blanco, el valor predeterminado es enlace
});
lt/script gt;