Cómo solucionar el error de firma no válida
Confirme que el algoritmo de firma sea correcto; puede utilizar la herramienta de página /debug/cgi-bin/sandbox?t=jsapisign para la verificación. Es decir, la firma generada por usted en segundo plano debe ser coherente con la firma generada por el algoritmo de verificación de WeChat (los casos pueden ser diferentes).
Nota:
Las reglas de generación de firma son las siguientes:
Los campos que participan en la firma incluyen jsapi_ticket válido (consulte el documento WeChat JSSDK para obtener detalles sobre cómo para obtenerlo), noncestr (cadena de caracteres aleatoria, generada aleatoriamente por el desarrollador), timestamp (la marca de tiempo actual generada por el desarrollador), url (la URL de la página web actual, excluyendo # y sus siguientes partes. Nota: Para URL que solo tienen nombres de dominio y no tienen rutas, el navegador agregará automáticamente / como ruta. Si se abre, la URL obtenida será /).
Nota especial: cuando usa parámetros para generar una firma, debe ordenar todos los parámetros a firmar de acuerdo con el código ASCII del nombre del campo de pequeño a grande (orden lexicográfico) y usar la URL El formato de par clave-valor (es decir, clave1=valor1&clave2=valor2...) se concatenan en una cadena cadena1. Cabe señalar aquí que todos los nombres de los parámetros están en minúsculas.
Mi error inicial fue que no me di cuenta de que los parámetros utilizados para generar la firma debían concatenarse en una cadena en el formato clave=valor, y luego cifrarse y generarse en sha1.