| @@ -58,6 +58,32 @@ public class FmOpenService extends WxOpenServiceImpl { | |||
| @Autowired | |||
| protected WeappAuditHandler weappAuditHandler; | |||
| @Autowired | |||
| protected CardCheckHandler cardCheckHandler; // 2.1 | |||
| @Autowired | |||
| protected CardUserGetCardHandler cardUserGetCardHandler; // 2.2 | |||
| @Autowired | |||
| protected CardUserGiftingCardHandler cardUserGiftingCardHandler; // 2.3 | |||
| @Autowired | |||
| protected CardUserDelCardHandler cardUserDelCardHandler; // 2.4 | |||
| @Autowired | |||
| protected CardUserConsumeCardHandler cardUserConsumeCardHandler; // 2.5 | |||
| @Autowired | |||
| protected CardUserPayHandler cardUserPayHandler; // 2.6 | |||
| @Autowired | |||
| protected CardUserViewCardHandler cardUserViewCardHandler; // 2.7 | |||
| @Autowired | |||
| protected CardUserEnterSessionHandler cardUserEnterSessionHandler; // 2.8 | |||
| @Autowired | |||
| protected CardUpdateMemberCardHandler cardUpdateMemberCardHandler; // 2.9 | |||
| @Autowired | |||
| protected CardSkuRemindHandler cardSkuRemindHandler; // 2.10 | |||
| @Autowired | |||
| protected CardPayOrderHandler cardPayOrderHandler; // 2.11 | |||
| @Autowired | |||
| protected CardSubmitMemCardHandler cardSubmitMemCardHandler; // 2.12 | |||
| private static JedisPool pool; | |||
| private WxOpenMessageRouter wxOpenMessageRouter; | |||
| @@ -148,6 +174,72 @@ public class FmOpenService extends WxOpenServiceImpl { | |||
| .event(WxConsts.EventType.WEAPP_AUDIT_FAIL) | |||
| .handler(this.weappAuditHandler).end(); | |||
| // 卡券事件推送 | |||
| // 审核事件推送 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_PASS_CHECK) | |||
| .handler(this.cardCheckHandler).end(); | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_NOT_PASS_CHECK) | |||
| .handler(this.cardCheckHandler).end(); | |||
| // 领取事件推送 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_USER_GET_CARD) | |||
| .handler(this.cardUserGetCardHandler).end(); | |||
| // 转赠事件推送 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_USER_GIFTING_CARD) | |||
| .handler(this.cardUserGiftingCardHandler).end(); | |||
| // 删除事件推送 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_USER_DEL_CARD) | |||
| .handler(this.cardUserDelCardHandler).end(); | |||
| // 核销事件推送 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_USER_CONSUME_CARD) | |||
| .handler(this.cardUserConsumeCardHandler).end(); | |||
| // 买单事件推送 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_USER_PAY_FROM_PAY_CELL) | |||
| .handler(this.cardUserPayHandler).end(); | |||
| // 进入会员卡事件推送 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_USER_VIEW_CARD) | |||
| .handler(this.cardUserViewCardHandler).end(); | |||
| // 从卡券进入公众号会话事件推送 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_USER_ENTER_SESSION_FROM_CARD) | |||
| .handler(this.cardUserEnterSessionHandler).end(); | |||
| // 会员卡内容更新事件 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_UPDATE_MEMBER_CARD) | |||
| .handler(this.cardUpdateMemberCardHandler).end(); | |||
| // 库存报警事件 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_SKU_REMIND) | |||
| .handler(this.cardSkuRemindHandler).end(); | |||
| // 券点流水详情事件 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_PAY_ORDER) | |||
| .handler(this.cardPayOrderHandler).end(); | |||
| // 会员卡激活事件推送 | |||
| wxOpenMessageRouter.rule().async(false) | |||
| .msgType(WxConsts.XmlMsgType.EVENT) | |||
| .event(WxConsts.EventType.CARD_PAY_ORDER) | |||
| .handler(this.cardSubmitMemCardHandler).end(); | |||
| // 默认 | |||
| wxOpenMessageRouter.rule().async(false).handler(this.msgHandler).end(); | |||
| } | |||
| @@ -5,7 +5,7 @@ import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| public abstract class AbstractHandler implements WxMpMessageHandler { | |||
| protected Logger logger = LoggerFactory.getLogger(getClass()); | |||
| @@ -0,0 +1,41 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.1 审核事件推送 | |||
| */ | |||
| @Component | |||
| public class CardCheckHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| * <xml> | |||
| * <ToUserName><![CDATA[toUser]]></ToUserName> | |||
| * <FromUserName><![CDATA[FromUser]]></FromUserName> | |||
| * <CreateTime>123456789</CreateTime> | |||
| * <MsgType><![CDATA[event]]></MsgType> | |||
| * <Event><![CDATA[card_pass_check]]></Event> //不通过为card_not_pass_check | |||
| * <CardId><![CDATA[cardid]]></CardId> | |||
| * <RefuseReason><![CDATA[非法代制]]></RefuseReason> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_PASS_CHECK)) { | |||
| } else if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_NOT_PASS_CHECK)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,50 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.11 券点流水详情事件 | |||
| */ | |||
| @Component | |||
| public class CardPayOrderHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| * <xml> | |||
| * <ToUserName><![CDATA[gh_7223c83d4be5]]></ToUserName> | |||
| * <FromUserName><![CDATA[ob5E7s-HoN9tslQY3-0I4qmgluHk]]></FromUserName> | |||
| * <CreateTime>1453295737</CreateTime> | |||
| * <MsgType><![CDATA[event]]></MsgType> | |||
| * <Event><![CDATA[card_pay_order]]></Event> | |||
| * <OrderId><![CDATA[404091456]]></OrderId> | |||
| * <Status><![CDATA[ORDER_STATUS_FINANCE_SUCC]]></Status> | |||
| * <CreateOrderTime>1453295737</CreateOrderTime> | |||
| * <PayFinishTime>0</PayFinishTime> | |||
| * <Desc><![CDATA[]]></Desc> | |||
| * <FreeCoinCount><![CDATA[200]]></FreeCoinCount> | |||
| * <PayCoinCount><![CDATA[0]]></PayCoinCount> | |||
| * <RefundFreeCoinCount><![CDATA[0]]></RefundFreeCoinCount> | |||
| * <RefundPayCoinCount><![CDATA[0]]></RefundPayCoinCount> | |||
| * <OrderType><![CDATA[ORDER_TYPE_SYS_ADD]]></OrderType> | |||
| * <Memo><![CDATA[开通账户奖励]]></Memo> | |||
| * <ReceiptInfo><![CDATA[]]></ReceiptInfo> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_PAY_ORDER)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,40 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.10 库存报警事件 | |||
| */ | |||
| @Component | |||
| public class CardSkuRemindHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| * <xml> | |||
| * <ToUserName><![CDATA[gh_2d62d*****0]]></ToUserName> | |||
| * <FromUserName><![CDATA[oa3LFuBvWb7*********]]></FromUserName> | |||
| * <CreateTime>1443838506</CreateTime> | |||
| * <MsgType><![CDATA[event]]></MsgType> | |||
| * <Event><![CDATA[card_sku_remind]]></Event> | |||
| * <CardId><![CDATA[pa3LFuAh2P65**********]]></CardId> | |||
| * <Detail><![CDATA[the card's quantity is equal to 0]]></Detail> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_SKU_REMIND)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,40 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.12 会员卡激活事件推送 | |||
| */ | |||
| @Component | |||
| public class CardSubmitMemCardHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| * <xml> | |||
| * <ToUserName> <![CDATA[gh_3fcea188bf78]]></ToUserName> | |||
| * <FromUserName><![CDATA[obLatjlaNQKb8FqOvt1M1x1lIBFE]]></FromUserName> | |||
| * <CreateTime>1432668700</CreateTime> | |||
| * <MsgType><![CDATA[event]]></MsgType> | |||
| * <Event><![CDATA[submit_membercard_user_info]]></Event> | |||
| * <CardId><![CDATA[pbLatjtZ7v1BG_ZnTjbW85GYc_E8]]></CardId> | |||
| * <UserCardCode><![CDATA[018255396048]]></UserCardCode> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_SUBMIT_MEMBERCARD_USER_INFO)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,42 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.9 会员卡内容更新事件 | |||
| */ | |||
| @Component | |||
| public class CardUpdateMemberCardHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| * <xml> | |||
| * <ToUserName><![CDATA[gh_9e1765b5568e]]></ToUserName> | |||
| * <FromUserName><![CDATA[ojZ8YtyVyr30HheH3CM73y7h4jJE]]></FromUserName> | |||
| * <CreateTime>1445507140</CreateTime> | |||
| * <MsgType><![CDATA[event]]></MsgType> | |||
| * <Event><![CDATA[update_member_card]]></Event> | |||
| * <CardId><![CDATA[pjZ8Ytx-nwvpCRyQneH3Ncmh6N94]]></CardId> | |||
| * <UserCardCode><![CDATA[485027611252]]></UserCardCode> | |||
| * <ModifyBonus>3</ModifyBonus> | |||
| * <ModifyBalance>0</ModifyBalance> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_UPDATE_MEMBER_CARD)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,46 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.5 核销事件推送 | |||
| */ | |||
| @Component | |||
| public class CardUserConsumeCardHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| * <xml> | |||
| * <ToUserName> <![CDATA[gh_fc0a06a20993]]> </ToUserName> | |||
| * <FromUserName> <![CDATA[oZI8Fj040-be6rlDohc6gkoPOQTQ]]> </FromUserName> | |||
| * <CreateTime>1472549042</CreateTime> | |||
| * <MsgType> <![CDATA[event]]> </MsgType> | |||
| * <Event> <![CDATA[user_consume_card]]> </Event> | |||
| * <CardId> <![CDATA[pZI8Fj8y-E8hpvho2d1ZvpGwQBvA]]> </CardId> | |||
| * <UserCardCode> <![CDATA[452998530302]]> </UserCardCode> | |||
| * <ConsumeSource> <![CDATA[FROM_API]]> </ConsumeSource> | |||
| * <LocationName> <![CDATA[]]> </LocationName> | |||
| * <StaffOpenId> <![CDATA[oZ********nJ3bPJu_Rtjkw4c]]> </StaffOpenId> | |||
| * <VerifyCode> <![CDATA[]]> </VerifyCode> | |||
| * <RemarkAmount> <![CDATA[]]> </RemarkAmount> | |||
| * <OuterStr> <![CDATA[xxxxx]]> </OuterStr> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_USER_CONSUME_CARD)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,40 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.4 删除事件推送 | |||
| */ | |||
| @Component | |||
| public class CardUserDelCardHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| *<xml> | |||
| * <ToUserName><![CDATA[toUser]]></ToUserName> | |||
| * <FromUserName><![CDATA[FromUser]]></FromUserName> | |||
| * <CreateTime>123456789</CreateTime> | |||
| * <MsgType><![CDATA[event]]></MsgType> | |||
| * <Event><![CDATA[user_del_card]]></Event> | |||
| * <CardId><![CDATA[cardid]]></CardId> | |||
| * <UserCardCode><![CDATA[12312312]]></UserCardCode> | |||
| *</xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_USER_DEL_CARD)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,40 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.8 从卡券进入公众号会话事件推送 | |||
| */ | |||
| @Component | |||
| public class CardUserEnterSessionHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| * <xml> | |||
| * <ToUserName><![CDATA[toUser]]></ToUserName> | |||
| * <FromUserName><![CDATA[FromUser]]></FromUserName> | |||
| * <CreateTime>123456789</CreateTime> | |||
| * <MsgType><![CDATA[event]]></MsgType> | |||
| * <Event><![CDATA[user_enter_session_from_card]]></Event> | |||
| * <CardId><![CDATA[cardid]]></CardId> | |||
| * <UserCardCode><![CDATA[12312312]]></UserCardCode> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_USER_ENTER_SESSION_FROM_CARD)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,48 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.2 领取事件推送 | |||
| */ | |||
| @Component | |||
| public class CardUserGetCardHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| *<xml> | |||
| * <ToUserName> <![CDATA[gh_fc0a06a20993]]> </ToUserName> | |||
| * <FromUserName> <![CDATA[oZI8Fj040-be6rlDohc6gkoPOQTQ]]> </FromUserName> | |||
| * <CreateTime>1472551036</CreateTime> | |||
| * <MsgType> <![CDATA[event]]> </MsgType> | |||
| * <Event> <![CDATA[user_get_card]]> </Event> | |||
| * <CardId> <![CDATA[pZI8Fjwsy5fVPRBeD78J4RmqVvBc]]> </CardId> | |||
| * <IsGiveByFriend>0</IsGiveByFriend> | |||
| * <UserCardCode> <![CDATA[226009850808]]> </UserCardCode> | |||
| * <FriendUserName> <![CDATA[]]> </FriendUserName> | |||
| * <OuterId>0</OuterId> | |||
| * <OldUserCardCode> <![CDATA[]]> </OldUserCardCode> | |||
| * <OuterStr> <![CDATA[12b]]> </OuterStr> | |||
| * <IsRestoreMemberCard>0</IsRestoreMemberCard> | |||
| * <IsRecommendByFriend>0</IsRecommendByFriend> | |||
| * <UnionId>o6_bmasdasdsad6_2sgVt7hMZOPfL</UnionId> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_USER_GET_CARD)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,43 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.3 转赠事件推送 | |||
| */ | |||
| @Component | |||
| public class CardUserGiftingCardHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| *<xml> | |||
| * <ToUserName><![CDATA[gh_3fcea188bf78]]></ToUserName> | |||
| * <FromUserName><![CDATA[obLatjjwDolFjRRd3doGIdwNqRXw]]></FromUserName> | |||
| * <CreateTime>1474181868</CreateTime> | |||
| * <MsgType><![CDATA[event]]></MsgType> | |||
| * <Event><![CDATA[user_gifting_card]]></Event> | |||
| * <CardId><![CDATA[pbLatjhU-3pik3d4PsbVzvBxZvJc]]></CardId> | |||
| * <UserCardCode><![CDATA[297466945104]]></UserCardCode> | |||
| * <IsReturnBack>0</IsReturnBack> | |||
| * <FriendUserName><![CDATA[obLatjlNerkb62HtSdQUx66C4NTU]]></FriendUserName> | |||
| * <IsChatRoom>0</IsChatRoom> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_USER_GIFTING_CARD)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,44 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.6 买单事件推送 | |||
| */ | |||
| @Component | |||
| public class CardUserPayHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| * <xml> | |||
| * <ToUserName><![CDATA[gh_e2243xxxxxxx]]></ToUserName> | |||
| * <FromUserName><![CDATA[oo2VNuOUuZGMxxxxxxxx]]></FromUserName> | |||
| * <CreateTime>1442390947</CreateTime> | |||
| * <MsgType><![CDATA[event]]></MsgType> | |||
| * <Event><![CDATA[user_pay_from_pay_cell]]></Event> | |||
| * <CardId><![CDATA[po2VNuCuRo-8sxxxxxxxxxxx]]></CardId> | |||
| * <UserCardCode><![CDATA[38050000000]]></UserCardCode> | |||
| * <TransId><![CDATA[10022403432015000000000]]></TransId> | |||
| * <LocationId>291710000</LocationId> | |||
| * <Fee><![CDATA[10000]]></Fee> | |||
| * <OriginalFee><![CDATA[10000]]> </OriginalFee> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_USER_PAY_FROM_PAY_CELL)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,41 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Stormeye Wu | |||
| * 2.7 进入会员卡事件推送 | |||
| */ | |||
| @Component | |||
| public class CardUserViewCardHandler extends AbstractHandler { | |||
| @Override | |||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | |||
| Map<String, Object> context, WxMpService wxMpService, | |||
| WxSessionManager sessionManager) { | |||
| /** | |||
| * <xml> | |||
| * <ToUserName> <![CDATA[gh_fcxxxx6a20993]]> </ToUserName> | |||
| * <FromUserName> <![CDATA[oZI8Fj040-xxxxx6gkoPOQTQ]]> </FromUserName> | |||
| * <CreateTime>1467811138</CreateTime> | |||
| * <MsgType> <![CDATA[event]]> </MsgType> | |||
| * <Event> <![CDATA[user_view_card]]> </Event> | |||
| * <CardId> <![CDATA[pZI8Fj2ezBbxxxxxT2UbiiWLb7Bg]]> </CardId> | |||
| * <UserCardCode> <![CDATA[4xxxxxxxx8558]]> </UserCardCode> | |||
| * <OuterStr> <![CDATA[12b]]> </OuterStr> | |||
| * </xml> | |||
| */ | |||
| String appId = wxMpService.getWxMpConfigStorage().getAppId(); | |||
| if(wxMessage.getEvent().equalsIgnoreCase(WxConsts.EventType.CARD_USER_VIEW_CARD)) { | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -1,6 +1,5 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import com.iformall.service.wechat.handler.AbstractHandler; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| @@ -10,7 +9,7 @@ import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class KfSessionHandler extends AbstractHandler { | |||
| @@ -12,7 +12,7 @@ import java.util.Map; | |||
| import static me.chanjar.weixin.common.api.WxConsts.XmlMsgType; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class LocationHandler extends AbstractHandler { | |||
| @@ -10,7 +10,7 @@ import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class LogHandler extends AbstractHandler { | |||
| @@ -1,6 +1,5 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import com.iformall.service.wechat.handler.AbstractHandler; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| @@ -12,7 +11,7 @@ import java.util.Map; | |||
| import static me.chanjar.weixin.common.api.WxConsts.MenuButtonType; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class MenuHandler extends AbstractHandler { | |||
| @@ -14,7 +14,7 @@ import java.util.Map; | |||
| import static me.chanjar.weixin.common.api.WxConsts.XmlMsgType; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class MsgHandler extends AbstractHandler { | |||
| @@ -9,7 +9,7 @@ import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class NullHandler extends AbstractHandler { | |||
| @@ -1,9 +1,7 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import com.iformall.service.wechat.handler.AbstractHandler; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| public abstract class ScanHandler extends AbstractHandler { | |||
| @@ -1,6 +1,5 @@ | |||
| package com.iformall.service.wechat.handler; | |||
| import com.iformall.service.wechat.handler.AbstractHandler; | |||
| import me.chanjar.weixin.common.session.WxSessionManager; | |||
| import me.chanjar.weixin.mp.api.WxMpService; | |||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; | |||
| @@ -12,7 +11,7 @@ import java.util.Map; | |||
| /** | |||
| * 门店审核事件处理 | |||
| * | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class StoreCheckNotifyHandler extends AbstractHandler { | |||
| @@ -17,7 +17,7 @@ import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class SubscribeHandler extends AbstractHandler { | |||
| @@ -15,7 +15,7 @@ import org.springframework.stereotype.Component; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class UnsubscribeHandler extends AbstractHandler { | |||
| @@ -20,7 +20,7 @@ import java.util.Date; | |||
| import java.util.Map; | |||
| /** | |||
| * @author Binary Wang(https://github.com/binarywang) | |||
| * @author Stormeye Wu | |||
| */ | |||
| @Component | |||
| public class WeappAuditHandler extends AbstractHandler { | |||