微信公众号开发(一)

开始接入

因微信公众号开发需要实际注册公众号服务,所以这边采用微信测试号进行开发。

传送门: 微信公众平台接口测试帐号申请

所谓的代公众号指的就是将公众号授权给第三方平台进行管理,第三方平台拥有全部或部分的该公众号的接口权限,可以帮助管理运营公众号。

此处展示的为测试号后台配置

公众平台配置

在这里插入图片描述

消息加解密方式选择安全模式。启用服务器配置时,微信需要验证所填服务器地址url是否可用,开发时使用内网穿透外网工具。url的接口开发完成后才能保存成功。

  • IP白名单不要忘记配置,多个IP换行分隔。
  • 如果启用了服务器配置,微信公众平台将不再提供自定义菜单、自动回复等基础功能,平台上原有的菜单将会失效。

img

场景:公众号由运营人员运营,开发人员需要在自家的产品上嵌入公众号。很尴尬的情况出现了,运营人员不能放弃使用微信公众平台,开发人员需要接入公众号。对于这种情况,可以在公众号关闭服务器配置,将公众号授权给第三方平台,微信会将公众号的事件推送给第三方平台,以第三方平台的方式进行开发。(意思就是自己开发一个第三方模块,替换掉微信公众号因服务器配置而关闭的服务。)

开发前准备

配置文件中添加appID和appsecret

#微信公众号配置
wx:
  mp:
    #公众号开发者ID
    app-id: 微信管理后台提供的公众号appId
    #开发者密码
    secret: 微信管理后台提供的公众号开发者密码
    #消息加解密密钥
    encodingAESKey: 微信管理后台提供的加解密密钥

后端微信接入接口(填写url时,ip要用内网穿透工具解析成外网域名)

  /**
     * 微信接入接口
     * @param request
     * @param response
     * @throws IOException
     * @throws WxErrorException
     */
    @RequestMapping(value = "/test",method = RequestMethod.GET)
    @ResponseBody
    public Object init(HttpServletRequest request , HttpServletResponse response) throws IOException {
        String signature = request.getParameter("signature");
        String timestamp = request.getParameter("timestamp");
        String nonce = request.getParameter("nonce");
        String echostr = request.getParameter("echostr");

        String[] arrs = {WeinController.TOKEN,nonce,timestamp};
        Arrays.sort(arrs);
        StringBuffer sb = new StringBuffer();
        for (String a : arrs){
            sb.append(a);
        }
        String sha1 = SecurtiyKit.sha1(sb.toString());
        System.out.println(sha1);
        if(sha1.equals(signature)){
            System.out.println("接入成功");
                return echostr;
        }
        System.out.println("接入失败");
        return null;
    }

定义TOKEN(此处在微信公众配置处同步设置)

 public static  final  String TOKEN = "weixin";

sh1加密方法

   public  String sha1(String str){
        try {
            StringBuffer sb = new StringBuffer();
            MessageDigest md = null;
            md = MessageDigest.getInstance("sha1");
            md.update(str.getBytes());
            byte[] msg = md.digest();
            for (byte b :msg){
                sb.append(String.format("%02x",b));
            }
            return  sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return  null;
    }

点击配置提交 通过验证接口验证成功即配置成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cqr6cjzg-1670229224490)(C:\Users\zyh\AppData\Roaming\Typora\typora-user-images\image-20220707113123281.png)]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值