3个回答
2022-12-08 · 百度认证:IT168官方账号,优质数码领域创作者
关注
展开全部
步骤如下:
1、首先登录公众平台,点击设置,点击账号信息。
2、进入第三方平台,注册个账号,然后用注册的账号密码登录。
3、登录后点击添加公众号,填写内容后就可以绑定了,点击保存,保存后就可以看URL和Token了。
4、打开公众平台,点击功能管理-高级模式,再点击开发模式,点击“我要成为开发者”,协议同意后就能填写url和token。
1、首先登录公众平台,点击设置,点击账号信息。
2、进入第三方平台,注册个账号,然后用注册的账号密码登录。
3、登录后点击添加公众号,填写内容后就可以绑定了,点击保存,保存后就可以看URL和Token了。
4、打开公众平台,点击功能管理-高级模式,再点击开发模式,点击“我要成为开发者”,协议同意后就能填写url和token。
展开全部
这个url是为了 验证 你接下来处理的消息 是否来自微信服务器,
在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。
此后,每次开发者接收用户消息的时候,微信也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。
此后,每次开发者接收用户消息的时候,微信也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
更多追问追答
追问
听不懂
追答
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");
if (null != timestamp && null != nonce && null != echostr
&& null != signature) {
if (config(TOKEN, signature, timestamp, nonce)) {
response.getWriter().write(echostr);
return;
}
return;
} else {
return;
}
}
public static boolean config(String token,String signature,String timestamp,String nonce) {
List<String> ss = new ArrayList<String>();
ss.add(timestamp);
ss.add(nonce);
ss.add(token);
Collections.sort(ss);
StringBuilder builder = new StringBuilder();
for(String s : ss) {
builder.append(s);
}
return signature.equalsIgnoreCase(HashKit.sha1(builder.toString()));
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询