小程序消息服务器配置+SpringBoot 后台接口校验。

有时候需要服务端和客户端之间联调进行断点定位问题。通常可以设置局域网中的本地IP地址进行联调。但有时候不处于同一局域网,又没有公网IP的情况下。也需要远程联调定位。

拿公众号的开发服务器配置来演示下这种类似的使用场景吧。

环境及服务器关系说明:

啊里云

1.A机 : nginx 反向代理机器 : 47.xx.xx.110                     对应的域名为   test.fengsh998.com

2.B机 : SpringBoot 发布用到的环境啊里云: 102.xx.xx.119      端口 9099 

3.个人开发电脑IDEA:用于调试SpringBoot 提供的接口(接口名为:message)。

访问链路说明:

 访问 : https://test.fengsh998.com  经域名解释到47.xx.xx.110然后通过nginx 反向代理跳转到102.xx.xx.119:9099.

对于第一步nginx这个不是必要的,只不过我今天是拿微信小程序消息服务配置来做说明的。

正常客户端访问test.fengsh998.com解释到102.xx.xx.119这个就好了。

关于nginx反向代理怎么配置本文就不阐述了。

springboot :开放一个message接口主要是用来校验用的。

@RestController
public class wxApiController {
    @RequestMapping(value = "/message")
    public String wxmessage(String signature, String timestamp, String nonce, String echostr) {

        String token = "g428qcmzqt95kswnwej9alq1dpo71ttw";
        String aesKey = "hmMh6H5Ubp1fJkEItJT9ABywRUge8kUl0hb7UYk7aRP";

        /*
        1.将token、timestamp、nonce三个参数进行字典序排序
        2.将三个参数字符串拼接成一个字符串进行sha1加密
        3.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
        */
        String[] strarr = {token,timestamp,nonce};
        Arrays.sort(strarr);
        StringBuilder sb = new StringBuilder();
        for (String str : strarr) {
            sb.append(str);
        }

        String laststring = sb.toString();

        String checksign = this.sha1(laststring);

        if (checksign != null && checksign.equals(signature)) {
            return echostr;
        }

        return "Error";
    }

    private String sha1(String str) {
        try {
            MessageDigest digest = MessageDigest.getInstance("SHA-1");
            digest.update(str.getBytes());
            byte messageDigest[] = digest.digest();
            // 创建 16进制字符串
            StringBuffer hexString = new StringBuffer();
            // 字节数组转换为 十六进制 数
            for (int i = 0; i < messageDigest.length; i++) {
                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexString.append(0);
                }
                hexString.append(shaHex);
            }
            return hexString.toString();

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return "";
    }
}

将springboot打个jar包,发布到 102.xx.xx.119这台机上,记得配置的时候设置端口,当然根据自己需求来设端口,我这里设置了9099。然后使用

java -jar  [打出来的jar包名]

然后在浏器里输入

http://102.xx.xx.119:9099/message?signature=werw×tamp=345433&nonce=ewe&echostr=reter

小程序消息服务器配置+SpringBoot 后台接口校验。_第1张图片

可以看到随便输入一些参数就可以调用到接口了,只不过现在校验不OK而已。

现在开始设置远程Debug设置。

小程序消息服务器配置+SpringBoot 后台接口校验。_第2张图片

 添加一个remote,然后进行相关配置

小程序消息服务器配置+SpringBoot 后台接口校验。_第3张图片

然后在发布的那台啊里云机器上执行

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 message-0.0.1-SNAPSHOT.jar --server.port=9099

其中红色部分就是从图中配置的位置COPY出来的。紫色这个是打出来要发布的jar包。最后是启动的端口。

小程序消息服务器配置+SpringBoot 后台接口校验。_第4张图片

等这个启动OK后。就可以在idea中开启debug

小程序消息服务器配置+SpringBoot 后台接口校验。_第5张图片

可以看到成功连接到102.xx.xx.119这台机启动的5005端口上

然后浏览上输入

http://102.xx.xx.119:9099/message?signature=werw×tamp=345433&nonce=ewe&echostr=reter

再看下断点。可以看到启作用了。

小程序消息服务器配置+SpringBoot 后台接口校验。_第6张图片

最后,既然远程调试可以OK了,那么可以配置下消息服务器了。

小程序消息服务器配置+SpringBoot 后台接口校验。_第7张图片

然后就会触发断点。这样主可以进行调试微信的这个验证接口了。

 

 

 

 

 

你可能感兴趣的:(JAVA)