Interfaz de pago de WeChat, mensaje: faltan parámetros al llamar al pago jsapi: $key0$
Cuando estaba usando la interfaz de pago WeChat JSAPI, encontré un problema: en un teléfono Apple, descubrí que WeChat mostraba un error, pero en un teléfono Android, no mostraba este error.
Mensaje de error:
WeChat Pay llama a JSAPI con parámetros faltantes: timeStamp
Al principio, fui a verlo porque era un problema de nombres
Después de llamar a WeChat Pay, descubrí que este parámetro obviamente existe, pero ¿por qué aparece que falta? Después de comprender un poco, descubrí que esta marca de tiempo se generó usando time () y, en el formato json generado, descubrí que la marca de tiempo no estaba entre comillas ("").
La ubicación de la nueva versión de la interfaz JSAPI, esto puede ser diferente para diferentes versiones de la interfaz, verifíquelo usted mismo, en resumen, es la ubicación de "Generar json de solicitud de pago jsapi".
La ruta a la nueva versión es la siguiente:
Modificar el método GetJsApiParameters en el archivo WxPay.JsApiPay.php, donde timeStamp debe ser de tipo cadena.
Solución:
Convertir marca de tiempo en cadena
$timeStamp = strval(time());