第一步先下载官方Demo https://github.com/binarywang/weixin-java-mp-demo-springboot
下载好后,导入demo,把application.yml.template改为application.yml
Image 1.png

创建一个微信开发的项目,引入maven依赖,这里用的是聚合工程,父工程已经有spring boot依赖了(如果是单独的项目还需要引入spring boot依赖

<dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>weixin-java-mp</artifactId>
    <version>3.3.0</version>
    <exclusions>
        <exclusion>
            <artifactId>xstream</artifactId>
            <groupId>com.thoughtworks.xstream</groupId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>
        spring-cloud-starter-netflix-eureka-client
    </artifactId>
    <exclusions>
        <exclusion>
            <artifactId>xstream</artifactId>
            <groupId>com.thoughtworks.xstream</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <artifactId>xstream</artifactId>
    <groupId>com.thoughtworks.xstream</groupId>
    <version>1.4.10</version>
</dependency>

第三步开始整合,把demo中的所以类和application.yml文件复制到项目中
Image 4.png

修改application.yml文件
logging:
  level:
    org.springframework.web: INFO
    com.github.binarywang.demo.wx.mp: DEBUG
    me.chanjar.weixin: DEBUG
wx:
  mp:
    configs:
      ##个人真实公众号配置信息
      - appId: wxc0e8abb4f8611009 #(一个公众号的appid)
        secret: 0f723f884c06dadf3f29187c721ab8f9 #(公众号的appsecret)
        token: shop #(接口配置里的Token值)
        aesKey: t69PlKgV4hT1yItjYJkhO1k7iYC1Hr2IhGL10VCsUD0
      
      ##微信官方测试公众号配置(测试用)
      - appId: wxdea7292b7998fc4a #(一个公众号的appid)
        secret: db88cecb2096f1214bb9dcb8ef21bce5 #(公众号的appsecret)
        token: shop #(接口配置里的Token值)
server:
    port: 8500

shop:
  weixin:
    registration:
      code:
        ###微信注册码消息
        message:  您的注册码为:%s,感觉您的支持!
    ###默认提示消息
    default:
      registration:
        code:
          message: 您的手机号码不正确,请重新输入!

配置信息在微信公众号平台---->基本设置
Image 7.png
代码演示图
Image 6.png
第四步引入正则工具类(判断手机号码需要用)
正则表达式验证工具类RegexUtils https://songzixian.com/javatuils/595.html
如图
Image 8.png
第五步:把rweixin-java-mp-demo-springboot-maste项目的包全部拷贝到开发项目中进行整合
截图 1.png
第六步:打开handler包下的MsgHandler类进行写代码

@Component
public class MsgHandler extends AbstractHandler {

    // 用户发送手机验证码提示
    @Value("${shop.weixin.registration.code.message}")
    private String registrationCodeMessage;

    // 默认用户发送验证码提示
    @Value("${shop.weixin.default.registration.code.message}")
    private String defaultRegistrationCodeMessage;


    @Override
    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
                                    Map<String, Object> context, WxMpService weixinService,
                                    WxSessionManager sessionManager) {

        if (!wxMessage.getMsgType().equals(XmlMsgType.EVENT)) {
            //TODO 可以选择将消息保存到本地
        }

        //当用户输入关键词如“你好”,“客服”等,并且有客服在线时,把消息转发给在线客服
        try {
            if (StringUtils.startsWithAny(wxMessage.getContent(), "你好", "客服")
                && weixinService.getKefuService().kfOnlineList()
                .getKfOnlineList().size() > 0) {
                return WxMpXmlOutMessage.TRANSFER_CUSTOMER_SERVICE()
                    .fromUser(wxMessage.getToUser())
                    .toUser(wxMessage.getFromUser()).build();
            }
        } catch (WxErrorException e) {
            e.printStackTrace();
        }

        //1.获取客户端发送的消息  getContent(内容)
        String formContent =wxMessage.getContent();

        //2.使用正则表达式验证消息是否为手机号码格式
        if(RegexUtils.checkMobile(formContent)){//formContent是用户输入的手机

            //3.如果手机号码正确,生成四位随机数字做为手机注册码
            int registCode = registCode();

            String content = registrationCodeMessage.format(registrationCodeMessage,registCode );


            return new TextBuilder().build(content,wxMessage,weixinService);
        }
        //如果输入的手机号码不正确,返回错误提示
        return new TextBuilder().build(defaultRegistrationCodeMessage,wxMessage,weixinService);


    }

    //生成随机数
    private int registCode(){
        int registCode = (int) (Math.random()*9000+1000);
        System.out.println("注册码:"+registCode);
        return registCode;
    }

}

如图:
Image 9.png
启动项目

@SpringBootApplication
public class WxMpDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(WxMpDemoApplication.class, args);
    }
}

进行测试
微信图片_20190518064404.png
到这里就开发完成了

Last modification:August 18, 2019
如果觉得这篇技术文章对你有用,请随意赞赏