微信公众平台环境搭建

准备

微信官方文档

外网映射工具

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;

	@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();
		}

		// 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知始行末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值