这次给大家带来前端微信分享jssdk config:invalid signature 签名错误的解决方法,前端微信分享jssdk config:invalid signature签名错误的解决方法注意事项有哪些,下面就是实战案例,一起来看一下。
关于前端微信分享jssdk config:invalid signature 签名错误
这几天刚刚把微信写完,说出来你可能不信,我写个微信分享一起用了2个礼拜。中间各种心酸,一开始后台老大哥帮我把后台签证给写好了,不过不起作用,想叫他在改,但是后面公司有个项目急着上线,没有空,产品催的又急,自己没有办法,开始自己处理后台.
好了,话不多说,正文开始
首先微信的的东西看微信SDK文档是肯定的
立即学习“前端免费学习笔记(深入)”;
因为我是前端,就只写关于前端的代码了,后台我也涉及了,在文章的最后我会附上我自己改的后台代码
$.ajax({
type: "post",
dataType: 'json',
url: '接口链接',
data: {
url: urld
},
success: function(conf) {
console.log(conf);
configWxAPI(conf);
var conf = conf.url; return conf;
},
error: function(event, XMLHttpRequest, ajaxOptions, thrownError) {
}
});
//配置权限
function configWxAPI(conf) {
wx.config({
debug: false, //开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端
//打开,参数信息会通过log打出,仅在pc端时才会打印
appId: "唯一的ID", //必填,公众号的唯一标识
timestamp: conf.timestamp, //必填,生成签名的时间戳
nonceStr: conf.nonceStr, //必填,生成签名的随机串
signature: conf.signature, //必填,签名
jsApiList: [
'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'previewImage',
] //必填,需要使用的JS接口列表,也就是配置你想使用的调用接口
});
// 微信分享
wx.ready(function() {
//分享的图片
var imgUrl = ""
//分享朋友
wx.onMenuShareAppMessage({
title: "标题",
desc: "内容简介",
link: "分享链接",
imgUrl: imgUrl,
success: function() {
//分享成功之后执行的回调函数
},
cancel: function() {
//取消分享之后执行的回调函数
}
});
//分享朋友圈
wx.onMenuShareTimeline({
title: "标题",
desc: "内容简介",
link: "分享链接",
imgUrl: imgUrl,
success: function() {
//分享成功之后执行的回调函数
},
cancel: function() {
//取消分享之后执行的回调函数
}
});
});
wx.error(function(conf) {
console.log(conf);
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
};后台部分的代码
public function getSignPackage() {
if(IS_POST){ if(!I('post.url')) $this->ajaxReturn(array('status'=>0,'msg'=>'请输入当前的URL'));
$jsapiTicket = $this->getJsApiTicket();
//这句代码微信SDK上面没有介绍,但是用来签证的url里面就&后面会自动带有&,所以这里用了php的字符串替换
$url = str_replace("&","&",I('post.url'));
$timestamp = time();
$nonceStr = $this->createNonceStr();
// 这里参数的顺序要按照 key 值 ASCII 码升序排序这里的时间还有随机字符串传给和前台的一样,还有url链接是由前台传给后台,在由后台通过这个url进行下面的编码
记住传给后台的url和当前链接要一模一样,记住传给后台的url和当前链接要一模一样,记住传给后台的url和当前链接要一模一样,
$string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url";
$signature = sha1($string);
$signPackage = array( "jsapiTicket" =>$jsapiTicket, "appId" => $this->appId, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url, "signature" => $signature, "rawString" => $string
); $this->ajaxReturn($signPackage);相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
以上就是前端微信分享jssdk config:invalid signature 签名错误的解决方法的详细内容,更多请关注php中文网其它相关文章!
微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号