微信jssdk開発前楽屋


最近jssdkを開発しました.バックエンドコードは主に無数に踏みました.その後一つのモジュールqc-wechat-jssdkを発見しました.このモジュールを利用して開発しました.
バックエンドはnodejsを採用しています
このモジュールはキャッシュとしてmemory-cacheを使用しています.ticket1、npm install qc-wechat-jssdk 2、プロファイル
 const _jssdk = require('qc-wechat-jssdk')
    _jssdk.configure({
        appId:config.appid,
        secret:config.secret
    })
3、先端jssdkを取得するために必要なパラメータ:noncenter、signature、timestamp
  //   url       ,                     ,            ,             。
   let url = req.query.url
   let data =await _jssdk.getjssdk(url)
   console.log(data)
        
ダタの値
        "timestamp": "1586765360",
        "nonceStr": "melrd7dk5a",
        "signature": "",
        "jsapi_ticket": "",
        "appId": "",
        "url": ""
このモジュールの他の方法
1、getTokenAndTicket、access_を取得する.token、jsapi_ticket
この方法はaccess_をキャッシュしません.token、jsapi_ticketは、制限回数があり、ユーザー定義のキャッシュメカニズムが必要です.
 let data = await _jssdk.getTokenAndTicket()
 console.log(data)
ダタの値
{
 token:'',
 ticket:'' 
}
2、sign方法で、署名を生成する
let signData = _jssdk.sign(ticket,url)
console.log(signData)
signDataの値
{
  timestamp: "1587086143",
  nonceStr: "aowjqxuvfr",
  signature: "",
  jsapi_ticket: "",
  appId: "",
  url: ""
}
先端



    
    
    
    Title


function ajax(options){ // ajax var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft,XMLHTTP"); // {a:1,b:2} a=1&b=2; var str = ""; for(var key in options.data){ str+="&"+key+"="+options.data[key]; } str = str.slice(1) if(options.type == "get"){ var url = options.url+"?"+str; xhr.open("get",url); xhr.send(); }else if(options.type == "post"){ xhr.open("post",options.url); xhr.setRequestHeader("content-type","application/x-www-form-urlencoded"); xhr.send(str) } // xhr.onreadystatechange = function(){ // if(xhr.readyState == 4 && xhr.status == 200){ var d = xhr.responseText; // options.success&&options.success(d) }else if(xhr.status != 200){ // options.error&&options.error(xhr.status); } } } function wxjs2(){ var _shareurl = window.location.href; var url = location.href.split('#')[0];//( url, request.getRequestURL ) url = encodeURIComponent(url) console.log(url) ajax({ type:"get", url:"/api/gvrchat/jssdk",// data:{url:url},// url success:function(data){ console.log(data) var obj = JSON.parse(data).data; console.log(obj); wx.config({ debug: true, appId: obj.appId, timestamp: obj.timestamp, nonceStr: obj.nonceStr, signature: obj.signature, jsApiList: ['updateAppMessageShareData','updateTimelineShareData'] }); // var formLst = JSON.parse($("#session").html()); var friendShareTitle = " "; var friendShareDesc = " "; var friendShareImgUrl = "http://video2.gvrcraft.com/pic/yxk.jpg"; var cfShareTitle = ""; var cfShareImgUrl = ""; wx.ready(function () { // wx.updateAppMessageShareData({ title: friendShareTitle, // desc: friendShareDesc, // link: _shareurl, // , JS imgUrl: friendShareImgUrl // }); wx.updateTimelineShareData({ title: cfShareTitle, // link: _shareurl, // , JS imgUrl: cfShareImgUrl // }); elseShareMathod(cfShareTitle,_shareurl,cfShareImgUrl,friendShareDesc) wx.error(function (res) { alert(res.toString()) }); }); } }) } function elseShareMathod(title,link,imgUrl,desc){ wx.updateTimelineShareData({ title: title, // link: link, // , JS imgUrl: imgUrl, // success: function () { // } }) wx.onMenuShareTimeline({ title: title, // link: link, // , JS imgUrl: imgUrl, // success: function () { // } }) wx.onMenuShareAppMessage({ title: title, // desc: desc, // link: link, // , JS imgUrl: imgUrl, // // type: '', // ,music、video link, link // dataUrl: '', // type music video, , success: function () { // } }); wx.onMenuShareQQ({ title: title, // desc: desc, // link: link, // imgUrl: imgUrl, // success: function () { // }, cancel: function () { // } }); wx.onMenuShareWeibo({ title: title, // desc: desc, // link: link, // imgUrl: imgUrl, // success: function () { // }, cancel: function () { // } }); wx.onMenuShareQZone({ title: title, // desc: desc, // link: link, // imgUrl: imgUrl, // success: function () { // }, cancel: function () { // } }); } wxjs2()