Java微信服务号的开发(简单入门)

进行微信服务号开发的步骤

一个别人已经搭建好的项目参考地址:下载链接

 

1.搭建微信服务号的服务器

项目配置maven

<dependency>
  <groupId>com.soecode.wx-tools</groupId>
  <artifactId>wx-tools</artifactId>
  <version>2.1.4-RELEASE</version>
</dependency>

配置微信参数

#配置如下
wx.appId=你的appId
wx.appSecret=你的appSecret
wx.token=你设置的token
wx.aesKey=如果选择安全模式,需要填入。如果是明文模式,填空就好了
wx.mchId=商户ID

controller

package com.jt.wx.controller;

import com.soecode.wxtools.api.IService;
import com.soecode.wxtools.api.WxMessageRouter;
import com.soecode.wxtools.api.WxService;
import com.soecode.wxtools.bean.WxXmlMessage;
import com.soecode.wxtools.util.xml.XStreamTransformer;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@RestController
@RequestMapping("/wx")
public class WxController {

    private IService iService = new WxService();

    @GetMapping
    public String check(String signature, String timestamp, String nonce, String echostr) {
        if (iService.checkSignature(signature, timestamp, nonce, echostr)) {
            return echostr;
        }
        return null;
    }

    @PostMapping
    public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();

        // 创建一个路由器
        WxMessageRouter router = new WxMessageRouter(iService);
        try {
            // 微信服务器推送过来的是XML格式。
            WxXmlMessage wx = XStreamTransformer.fromXml(WxXmlMessage.class, request.getInputStream());
            System.out.println("消息:\n " + wx.getContent());

            out.println(router.route(wx));
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            out.close();
        }

    }


}

2.映射服务器到服务号上面

如何使用内网映射?

我这边找了下CSDN之前的博客,基本上推荐的方法有

1.花生壳,2ngrok

花生壳我去官网瞟了一眼基本上都是付费的,我就简单入个门所以不考虑

2.ngrok推荐上国内的官网上面,国外的可能有墙还是怎么的,映射失败

www.ngrok.cc

端口号选择80,红框内的一定不要填写

本地启动ngork:

3.公众号与服务器关联起来

没有公众号的申请链接

appID,和appsecret,需要和服务器上面的一致

URL:是映射的外网地址,通过ngork映射的地址.注意增加controller的RequestMapping的值作为后缀

Token:是自己定义的与服务器保持一致就可以

4.效果测试

 

项目参考:下载链接

转载于:https://www.cnblogs.com/shenyanrushang/p/10852479.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值