Verificación de tokens en WeChat
Vuelve
1. El método de acceso de la plataforma pública de WeChat no es más que 4 parámetros (firma, marca de tiempo, nonce, echostr) más 1 token (correspondiente a ambos lados)
2. Tras ordenar los diccionarios de token, marca de tiempo y nonce, cifrarlos según la cadena "SHA1". Da lugar a una cadena tmpStr (convertida a minúscula)
3. Luego compara si tmpStr es igual a la firma; si es igual, significa que la solicitud proviene de WeChat.
4. Si te aseguras de que la solicitud proviene de WeChat, has dado un paso importante. El que queda, el trabajo de transmitir el parámetro echostr a la plataforma pública de WeChat.
Mi verificación de firma es exitosa, pero WeChat sigue sin devolver el token porque devolví una cadena con formato xml, como sigue:
Solución:
Cabe destacar aquí que se refiere al echo $echoStr de PHP, Response.Write (echoStr) de WebFrom, etc. Tras depurar una y otra vez, se determinó que el método de aceptación de WeChat solo sería aceptado como "application/x-www-form-urlencoded", así que utilicé HttpResponseMessage para especificar su método de salida. ¡Por fin la prueba fue un éxito!
Sin embargo, personalmente creo que la frase anterior no está mal, pero me da pereza probar, y debería estar bien poner "texto/plano" al tipo correspondiente.
Retornos de POST
Recientemente, la función de pago de WeChat se ha utilizado en el desarrollo de mini programas WeChat y ASP.NET API WEB para el desarrollo de interfaces;
Una vez que el pago es exitoso, la interfaz recibe el resultado de la notificación de pago del servidor de WeChat, procesa los datos y los devuelve al servicio de WeChat.
El servidor de WeChat no reconoce los datos devueltos, lo que provoca notificaciones duplicadas.
El código final de resolución es el siguiente:
|