Flask微信公众号开发之模板消息(一)
公司的经销商在他们的DMS终端填写汇款数据、上传银行凭证(DMS付款单的操作,用于以后在DMS上批发购车),在这之后公司端财务会审核通过/驳回,DMS发出审核结果通知。
现在的痛点是,DMS是PC软件,经销商的核心业务不是文职工作,他们不会经常打开DMS,因此不知道审核结果。我考虑使用短信通知的功能,通过后台定时访问DMS数据库,检查到单据变化后发出通知;或者使用微信公众号,类似招商银行的信用卡消费提醒。以此向公司IT部门提需求时,得到了非常机械的回答:代码很简单,关键是服务器的问题,购买短信模板服务的问题......
我看了微信开放接口的文档,想了想整体框架,觉得理论上可行,于是我亲自开发了这个项目,使用我个人在阿里云的服务器和微信进行交互,开发工具是Python Flask。在这个过程中,我从后往前做,即先用阿里云服务器接收/发送消息;之后在云端建立用户表、角色表、权限(功能)表、角色-权限表、dms_user表(用于根据DMS用户进行粉丝认证)、数据字典,然后实现微信认证功能:绑定粉丝的openid和业务user_id;再之后,在公司的局域网用kettle同步DMS数据,建立业务数据库:用户表、付款单据表、metadata表;最后用户连接部门帮忙登录了公司的公众号,我申请了模板消息功能。说实话我提心吊胆,因为从后往前做,前面的步骤都是理论上可行,具体未知的状态,比如真正的消息模板有没有,有什么。而为何要从后往前做?是因为我第一次做,急切想贴近终极效果,好奇心和热情驱动的,实际这并不是科学步骤;好在结果是成功的。这个项目发出三种通知:有粉丝(经销商)认证成功的通知、付款单被创建(此时需财务及时审核)的通知、付款单被审核通过/驳回的通知;以后可以发出任何通知,而实现非常简单。
整体框架是:DMS数据库---局域网---阿里云---微信开放接口。局域网ip无法被外网访问,它只向阿里云定时发送请求;使用局域网是考虑业务数据避免存储到我个人服务器,但是为此消耗了很长时间。
第一次做这个,我预计一周可以出结果,但是做成之后已是三周,完善之后是四周。之所以慢,是因为考虑了1、以后弹性扩展其他功能,2、数据保密(实际以我的角色,以及数据被黑的可能性,都不需太多考虑这个问题)