申请测试微信公众号流程_如何申请免测

申请测试微信公众号流程_如何申请免测申请测试微信公众号申请的地址:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/ind

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

申请测试微信公众号

申请的地址:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index    

申请测试微信公众号流程_如何申请免测

 

点击登录,弹出二维码页面,微信扫码登录后,

需要填写接口配置信息中的url,token:url是回调地址,token值可以随意填写。

js 接口安全域名需要设置一个可以访问的域名,这个域名和接口配置的url 地址中的域名是一致的, 

 申请测试微信公众号流程_如何申请免测

 

 点击提交按钮时,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

申请测试微信公众号流程_如何申请免测

通过检验signature对请求进行校验,流程如下:

1)将token、timestamp、nonce三个参数进行排序

2)将三个参数字符串拼接成一个字符串进行 SHA-1 加密

3)开发者获得加密后的字符串可与signature对比,相等则返回 echostr 参数给微信。

代码实现如下:

//该方法就是接口配置url中请求的方法
public String WechatCallBack() throws IOException{
        //验证签名的是get请求
        boolean isGet = Objects.equals("GET", getRequest().getMethod().toUpperCase());

        if(isGet){
            //微信公众号服务器接口配置的签名token
            String token = "dfgsdfgdfg";  //可写在配置文件中,从配置文件中获取,或存在数据库中
            //随机数
            String nonce = request.getParameter("nonce");
            //签名
            String signature =request.getParameter("signature");
            //时间戳
            String timestamp = request.getParameter("timestamp");
            
            //验证token
            String[] paramArr = new String[] {token,timestamp,nonce};
            Arrays.sort(paramArr);
            
            //将验证的值返回给微信服务器
            PrintWriter out = response.getWriter();
            String echostr = request.getParameter("echostr");
            if (WechatMessageUtil.checkSignNature(paramArr,signature)){
                LOG.error( "===========请求校验成功========");
                out.print(echostr);
            }else{
                LOG.error("===========请求校验失败========");
            }
            return null;
        }
        
        
    }
WechatMessageUtil工具类
public static boolean checkSignNature(String[] paramArr,String signature) {
        
        StringBuilder content = new StringBuilder();
        for (int i = 0; i < paramArr.length; i++)
        {
            content.append(paramArr[i]);
         }
    
        String cipherText = null;
        try{
            MessageDigest md = MessageDigest.getInstance("SHA-1");
            byte[] digest = md.digest(content.toString().getBytes());
            cipherText = byteToStr(digest);
        }catch (NoSuchAlgorithmException ex){
            ex.printStackTrace();
        }

        return cipherText != null ? cipherText.equals(signature.toUpperCase()) : false;
    }

    public static String byteToStr(byte[] digest) {
        String strDigest = "";
         for (int i = 0; i < digest.length; i++) {
        strDigest += byteToHexStr(digest[i]);
        }
        return strDigest;
    }

    public static String byteToHexStr(byte mByte) {
        char[] Digit = { '0', '1' , '2', '3', '4' , '5', '6', '7' , '8', '9', 'A' , 'B', 'C', 'D' , 'E', 'F'};
        char[] tempArr = new char[2];
        tempArr[0] = Digit[(mByte >>> 4) & 0X0F];
        tempArr[1] = Digit[mByte & 0X0F];

        String s = new String(tempArr);
        return s;
    }

此时页面上显示提交成功即可,然后就可以调用微信的接口来实现具体的功能了。

 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167021.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微信公众号推广_微信公众号评论点赞

    微信公众号推广_微信公众号评论点赞原标题:微信公众号分享集赞吸粉方案,人人可复制分享集赞这种方式很早就有了,不仅在微信公众号运营圈子里面盛行,很多做微商、代购的都很喜欢用这种方式吸粉,其优点是操作简单,可行性佳,获粉成本低。小编在自己博客分享了一些吸粉的文章,但很多同学反馈大多数方法操作难度大,需要很大的工作量,其中80%的朋友还觉得不擅长去做这些事情,需要对这些领域有一定的认识,并且不知道这些事情做了之后有没有效果,其实有这种担…

    2022年9月6日
    5
  • 如何使用SpringBoot AOP 记录操作日志、异常日志?

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:咫尺的梦想_w cnblogs.com/wm-dv/p/11735828.html 平时我们在做项目时经常需要…

    2021年6月25日
    139
  • Spring Boot 项目最优雅的 HTTP 客户端工具,用它就够了,太香了!

    大家都知道okhttp是一款由square公司开源的java版本http客户端工具。实际上,square公司还开源了基于okhttp进一步封装的retrofit工具,用来支持通过接…

    2021年6月22日
    129
  • 微信公众号网页开发,登录授权和微信支付

    微信公众号网页开发,登录授权和微信支付微信公众号的网页开发基本和H5移动端开发一致,主要是涉及到网页授权获取用户信息和使用js-sdk获取微信原生能力支持。开发前准备申请一个测试号:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login用自己微信扫码登录,然后扫码关注当前测试号,这里注意js接口安全域名和网页授权回调域名,需要配置为当前项目地址。使用测试号时用ip即可,但是线上必须是域名。网页授权类似把系统自己的登录体系移除,通过微信授权方式获取微信用户信息。

    2022年6月5日
    131
  • 本地用微信测试公众号开发对接微信支付思路

    本地用微信测试公众号开发对接微信支付思路本地开发对接微信时 常常用到微信测试公众号 碰到支付对接时没有微信支付测试号的存在 只能使用微信商户号产生真正的交易 辗转测试多种方案 最终本地成功测试对接 准备清单测试公众号 appid appsecret openid 微信商户号 mch id mch key 绑定了微信商户号的微信公众号 appid appsecret openid 内网穿透的域名思路 1 用手机微信访问内网穿透的域名访问测试 2 测试到微信支付时 替换测试公众号的 appid appsecret open

    2025年7月13日
    0
  • JDK1.8 中的双冒号::是什么语法?

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:Java实用技术 www.toutiao.com/i6807719546158318092/ 简洁 方法引用 …

    2021年6月25日
    82

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号