微信 invalid signature 处理

本文详细介绍了如何在微信小程序中实现分享功能,并强调了关键步骤和常见错误避免策略,确保分享链接的一致性和签名的正确性。

生成签名代码:

这里有一个很容易出错的地方就是 $curLink,  如果直接自己手动拼接,不采用系统$_SERVER,会出错。因为链接在微信打开的时候,微信会自动会自动加上 $_GET 参数, 如果你不把 link 拷贝出来看,不会发现。这点需要特别注意。

如果你发现使用微信的工具生成的签名与自己生成的签名还是报错的话,那么问题很可能就是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代码

需要注意 

1 curLink 需要保持一致

2 config 中的签名的属性 都是大驼峰命名,不要写错了

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 () { 
        }
    });
});






转载于:https://my.oschina.net/u/195896/blog/528749

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值