1. 程式人生 > >【問題】微信分享測試環境分享

【問題】微信分享測試環境分享

signature 開啟 簽名 ges ref Once 測試的 title del

  • 【問題】:在測試環境中,微信分享分享給好友的鏈接是當前頁面的鏈接,期望為接口返回的特定鏈接。

  • 【解決】:

    1. 在測試反饋給我這個問題的時候,我先去正式環境看了一下,沒有這個問題。
    2. 回想了一下近期代碼的更改,也沒有涉及到相關的更改。
    3. 得出初步結論:可能是測試環境配置的問題,造成分享不正確。不過雖然大概率是測試配置原因,問題還是需要定位的,看什麽原因造成測試環境有問題。連上
    4. 連上抓包軟件charles,進行查看,發現getJSApi返回502,這個接口的完整地址是https://wx.tairanmall.com/getJSApi。所以應該是測試的代理不對。果然,連上了以後就請求通了。
    5. 以為這樣就可以了。但是我還是太天真了。雖然在微信開發者工具中,分享一切正常!但是在手機中,還是有問題,分享不出去!
    6. 暫定是getJSApi返回的信息有問題。過了一天,測試通過了,但是沒有任何改動。。。emmmmm

    點擊!查看微信開發者工具中分享

    點擊!查看手機微信中分享

    從上述gif中可以看到,開發者工具中,可以正確獲取到分享標題等信息。而且在控制臺中可以看到相關操作例如取消和發送的時候,打印出的信息。而在手機微信中,控制臺中是沒有信息的。而且接口也都是獲取到的。基本上問題就集中在下面代碼中。

    我們在手機中alert(mainTitle),alert(url),都有彈窗出來。而在wx.onMenuShareAppMessage這一步就走不通了。暫定疑問在wx.config中,因為getJSApi接口返回的數據,不能被wx.config通過。

    wx.config({
        debug: false, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
        appId: res.data.appId, // 必填,公眾號的唯一標識
        timestamp: res.data.timestamp, // 必填,生成簽名的時間戳
        nonceStr: res.data.nonceStr, // 必填,生成簽名的隨機串
        signature: res.data.signature,// 必填,簽名,見附錄1
        jsApiList: [
            ‘hideMenuItems‘,
            ‘onMenuShareAppMessage‘,
            ‘onMenuShareTimeline‘,
            ‘onMenuShareQQ‘,
            ‘onMenuShareQZone‘,
            ‘onMenuShareWeibo‘
        ] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
    });
    wx.ready(function(){
        wx.onMenuShareAppMessage({
            title: mainTitle, // 分享標題
            desc: subTitle, // 分享描述
            link: url,// 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號JS安全域名一致
            imgUrl: imgUrl, // 分享圖標
            type: ‘‘, // 分享類型,music、video或link,不填默認為link
            dataUrl: ‘‘, // 如果type是music或video,則要提供數據鏈接,默認為空
            success: function () {
                // 用戶確認分享後執行的回調函數
    
            },
            cancel: function () {
                // 用戶取消分享後執行的回調函數
    
            },
            fail: function () {
                // 用戶取消分享後執行的回調函數
    
            }
        });
        wx.onMenuShareTimeline({
            title: mainTitle, // 分享標題
            link: url, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號JS安全域名一致
            imgUrl: imgUrl, // 分享圖標
            success: function () {
                // 用戶確認分享後執行的回調函數
            },
            cancel: function () {
                // 用戶取消分享後執行的回調函數
            }
        });
        wx.onMenuShareQQ({
            title: mainTitle, // 分享標題
            desc: subTitle, // 分享描述
            link: url, // 分享鏈接
            imgUrl: imgUrl, // 分享圖標
            success: function () {
                // 用戶確認分享後執行的回調函數
            },
            cancel: function () {
                // 用戶取消分享後執行的回調函數
            }
        });
        wx.onMenuShareWeibo({
            title: mainTitle, // 分享標題
            desc: subTitle, // 分享描述
            link: url, // 分享鏈接
            imgUrl: imgUrl, // 分享圖標
            success: function () {
                // 用戶確認分享後執行的回調函數
            },
            cancel: function () {
                // 用戶取消分享後執行的回調函數
            }
        });
        wx.onMenuShareQZone({
            title: mainTitle, // 分享標題
            desc: subTitle, // 分享描述
            link: url,  // 分享鏈接
            imgUrl: imgUrl, // 分享圖標
            success: function () {
                // 用戶確認分享後執行的回調函數
            },
            cancel: function () {
                // 用戶取消分享後執行的回調函數
            }
        });
    });

【問題】微信分享測試環境分享