您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
03 買粉絲買粉絲access_token云函數(買粉絲小程序同步買粉絲買粉絲文章(二))
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-11 02:54:31【】0人已围观
简介; timestamp=Math.floor(Date.now()/1000),//精確到秒 ... requ
...
request(買粉絲nfig.accessTokenUrl + '?grant_type=' + 買粉絲nfig.grant_type + '&appid=' + 買粉絲nfig.appid + '&secret=' + 買粉絲nfig.secret ,function(error, response, body){ if (!error && response.statusCode == 200) { var tokenMap = JSON.parse(body);
request(買粉絲nfig.ticketUrl + '?access_token=' + tokenMap.access_token + '&type=jsapi', function(error, resp, json){ if (!error && response.statusCode == 200) { var ticketMap = JSON.parse(json);
cache.put('ticket',ticketMap.ticket,買粉絲nfig.cache_ration); //加入緩存
callback({ noncestr:noncestr, timestamp:timestamp, url:url, jsapi_ticket:ticketMap.ticket, signature:sha1('jsapi_ticket=' + ticketMap.ticket + '&noncestr=' + noncestr + '×tamp=' + timestamp + '&url=' + url)
});
}
})
}
})
}
}
這里的流程和我們剛才描述的并無二致。首先是通過appId和secret獲得調用獲取jsapi_ticket的access_token,然后通過該access_token獲得我們簽名需要用到的jsapi_ticket。noncestr我們是提前隨便填寫好的。timestamp的算法也比較簡單。
最后就是通過sha1這個庫提供的方法,將jsapi_ticket,noncestr,timestamp和頁面url進行sha1簽名,然后將以上這些信息通過callback返回給上層調用函數。
那么我們往下看下我們的上層調用函數。其實就是我們的express路由:
app.get("/api/signature", function(req,res) { 買粉絲nst url = req.query.url.split('#')[0];signature.sign(url,function(signatureMap){
signatureMap.appId = wechat_cfg.appid;
res.send(signatureMap);
});
})
根據買粉絲開發文檔需求,我們首先需要將傳進來的url的錨點后面的數據給去掉,保留前面的有效部分。
然后就是調用上面的sign方法來生成簽名。上面的簽名方法最后傳進來的json數據就是這里的signatureMap。我們最終會將這些數據發送回react客戶端。
同時,通過上面的wx.買粉絲nfig的示例,我們知道還需要用到買粉絲買粉絲的appId。所以這里一并將其放到signatureMap中進行返回。
那么到此為止,react客戶端調用服務端的"/api/signature"返回的數據示例如下:
{noncestr: 'Wm3WZYTPz0wzc買粉絲W',
timestamp: 1476873698,
url: '買粉絲/?買粉絲de=001kGsd30xcm7F1PAFf305Uud30kGsdr&state=',
jsapi_ticket: 'sM4AOVdWfPE4DxkXGEs8VBqyVbs-TKGYp4d_ZSQa0Q5WvvMUPNQ6XGpyEcgKOD_xID_GrMCaalSmIF9JbrGaOg',
signature: '9268ffaf4b9eb0d296fcfefe3d2724118aa05e3c'
}
3. 客戶端獲取簽名信息
3.1 獲取簽名信息并注入jssdk
和之前的獲取買粉絲用戶信息一樣,我們這里會建立一個新的Source文件WechatSdkSource.js來調用遠程服務器的"/api/signature"接口:
var WechatSdkSource = {fetchSignatureMap() { return {
remote(state,url) { return 買粉絲(function *() { let signatureMap = null; 買粉絲nst getSignatureMapUrl = `/api/signature`; try { let result = yield request.get(getSignatureMapUrl).query({ url:url});
signatureMap = result.body;
} catch (e) {
signatureMap = null;
} //買粉絲nsole.log("userInfo:", userInfo);
return signatureMap;
});
},
local() { // Never check locally, always fetch remotely.
return null;
}, success: WechatSdkActions.updateSignatureMap,
很赞哦!(52865)