零基础学习贴:如何收取短信回复消息

        消息服务支持多种消息推送方式,其中就包括推送短信,而目前很多行业都会需要通过短信的方式与客户沟通。主流的广告推广、客户关系保持、验证码等等,本文就不赘述了,可以参考消息服务的文档:点我零基础学习贴:如何收取短信回复消息。本文稍微进阶一些,教学:如何收取短信回复消息。


首先看一个业务场景:

        某公司给用户提供了按月收费的服务(比如视频会员等等),每个月总有那么几天要来扣钱,为了让用户被扣钱了没有怨言,就会在扣钱前一两天通过短信的方式通知下用户,问用户是否需要停止该服务(虽然你可能一犹豫,就被打断了,然后又被按期扣钱了...然后,然后你就习惯了)。毕竟没有手机的用户太少了,通过短信通知你了,再来扣钱,就光明正大、理所当然了。

        今天,我们就来告诉大家,如果使用消息服务,来实现让用户在“不知不觉”、“习惯性懒”的情况下,就成了按月付费的忠实用户了。零基础学习贴:如何收取短信回复消息


实现这个方案的基本结构是:

零基础学习贴:如何收取短信回复消息


        简单说明下:


        (1)先创建短信推送异步回调的规则,关注SMSExtend:ReplyMessage的事件,即:当发送给用户的短信产生回复消息时,会产生该事件,并且生成相应的结果消息(该结果消息中包括用户回复短信的内容),并将该消息推送到规则中指定的接收端中(这样在用户回复短信消息后,就会把回复的消息内容推送到指定的接收端上了)。接收端可以是HttpServer(用户的AppServer),也可以是推送到MNS的队列中,AppServer再从MNS的队列中消费对应的消息,从而获取到用户回复的短信消息内容。创建异步回调规则,可参考:点我


        (2)用户的AppServer中根据业务逻辑,比如,在用户的服务快到期前,触发定时发送短信的逻辑。而发送短信,消息服务提供了非常方便的接口(并提供了专用的主题)。发布短信消息的文档,可参考:点我


        (3)消息服务收到用户发布的消息后,会根据用户指定的短信模板,将短信消息推送给用户。


        (4)用户接收到推送的短信消息后,可以直接回复短信。比如,推送给用户的短信内容可以是:“如果不希望继续使用XXX服务,请回复:你好帅。”。用户如果不希望继续付费使用XXX服务的话,就可以直接回复“你好帅”。


        (5)消息服务通过运营商,拿到用户回复的短信后,查询用户是否创建了相关规则(即,是否有关心短信回复消息的事件)。鉴于前面先创建了规则,那MNS就会根据用户回复的内容,生成相应的结果消息。并按照用户创建的规则中指定的方式,将改结果消息发送到:

            (5.1)HttpServer,用户可以通过搭建一个HttpServer,能够处理MNS推送过来的消息(POST请求),具体可参考:点我。这样HttpServer在处理MNS的推送消息请求时,就可以进行相关的判断和业务逻辑处理(比如持久化用户的服务状态)。

            (5.2)MNS的队列,这里用户不需要额外搭建什么,用户仅需要创建一个MNS的队列,然后消息会自动推送到该队列中。后续,AppServer可以到该队列中主动消费消息,进行相关逻辑处理。


        (6)AppServer根据短信推送的结果消息中,用户返回的短信消息进行判断,看是否需要停止该用户的服务,或者可以继续扣除用户的钱~


然后,然后,您的服务就会越来越好,越来越好了~

上一篇:【每天一个java设计模式(十一)】 - 享元模式


下一篇:异步获取邮件推送结果