准备

微信官方文档

外网映射工具

Natapp网址ngrok

NATAPP-内网穿透 基于ngrok的国内高速内网映射工具

windows环境运行

运行   natapp -authtoken=a021a8fe913ea048

http://dm.natapp1.cc/wx/portal/ wx6f8ce0ccadf3afff

WxJava框架快速开发微信公众号

WxJava  微信公众号框架  GitHub - Wechat-Group/WxJava: 微信开发 Java SDK ,支持包括微信支付,开放平台,小程序,企业微信,公众号等的后端开发

微服务电商项目引入WxJava框架

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

java.lang.NoSuchMethodError: com.thoughtworks.xstream.io.xml.XppDriver.<init>(Lcom/thoughtworks/xstream/io/naming/NameCoder;)

错误原因是微信框架引入了xstream的版本为1.4.1 而springCloud中eureka-client也引入了xstream为了1.4.9从而版本有冲突。

正确方式:

<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>

yml配置 :

logging:
  level:
    org.springframework.web: INFO
    com.github.binarywang.demo.wx.mp: DEBUG
    me.chanjar.weixin: DEBUG
wx:
  mp:
    configs:
      - appId: wx6f8ce0ccadf3afff #(一个公众号的appid)
        secret: cf2b0b4908a84d92b38b939a6fbabe09#(公众号的appsecret)
        token: dmabc123#(接口配置里的Token值)

dm: 
  weixin: 
    registration:
       code: 
       ###微信注册码消息
        message:  您的注册码为:registrationCodeMessage。
    ###默认提示消息
    default: 
      registration:
        code: 
          message: 您的消息,我们已经收到,会及时回复给您的!

微信公众号开发案例 

案例1

关注微信公众号,在公众号输入手机号码,对应返回验证码

@Component
public class MsgHandler extends AbstractHandler {// 用户发送手机验证码提示@Value("${dm.weixin.registration.code.message}")private String registrationCodeMessage;// 默认用户发送验证码提示@Value("${dm.weixin.default.registration.code.message}")private String defaultRegistrationCodeMessage;@Overridepublic 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();}// TODO 组装回复消息// 1.验证关键字是否为手机号码类型String fromMsg = wxMessage.getContent();if (RegexUtils.checkMobile(fromMsg)) {// 如果发送消息为手机号码类型,则发送短信验证码int registCode = registCode();String retContext = registrationCodeMessage.replaceAll("registrationCodeMessage", registCode + "");return new TextBuilder().build(retContext, wxMessage, weixinService);}return new TextBuilder().build(defaultRegistrationCodeMessage, wxMessage, weixinService);}// 获取注册码private int registCode() {int registCode = (int) (Math.random() * 9000 + 1000);return registCode;}}

注意:后期可以将验证码放到redis中。

微信公众平台环境搭建相关推荐

  1. (一)微信公众号环境搭建与开发接入

    一.微信公众号平台 微信公众平台,即我们平时所说的"公众号",曾用名"官方平台"."媒体平台",但最终命名为"公众平台" ...

  2. 微信公众平台python_python搭建微信公众平台

    python基于新浪sae开发的微信公众平台,实现功能: 输入段子---回复笑话 输入开源+文章---发送消息到开源中国 输入快递+订单号---查询快递信息 输入天气---查询南京最近五天天气状况 输 ...

  3. 微信公众平台搭建与开发揭秘

    <微信公众平台搭建与开发揭秘> 基本信息 作者: 易伟    出版社:机械工业出版社 ISBN:9787111435716 上架时间:2013-8-8 出版日期:2013 年8月 开本:1 ...

  4. 使用python-aiohttp搭建微信公众平台

    aiohttp是一个基于asyncio的异步http框架,在高并发的情况下具有很好的性能,这也是我选择使用aiohttp来搭建微信公众平台的原因.但是由于网上关于aiohttp的资料较少,再加上自己对 ...

  5. 微信公众平台搭建与开发揭秘//////微信公众平台应用开发实战

    微信公众平台搭建与开发揭秘,完整扫描版 [香港回来了,累啊.这个是从http://www.ckook.com/处获得的电子书,自制的就不上传了,免得被人叽歪] <微信公众平台搭建与开发揭秘> ...

  6. 微信公众平台开发培训

    课程介绍 本次课主要内容是如何对微信公众账号进行再次开发, 不仅系统讲解微信公众平台的搭建以及使用中的难点,更重要的是系统讲解微信公众账号的开发流程和方法,通过一系列常见的公众账号应用实例的开发全过程 ...

  7. 使用JAVA开发微信公众平台(一)——环境搭建与开发接入

    转自:https://www.cnblogs.com/jerehedu/p/6377759.html 一. 初始微信公众平台 微信公众平台,即我们平时所说的"公众号",曾用名&qu ...

  8. 【微信公众平台开发之一】微信公众平台开发环境搭建

    微信公众平台二次开发的环境有3部分:微信公众账号.百度云平台.ide开发工具 当然我们也可以自己搭建服务器来代替百度平台,只要在服务器url那里改成自己对应的服务器url就行,我们后面会说到. 微信公 ...

  9. 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(MyEclipse + SVN)

    转载请标明出处,谢谢!  版本说明:     V1:          2014-3-30 版 前言: 因为要进行微信开发,就必须要成为微信开发者,要想成为微信开发者,就必须要有服务器响应微信的 To ...

最新文章

  1. DirectFB编译环境
  2. 中秋之晚开始 编程语言学习之路
  3. 不显示坐标刻度_如何使用坐标交叉位置来改变Excel图表的展现形态
  4. 物联网安全威胁及应对措施
  5. Caffe RPN:把RPN网络layer添加到caffe基础结构中
  6. Jenkins发布MVC应用程序
  7. think php 子查询,使用thinkPHP怎么实现一个子查询语句
  8. Java 8 golang 1.8_Java8 新特性(一) - Lambda
  9. leetcode组队学习——查找(二)
  10. clearcase 操作指南
  11. NYOJ 412 Same binary weight题解
  12. C语言 输出斐波那契数列
  13. JavaScript几种继承方式
  14. 织梦dedecms网站地图生成在根目录的开发教程
  15. angular ng lint 相关
  16. SSM框架实战详细教程(十四)贯穿项目实战之三层架构
  17. Linux内核之vmlinux与vmlinuz
  18. MarkdownPad 使用 MathJax
  19. OCR文字识别怎么识别?
  20. VLC 媒体播放器将登陆 Apple TV

热门文章

  1. 你是那种只看《XXXXX从入门到精通》的程序员吗?
  2. 杜亥姆—马居耳公式(Duhem-Margule equations)及其应用
  3. 基于Java毕业设计疫情期间物资分派管理系统源码+系统+mysql+lw文档+部署软件
  4. Nginx中保持长连接的配置
  5. Kibana Unable to connect to Elasticsearch at http.....30000
  6. SIEMENS SIMATIC STEP 7 v5.7 Professional 2021
  7. 架构演进思路--淘宝
  8. CMPP3 消息定义2
  9. C语言多线程求和并比较时间
  10. 去中心化的前端构建工具 — Vite