验签过程详解--前端和后端的操作本⼈为后台java开发
⼀,需求:分享
⼆,在开发过程中有⼏点疑问
1.验签流程:后台⽣成签名,时间戳,随机数给前端,前端怎么验签。是⽤同样的验签规则,也⽣成⼀个签名,与后台⽐较吗
2.⼊参url是个啥:前端调⽤该接⼝的域名
3.下图这个鸟玩意,要不要填,填什么
三,依赖
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-open</artifactId>
<version>4.0.0</version>
</dependency>
四,以下内容为转载,请参考最后原⽂:
项⽬是vue写的,⾸先下载引⼊依赖:
npm install weixin-jsapi
1
在要⽤的页⾯引⼊:
import wx from 'weixin-jsapi'
1
关于很多⼈纠结的jssdk还是jsapi看看这篇博客
1,
这⾥前端要做的就是:请求后台给的验签接⼝,将当前页⾯的url路径encodeURIComponent(url.split("#")[0])传参给后台,然后后台就会进⾏‘⼀系列操作’将wx.config⾥权限配置需要的字段返给前端。
2,
前端代码:请求后台接⼝,获取验签时需要的字段并进⾏权限配置,这⾥看⼀下这篇博客很完整:
getConfig(){
var $this = this;
var url = window.location.href;
this.$post('/xx/bbb',            // 后台配置的接⼝ 验签
{
encodeUrl:encodeURIComponent(url.split("#")[0])  //直接丢弃#及后⾯的字符串
}
).then(function(response) {
if(response.data.flag == true){
var data = JSON.parse(response.data.data);    //字符串转为对象  有需要的可能需要解密返回值
console.log(data);
//下列的data.均为后台接⼝返回的字段,⽐如我的项⾥⾥返回的是 appid,timestamp,nonceStr,signature
debug: ture,//这⾥⼀般在测试阶段先⽤ture,等打包给后台的时候就改回false,
appId: data.appid,
timestamp: data.timestamp,
nonceStr: str,
signature: data.signature,
jsApiList: ['chooseWXPay', 'updateMenuTimlingAppMessage']
})
wx.checkJsApi({
jsApiList: ['chooseWXPay'],
success:function(res){
console.log("seccess")
console.log(res)
},
fail:function(res){
console.log("fail");
console.log(res)
}
})
//  分享功能,需要初始化就调⽤
wx.updateMenuTimlingAppMessage({
link: '',
imgSrc: '',
desc: '',
appId: '',
前端跟后端哪个就业难complete: function (res) {
// 不论成功失败返回
},
success: function (res) {
},
error: function(err) {
},
trigger: function () {
}
})
})
<(function (err) {
$this.$toast(err)
})
}else{
$this.$toast({
message: response.data.detailMsg      //  若这⾥弹出了:errMsg:config:ok,则验证成功!
});
}
}).catch(function(error){
$this.$toast({
message: '获取config 验签 失败,请重试'
});
});
},
这⾥后端要做的是:重点说⼀下后台进⾏的那‘⼀系列操作’:
先看⼀下测试号的消息接⼝指南(当然开放⽂档⾥也有,就是接⼊指南),告诉你怎么验证你填写的服务器的有效性,只有进⾏验证成功了,才能进⾏接下来的操作(其中URL是开发者⽤来接收消息和事件的接⼝URL。Token可由开发者可以任意填写):
3.1: 当你点击提交,那边会马上对你填的服务器进⾏验证,后台那边的逻辑就参考消息接⼝使⽤指南⾥⾯写好(在点击提交之前写好),根据返回值如果是true则接头成功。
3.2: 你就可以进⾏获取验签需要的东西了,开放⽂档⾥⾯的步骤三下⾯的附录1,2以及后⾯会告诉你如何获取签名需要的票据(ticket)以及其他参数和签名的加密算法,还有会遇到的错误排查:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。