微信 invalid signature 處理

生成簽名代碼:
php

這裏有一個很容易出錯的地方就是 $curLink,  若是直接本身手動拼接,不採用系統$_SERVER,會出錯。由於連接在微信打開的時候,微信會自動會自動加上 $_GET 參數, 若是你不把 link 拷貝出來看,不會發現。這點須要特別注意。api

若是你發現使用微信的工具生成的簽名與本身生成的簽名仍是報錯的話,那麼問題極可能就是link不對微信

    $readyTime = time();
    $curLink = "http://www.test.com{$_SERVER['REQUEST_URI']}";
    $readyStr = "jsapi_ticket={$jsTicket}&noncestr=test&timestamp={$readyTime}&url={$curLink}";
    $signature = sha1($readyStr);

js代碼app

須要注意 ide

1 curLink 須要保持一致工具

2 config 中的簽名的屬性 都是大駝峯命名,不要寫錯了url

var imgUrl = 'http://www.test.com/abc.jpg'; 
var curLink = location.href.split('#')[0]; 
var shareTitle = 'title'; 
var appid = 'yourappid'; 

wx.config({
    debug: false,
    appId: appid, //你的appid
    timestamp: <?php echo $readyTime;?>, // 必填,生成簽名的時間戳,直接使用php準備好的時間
    nonceStr: 'test', //與php參與簽名的串保持一致
    signature: '<?php echo $signature;?>', //php生成的簽名
    jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,須要使用的JS接口列表,全部JS接口列表見附錄2
});
wx.ready(function () {

    wx.onMenuShareTimeline({
        title: shareTitle, // 分享標題
        link: curLink , // 分享連接
        imgUrl: imgUrl, // 分
        success: function () { 
        },
        cancel: function () { 
        }
    });

    wx.onMenuShareAppMessage({
        title: shareTitle, // 分享標題
        desc: 'desc', // 分享描述
        link: curLink , // 分享連接
        imgUrl: imgUrl, // 分
        type: '', // 分享類型,music、video或link,不填默認爲link
        dataUrl: '',
        success: function () { 
        },
        cancel: function () { 
        }
    });
});
相關文章
相關標籤/搜索