Principalmente los siguientes pasos de implementación:
1. Atar el nombre de dominio
Primero inicie sesión en la plataforma pública WeChat e ingrese la "Configuración de funciones" de "Configuración de cuenta pública" para completar el "Nombre de dominio de seguridad de la interfaz JS". (El recordatorio especial no necesita agregar http o https, ha sufrido una pérdida)
2. Page Importa el archivo JS
<script src = "http://res.wx.qq.com/open/js/jweixin-1.0.0.js"> </script>
<script src = "https://res.wx.qq.com/open/js/jweixin-1.0.0.js"> </script>
3. Verifique la configuración a través de la interfaz de configuración
wx.config ({debug: true, // activar el modo de depuración, los valores de retorno de todas las API llamadas se alertarán en el cliente. Para ver los parámetros pasados, puede abrirlos en el lado de la PC, la información de parámetros se imprimirá a través del registro y solo se imprimirá en el lado de la PC. Appid: '', // requerido, el identificador único del TimestAM de cuenta oficial: // se requerirá el tiempo de tiempo de tiempo. Non -Cestr: '', // requerido, la cadena aleatoria generada por la firma de la firma: '', // requerida, la firma se muestra en el Apéndice 1 JSapilist: [] // requerido, la lista de interfaces JS que se utilizarán, y todas las interfaces JS se enumeran en el Apéndice 2});4. Verificado con éxito a través del procesamiento de interfaz listo
wx.ready (function () {// código detallado});5. Verificación fallida a través de la interfaz de error
wx.error (function (res) {});Código de página detallado
<script> // WeChat Share Moments $ (function () {/*** hace clic para compartir en WeChat Circle y carga la interfaz de la interfaz ************/var url = window.location.href.split ('#') [0]; url = url.Rplace (//g, '%26' '); console.log ("url:"+". URL: "<%= basepath%>/lottery/sharetofriend.action? url ="+url, type: "post", async: true, cache: false, dataType: "json", éxito: function (data) {wx.config ({debug: falso, appid: 'wx2948fefeef9eef421ee', timeStamp: data.time.time.time, data.time, data.time.time, data.time.time. Non -Cestr: Data.noncestr, Signature: data.signature, jsapilist: ['checkjsapi', 'onMenusharetimeline', 'hideoPtionMenu', 'onMenushareAppMessage']}); wx.checkjsapi ({jsapilist: ['getLocation', 'onMenusharetimeline', 'onMenushArapMessage'], éxito: function (res) {//alert(res.errmsg);}}); '<%= basepath%>/lottery/lottery.action? lottery.id = $ {lottery.id}', imgurl: '<%= basepath%>/recursos/qjc/img/start.png', activador: function (res) {// alerta ('Los usuarios hacen clic para enviar a los amigos'); Jackpot ~~ ');//Agregar para aumentar el número de juegos después de compartir $ .AJAX ({url: "<%= BasePath%>/lottery/recompensas/recompensas? }}); '<%= basepath%>/lottery/lottery.action? lottery.id = $ {lottery.id}', imgurl: '<%= basepath%>/recursos/qjc/img/start.png', activador: function (res) {// alerta ('El usuario hace clic para compartir a los momentos'); Jackpot ~~ '); // Agregar para aumentar el número de juegos después de compartir $ .AJAX ({url: "<%= BasePath%>/lottery/recompensas/recompensas? funciones (data) {}}); }); </script>Código de acción de fondo Java:
// weChat share public void shareToFriend () {httpservletRequest request = servletactionContext.getRequest (); Cadena timestamp = sha1util.gettimestamp (); // timestamp String noncestr = wxconfig.getuuid (); // cadena aleatoria, no más de 32 bits cadena url = request.getParameter ("url"); Cadena firma = wxconfig.getSignature ("appid", "app_secret", url, timestamp, no cuell); request.setAttribute ("Timestamp", Timestamp); request.setAttribute ("Non -CESTR", Non -CESTR); request.setAttribute ("url", url); request.setAttribute ("firma", firma); WXJSSDK resultado = nuevo WXJSSDK (marca de tiempo, no subestro, firma, url); CommonUtil.returnmsg (servletactionContext.getResponse (), new Gson (). TJson (resultado)); } Código wxconfig.java
">//jsapi_ticket public final static String WEIXIN_JSAPI_TICKET_URL ="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi"; //access_token public static String getAccessToken(String appId,String appSecret) {String access_token; Httputil.get (url); AccessTokenInfo.get ("expires_in"); logger.error ("Errcode: {}:"+AccessTokenInfo.get ("Errcode")+"Errmsg: {}:"+AccessTokenInfo.get ("errmsg")); mapticket.get ("ticket"); {} .gettype (); logger.info ("JSAPI_TICKET:"+Ticket+"; Expires_in:"+expires_in); errcode: {}: "+ticketInfo.get (" errcode ")+" errmsg: {}: "+ticketInfo.get (" errmsg "));}} ticket de retorno;} // Generar cadena aleatoria uuid public static string getuuid () {string uuid = = Uuid.randomuuid (). ToString (). Trim (). ReplaceAll ("-", ""); getJSapIticket (AccessToken); cadena: "+SignValue); // Esta firma. Se usa principalmente para cargar WeChat JS. No se confunda con la firma de cadena anterior = Sha1util.getSha1 ((SignValue)); logger.info (" WeChat JS-SDK Signature de verificación de permiso: "+firma); firma de retorno;}Además, Sha1util.java y Md5util.java utilizados en el proyecto se pueden descargar directamente en la plataforma.