3A、 微信公衆號中url傳遞參數到第三方的網頁

在微信公衆號開發中,有這麼一個場景,點擊模板消息中詳情url進入到第三方的界面的問題,不知道別的大神是怎麼做的,我第一種方法是,老老實實的按照官方文檔去做。

方法1:通過網頁授權,獲取到code,再通過code獲取openid,再根據openid請求接口,獲取自己需要的參數。https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=第三方url&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 
這樣做在實際開發中受到了很大限制。

方法2:需要的參數直接在上面的url中攜帶。當然需要自己處理一下,直接一次傳很多參數,js獲取不到,傳遞一個是可以獲取到的,沒弄明白爲什麼。

傳遞一個參數:(這樣可以直接在js裏獲取到這裏傳遞的一個參數mcssn) 
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3aa9835c4b466364&redirect_uri=http://ip:port/view/index.html?mcssn=11111111111111111111&response_type=code&scope=snsapi_base&state=STATE&connect_redirect=1#wechat_redirect

傳遞多個參數:(只獲取到了一個,不知道爲什麼) 
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3aa9835c4b466364&redirect_uri=http://ip:port/view/index.html?mcssn=11111111111111111111&teacct=123456&mccode=22222222&response_type=code&scope=snsapi_base&state=STATE&connect_redirect=1#wechat_redirect

傳遞多個參數:(想辦法處理一下,自己的多個參數不用&連接,我這裏用*連接了) 
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3aa9835c4b466364&redirect_uri=http://ip:port/view/index.html?mcssn=11111111111111111111*teacct=123456*mccode=22222222&response_type=code&scope=snsapi_base&state=STATE&connect_redirect=1#wechat_redirect

這樣在js裏可以用var urlSearch = location.search; 來獲取傳遞過來的參數。這裏直接貼出了寫的方法:

//調用方法
$(document).ready(function(){
var mcssn = getUrlParams("mcssn");
var teacct= getUrlParams("teacct");
var mccode= getUrlParams("mccode");
console.log(mcssn);
console.log(teacct);
console.log(mccode);
}); 

function getUrlParams(names) {
//獲取?後面的參數
   var urlSearch = location.search;
   var urlValue="";
   //以?*&來拆分
   var params = urlSearch.split(/[?*&]/);
    for(var i=0;i<params.length;i++){
    //如果url參數裏包含傳遞過來names字段,則取=後面的部分
        if(params[i].indexOf(names) >= 0 ){
            urlValue=params[i].split("=")[1];
            return urlValue;
        }
    }

   return urlValue;
}   

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章