微信公众号发送手机号返回验证码

java引入WxJava框架
WxJava消息接受处理有返回在MsgHandler

微信公众号发送手机号返回验证码

  1. MsgHandler中判断传递参数时候为手机号,如果为手机号则生成验证码,存入redis之后返回
@Component
public class MsgHandler extends AbstractHandler {

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

        WeixinService weixinService = (WeixinService) wxMpService;

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

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

		//发送手机号返回验证码
		//1.判断请求信息是否为手机号
		String message = wxMessage.getContent();
		if (RegexUtils.checkMobile(message)) {
		    //2. 获取一个验证码
		    String authCode = SecurityCode.getSecurityCode();
		    //3. 将验证码存入redis中
		    redisUtil.setString(Constants.WEIXINCODE_KEY + message,authCode,Constants.WEIXINCODE_TIMEOUT);
		    //3.返回消息
		    return new TextBuilder().build("您的验证码为:" + authCode, wxMessage, weixinService);
		}
		        
	        //TODO 组装回复消息
        String content = "回复信息内容";
        return new TextBuilder().build(content, wxMessage, weixinService);

    }

}

RegexUtils 正则表达式验证工具
SecurityCode 验证码工具类
RedisUtil redis工具类

结果返回为生成的验证码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值