部署微信公众号项目的基本步骤

部署微信公众号和小程序项目的基本步骤

前言

最近公司刚完成了一个微信公众号和小程序配套的一个小项目,需要我去线上部署,因为第一次部署这类项目,过程中遇到了很多坑,因此把其中一些重要的步骤记录下来,防止以后在此踩坑。


一、微信公众号的项目部署

说明:以下部署步骤仅仅是我个人的部署方式,可能有些做法和顺序是错误的,每个人结合自身情况来做,文章内容仅供参考。

二、详细步骤

1.申请认证公众号

公司申请并认证微信公众号,此步骤略。

2. 基础设置

首先进入公众号后台,找到基础设置:
部署微信公众号项目的基本步骤_第1张图片
部署微信公众号项目的基本步骤_第2张图片
截图的开发者密码已经申请。正常情况第一次进去以后要根据提示申请并认真记录开发者密码,如果遗忘需要重置密码。

拿到AppId 和 AppSecret之后,根据需求进行服务器配置,进入公众号–》开发–》基础配置
部署微信公众号项目的基本步骤_第3张图片
此时配置未启动,点击修改配置(如下图示例)部署微信公众号项目的基本步骤_第4张图片
配置好以后,点击提交 按钮时,会向填写的URL发送一个GET请求,以此验证服务器信息是否正确。服务器接收如下:

    @GetMapping(value = "/test/wx")
    @ApiOperation(value = "微信", httpMethod = "GET")
    public String wxFirm(@RequestParam(value = "signature", required = false) String signature,
                         @RequestParam(value = "timestamp", required = false) String timestamp,
                         @RequestParam(value = "nonce", required = false) String nonce,
                         @RequestParam(value = "echostr", required = false) String echostr) {
      String str= null;
        try {
            str = wxFirm1(signature, timestamp, nonce, echostr);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return str;

    }
    public String wxFirm1(String signature, String timestamp, String nonce,String echostr) throws Exception {
        String checktext = null;
        System.out.println("signature"+signature);
        System.out.println("timestamp"+timestamp);
        System.out.println("nonce"+nonce);
        System.out.println("echostr"+echostr);
        if (null != signature) {
            // 对ToKen,timestamp,nonce 按字典排序,这里需要注意的是”abc123“和我们在微信公众号内配置的一样。
            String[] paramArr = new String[] { "abc123", timestamp, nonce };
            Arrays.sort(paramArr);
            // 将排序后的结果拼成一个字符串
            String content = paramArr[0].concat(paramArr[1]).concat(paramArr[2]);

            try {
                MessageDigest md = MessageDigest.getInstance("SHA-1");
                // 对接后的字符串进行sha1加密
                byte[] digest = md.digest(content.toString().getBytes());
                checktext = byteToStr(digest);
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
        }
        System.out.println(checktext);
        // 将加密后的字符串与signature进行对比
        if(checktext.equals(signature.toUpperCase())) {
            return echostr;
        }else {
            return "false";
        }

    }

如果配置成功,会保存成功,如果配置失败,则会有相应提示。
这里需要注意的是,配置该信息的时候,使用的是get请求,但是后续接收公众号转发过来的消息的是post请求,所以这里保存成功以后,要把get请求改为post请求,否则接收消息会报错。

服务器信息配置完以后,需要配置白名单,否则在获取access_token等信息的时候会报错,not in whitelist ,添加位置如下:
在这里插入图片描述
部署微信公众号项目的基本步骤_第5张图片
建议将服务器IP地址和本地测试地址添加。

3、设置菜单

菜单设置相对较为简单,只要有微信公众号的AppId和AppSeret
即可,这里附上微信提供的接口调试工具:

微信公众平台接口调试工具(https://mp.weixin.qq.com/debug)
1)首先填写信息获取access_token:如下图
部署微信公众号项目的基本步骤_第6张图片
将上述得到的access_token复制进行下一步

2)设置菜单如下图(填写access_token即可):
部署微信公众号项目的基本步骤_第7张图片
这里提供一份菜单JSON的文件模板:

{
    "button": [
	{
            "name": "互联网医院", 
            "sub_button": [
                {
                    "type": "view", 
                    "name": "关于互联网医院", 
                    "url": "https://www.baidu.com"
                }, 
                {
                    "type": "view", 
                    "name": "历史推文", 
                    "url": "https://www.baidu.com"
                }
            ]
        }, 
        {
            "type": "view", 
            "name": "在线问诊", 
            "url": "https://www.baidu.com"
        }, 
        {
            "type": "view", 
            "name": "自助下单", 
            "url": "https://www.baidu.com"
        }
    ]
}

菜单效果如下:
部署微信公众号项目的基本步骤_第8张图片

4、授权目录

用户点击公众号的时候,我们必然想要获得一些用户信息,比如用户的OpenId、头像等,但是获得信息的文件目录必须是在微信授权过的,所以需要我们自己配置。
进入公众号后台,设置–》公众号设置–》功能设置
如下图:
部署微信公众号项目的基本步骤_第9张图片
部署微信公众号项目的基本步骤_第10张图片
点击设置,仔细阅读上述文件。

这大概是基本步骤,剩下的步骤有时间在补充。如果错误,请评论指正。

总结

这大概是基本步骤,剩下的步骤有时间在补充。如果错误,请评论指正。

你可能感兴趣的:(微信公众号,JAVA,项目部署,java,小程序,其他)