¿Para qué sirve el SDK open js de WeChat?
Inicie sesión en su plataforma WeChat y haga clic en "Configuración oficial de la cuenta".
2
Haga clic en "Configuración de funciones" y luego haga clic en "Configuración".
3
Establezca el nombre de dominio de seguridad de la interfaz JS. El nombre de dominio de primer nivel completado aquí no incluye www ni /cgi-bin/token?grant_type=client_credential&appid=' .'Your AppID'.'&secret=' .'Your AppSecret');
$ res = json_decode($res, true);
$token = $res['access_token'];
// Nota: el token obtenido debe almacenarse en caché aquí ( O escriba a la base de datos)
///no se puede acceder a cgi-bin/token con frecuencia y hay un límite diario
//El período de validez del token devuelto a través de esta interfaz es Actualmente 2 horas. Una vez que el token caduque, el JS-SDK no se podrá utilizar.
// Por lo tanto, el valor del token se almacena en caché aquí durante 1 hora, que es menos de 2 horas. Después de que caduque el caché, obtenga un nuevo token de la interfaz, de modo
// que se pueda evitar la caducidad del token.
// S() es la función de caché de ThinkPhp. Si no está utilizando el marco ThinkPhp, puede usar su función de caché o usar la base de datos para guardarla.
S('access_token', $token, 3600);
}
devuelve $token;
}
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":"vdlThyTfyB0N5eMoi3n_aMFMKPuwkE0MgyGf_0h0fpzL8p_hsdUX8VGxz5oSXuq5dM69lxP9w BwN9Yzg-0 kVHY33BykRC0YXZZZ-WdxEic4","expires_in" : 7200}
6
Obtén el ticket jsapi. jsapi_ticket es un ticket temporal utilizado por cuentas públicas para llamar a la interfaz WeChat JS. En circunstancias normales, 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(){
$boleto = "";
hacer{
$boleto = S('wx_ticket') ;
if (!empty($ticket)) {
break;
}
$token = S('access_token' );
if (empty($token)){
wx_get_token();
}
$token = S(' access_token');
if (empty($token)) {
logErr("obtener error del token de acceso.");
break;
}
$url2 = sprintf("/cgi-bin/ticket/getticket?access_token=%s&type=jsapi",
$token);
$res = file_get_contents($url2);
$res = json_decode($res, true);
$ticket = $res['ticket']; p> p>
// Nota: el ticket obtenido debe almacenarse en caché aquí (o escribirse en la base de datos)
// El ticket, al igual que el token, no se puede obtener accediendo con frecuencia a la interfaz. time Después de obtenerlo, lo guardamos.
S('wx_ticket', $ticket, 3600);
} while(0);
return $ticket;
}
Valor de retorno de la interfaz:
{"errcode":0,"errmsg":"ok","ticket":"sM4AOVdWfPE4DxkXGEs8VMKv7FMCPm-I98-klC6SO3Q3AwzxqljYWtzTCxIH9hDOXZCo9cgfHI6kwbe_YWtOQg","expire s_in" : 7200}
7
Firma, conecte jsapi_ticket, noncestr, marca de tiempo y URL compartida en orden alfabético para realizar la firma sha1.
noncestr es cualquier cadena que establezca.
timestamp es la marca de tiempo.
$timestamp = time();
$wxnonceStr = "Cualquier cadena";
$wxticket = wx_get_jsapi_ticket();
$wxOri = sprintf("jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s",
$wxticket, $wxnonceStr, $timestamp,
'Para compartir URL (de/open/js/jweixin-1.0.0.js">
// Configuración de WeChat p>
wx.config({
debug: false,
appId: "Su AppID",
marca de tiempo: 'Paso anterior Marca de tiempo generada' ,
nonceStr: 'Cadena en el paso anterior',
firma: 'Firma generada en el paso anterior',
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // Lista de funciones, qué funciones de JS-SDK queremos usar
});
//El método listo se ejecutará después de que se verifique 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 del lado del cliente, por lo que si es necesario llamar a la interfaz relevante cuando se carga la página, se debe llamar a la interfaz relevante en la función lista para garantizar una ejecución correcta. La interfaz que se llama solo cuando la activa el usuario se puede llamar directamente y no es necesario colocarla en la función lista
wx.ready(function(){
.// Obtenga el estado de clic del botón "Compartir con amigos" y una interfaz personalizada para compartir contenido
wx.onMenuShareTimeline({
título: 'Compartir título', // Compartir título
enlace: "La URL para compartir comienza con http o https",
imgUrl: "La URL para compartir el ícono comienza con http o https" // Compartir ícono
});
// Obtenga el estado del clic del botón "Compartir con amigos" y personalice la interfaz para compartir contenido
wx.onMenuShareAppMessage({ p>
title: 'Compartir título', // Compartir título
desc: "Compartir descripción", // Compartir descripción
enlace: "URL compartida, comenzando con http o https",
imgUrl: " La URL del ícono para compartir, comenzando con http o https", // Icono para compartir
tipo: 'enlace', // Tipo de compartir, música, vídeo o enlace; si se deja en blanco, el valor predeterminado es enlace
});
});