真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

微信js-sdk+JAVA如何實(shí)現(xiàn)“分享到朋友圈”和“發(fā)送給朋友”功能

這篇文章主要介紹微信js-sdk+JAVA如何實(shí)現(xiàn)“分享到朋友圈”和“發(fā)送給朋友”功能,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)建站2013年開(kāi)創(chuàng)至今,先為蒲城等服務(wù)建站,蒲城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為蒲城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

主要為以下實(shí)現(xiàn)步驟:

1.綁定域名

先登錄微信公眾平臺(tái)進(jìn)入“公眾號(hào)設(shè)置”的“功能設(shè)置”里填寫(xiě)“JS接口安全域名”。(特別提示不需要加上http或者h(yuǎn)ttps,吃過(guò)虧)

2.頁(yè)面引入js文件

  
  

3.通過(guò)config接口注入權(quán)限驗(yàn)證配置

wx.config({

debug: true, // 開(kāi)啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來(lái),若要查看傳入的參數(shù),可以在pc端打開(kāi),參數(shù)信息會(huì)通過(guò)log打出,僅在pc端時(shí)才會(huì)打印。

  appId: '', // 必填,公眾號(hào)的唯一標(biāo)識(shí)

  timestamp: , // 必填,生成簽名的時(shí)間戳

  nonceStr: '', // 必填,生成簽名的隨機(jī)串

  signature: '',// 必填,簽名,見(jiàn)附錄1

  jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表見(jiàn)附錄2

});

4.通過(guò)ready接口處理成功驗(yàn)證

  wx.ready(function(){

   //詳細(xì)代碼

});

5.通過(guò)error接口處理失敗驗(yàn)證

wx.error(function(res){});

詳細(xì)頁(yè)面代碼

java后臺(tái)action代碼:

//微信分享 
  public void shareToFriend(){ 
    HttpServletRequest request = ServletActionContext.getRequest(); 
    String timeStamp = Sha1Util.getTimeStamp();//時(shí)間戳 
    String nonceStr = WxConfig.getUUID();//隨機(jī)字符串,不長(zhǎng)于32位 
    String url=request.getParameter("url"); 
    String signature = WxConfig.getSignature("APPId", "APP_secret", url, timeStamp, nonceStr); 
    request.setAttribute("timeStamp", timeStamp); 
    request.setAttribute("nonceStr", nonceStr); 
    request.setAttribute("url", url); 
    request.setAttribute("signature", signature); 
    WXjssdk result = new WXjssdk(timeStamp,nonceStr,signature,url); 
    CommonUtil.returnMsg(ServletActionContext.getResponse(), new Gson().toJson(result)); 
  }

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; 
    access_token = mapToken.get("accessToken"); 
    if(access_token==null){ 
      String url = HttpUtil.WEIXIN_HOST_API + "/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+appSecret; 
      String menuJsonStr = HttpUtil.get(url); 
      final Type type = new TypeToken>() {}.getType(); 
      final Map accessTokenInfo = new Gson().fromJson(menuJsonStr, type); 
      try{ 
        access_token = accessTokenInfo.get("access_token").toString(); 
        Object expires_in = accessTokenInfo.get("expires_in"); 
        mapToken.put("accessToken", access_token); 
        logger.info("access_token:"+access_token+";expires_in:"+expires_in); 
      }catch (JSONException e) { 
        access_token = null; 
        e.printStackTrace(); 
        logger.error("errcode:{}:"+accessTokenInfo.get("errcode")+"errmsg:{}:"+accessTokenInfo.get("errmsg")); 
      } 
    } 
    return access_token; 
  } 
   
  //jsapi_ticket 
  public static String getJsapiTicket(String accessToken){ 
    String ticket; 
    ticket = mapTicket.get("ticket"); 
    if(ticket==null){ 
      String url = HttpUtil.WEIXIN_HOST_API + "/cgi-bin/ticket/getticket?access_token="+accessToken+"&type=jsapi"; 
      String menuJsonStr = HttpUtil.get(url); 
      final Type type = new TypeToken>() {}.getType(); 
      final Map ticketInfo = new Gson().fromJson(menuJsonStr, type); 
      try{ 
        ticket = ticketInfo.get("ticket").toString(); 
        String expires_in = ticketInfo.get("expires_in").toString(); 
        mapTicket.put("ticket", ticket); 
        logger.info("jsapi_ticket:"+ticket+";expires_in:"+expires_in); 
      }catch (JSONException e) { 
        ticket = null; 
        e.printStackTrace(); 
        logger.error("ticket errcode:{}:"+ticketInfo.get("errcode")+"errmsg:{}:"+ticketInfo.get("errmsg")); 
      } 
    } 
    return ticket; 
  } 
   
   //生成隨機(jī)字符串UUID 
  public static String getUUID(){   
     String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");   
     return uuid;   
  }  
   
  //JS-SDK Signature 
  public static String getSignature(String appId,String appSecret,String url,String timeStamp,String nonceStr){ 
    String accessToken = getAccessToken(appId,appSecret); 
    String jsapi_ticket = getJsapiTicket(accessToken); 
    logger.info("accessToken==="+accessToken); 
    String signValue = "jsapi_ticket="+jsapi_ticket+"&noncestr="+nonceStr+"×tamp="+timeStamp+"&url="+url; 
    logger.info("微信JS-SDK權(quán)限驗(yàn)證的簽名串:"+signValue); 
    //這個(gè)簽名.主要是給加載微信js使用.別和上面的搞混了. 
    String signature = Sha1Util.getSha1((signValue)); 
    logger.info("微信JS-SDK權(quán)限驗(yàn)證的簽名:"+signature); 
    return signature; 
  }

以上是“微信js-sdk+JAVA如何實(shí)現(xiàn)“分享到朋友圈”和“發(fā)送給朋友”功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前標(biāo)題:微信js-sdk+JAVA如何實(shí)現(xiàn)“分享到朋友圈”和“發(fā)送給朋友”功能
網(wǎng)頁(yè)網(wǎng)址:http://weahome.cn/article/igojhp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部