国际短信平台短信路由搭建后台软件定制-移讯云短信系统
什么是短信路由
短信路由是指当短信发送时,不通的关键字内容,不同的地区进行线路分流。实现压缩成本速度和质量保证。
新的客户端客户登录后发送短信时可自行选择用哪个通道来进行发送短信。每个通道的充值数量不一样。
通过后台给客户分配可使用的通道,只有在后台给客户分配可使用的通道后客户在登录客户端发送短信时才可进行选择。
对短信平台定制的调整
根据客户要求我们修改了如下功能
1:全新的页面。
2:导入了号码归属地数据库。
3:修改了数据库表,用来分配客户端通道和不通通道不通条数。
4:增加了通道图片国旗显示。
5:服务程序修改了状态数据返回值和数据成功失败未知条数整理。
6:修改了短信平台服务程序中的回执速度和发送提交速度。
7:修改了界面手机自适应效果,杜绝以前手机打开不能适应手机、显示不全、手机显示跑位问题。
8:在首页显示实时更新服务器状态是否正常。
短信服务端的号码过滤的原理
这个功能就相对简单 其实就是号码和数据库做对比如果存在则就是白名单。此功能只有在被扣除号码中检测。
特色功能模块功能列表
1:通道路由模块
1.1:通道地区设置
1.2:通道关键词分流
1.3:白名单独立通道设置
1.4:通道分组设置
1.5:通道分组分配
1.6:用户路由通道分流设置
2:客户模板审核和管理
2.1:未审核模板
2.2:添加模板场景
2.3:模板场景管理
- :客户模板管理
3:客户账号审核管理模块
1:主要是用于新账号的 实名审核 (主要用于审核新账号实名信息)
4:客户签名审核和管理
1:未审核签名
短信服务端中的短信发送服务程序。
为了减少服务器的MSSQL数据库对服务器的资源占用。我们采取了使用ACCESS数据库并用的方式进行发送数据的临时存储。然后短信服务端通过取出ACCESS数据库中的数据进行处理。
短信路由流程
这里说下我们在开发实践过程中实现短信路由的流程
1:设置账号的全网通道。2:设置通道可发的地区。3:设置内容关键字的通道
流程:
1.1:当客户端账号没开通通道路由
当某个账号提交短信后,系统先判断此账号是否开启了通道路由。如果账号没有开启通道路由那么发送的号码和内容直接通过全网通道直接发出。
1.2:当客户端账号开通通道路由 且内容中有关键词的
当账号提交短信后,系统判断如果此账号开启了通道路由。如果当前提交的内容中有符合关键词的通道,则当前内容不管什么地区的号码都会通过此通道发出。
1.3:当客户端账号开通通道路由 且内容中没有关键词的
当账号提交短信后,系统判断如果此账号开启了通道路由并且提交的内容中没有符合关键词通道通道或者是后台没有设置关键词通道。那么当前提交的号码则按照地区进行发送,没有地区的则按照全网通道发送
平台外放接口介绍
支持接入CMPP接口,支持SMPP通道接入,支持外放CMPP接口(其他平台可以通过CMPP接入我平台),支持HTTP API JSON 接口,支持HTTP API 回执接口,支持验证码生成接口,支持变量接口
系统根据需要开发了专业版本的功能,主要特色功能是:
1:通道路由模块
2:客户模板审核和管理模块
3:客户账号审核和管理模块
4:客户签名审核和管理哦快
发送服务程序
发送服务程序是我们写的一个24小时运行的EXE程序,通过此服务程序来进行短信的发送。
发送服务程序获取ACCESS数据库中相关的临时发送数据,然后进行数据参数拼接。
系统先获取当前要发送的短信的发送类型和通道类型,然后系统会调用不同的方法。
例如发送类型是POST通道类型是XML系统则会调用xml的POST方法进行短信的发送,并且通过相应的方法进行数据解析。
短信服务端号码通道分类功能
短信后开发按照要求有个功能是发送分流。就是当短信客户端提交过来的短信号码包含移动、联通、电信时,系统要实现不通类型的号码进入不同的发送通道端口。
遇到数据量过大时,如果只是通过网页B/S的结构无法实现大量的数据处理,并且客户要等待数据处理完毕才能关闭发送页面。大大降低了短信客户端客户的体验。用户会觉得提交过程缓慢。此时就用到了短信服务程序来进行处理分流。
短信服务端收到客户提交的短信后,系统会进行数据分类,然后根据后台设置好的不同类型号码的分流通道进行分流处理,100万条号码的处理速度通过多现成压缩到了5秒左右。
这里先介绍下客户的定制需求,稍候放出开发构架和开发思路
我们根据市场需要,开发了一套可以接入国际通道的短信系统。
后台功能介绍
1:终端客户中心 作用:用于管理和设置客户端用户的信息
包含:开通终端客户、终端客户管理、未提交认证客户、客户扣量设置、客户全网通道设置
2:客户账号审核
3:客户签名管理 作用:用于管理客户发送时的 短信签名
包含:未审核签名、客户签名管理
4:客户模板管理 作用:用于管理客户发送短信的模板
包含:未审核模板(用于客户提交的模板短信是否可以通过)
5:短信数据管理 (管理系统中的所有提交的短信数据)
模块包含功能:提交记录报表、短信审核吃、短信成功明细、短信失败明细
其中提交记录报表中可进行更详细的操作
6:充值报表
7:敏感词库管理
包含功能:添加敏感词、敏感词管理、添加词库分类、词库分类管理
8:通道路由管理
功能包含:1:通道地区设置 (用于设置接入的通道能发哪个地区)
2:通道关键词分流 (用于设置接入的通道能发内容哪些特定的关键词)
3:白名单通道设置 (用于白名单独立通道发送)
4:通道分组名称管理
5:通道分组分配
6:用户路由通道分流
9:通道设置 (设置平台可接入的通道)
包含各种API 和 CMPP SMPP通道
10:黑白名单管理 (添加系统发送号码白名单和黑名单)
11:用户组和权限 (用于设置后台管理账号的权限)
12:系统设置
包含:修改当前密码、商务信息设置、审核条数设置、白名单收录大火收汁、平台名称设置、平台公告设置
通道返回状态服务程序
经常做接口的开发人员都知道不通的接口供应商提供的接口返回格式和字段都不一样,我们需要为不一样格式的接口重写接口的代码来适应相应的接口。这种做法就很麻烦。
我们为了避免这种问题的出现,我们将通道返回程序修改成了统一规范。
我们不用原始的数据解析方法,采用了字符串函数来操作。
每个接口返回的数据无论是XML还是JSON 都会有开始节点 和结束节点,每组信息都会一个分割。每组信息中的每个字段一会有相应分割 。
首先先测试下通道返回数据的格式然后找到上述所说的相关分隔符,将分隔符通过短信后台进行输入记录设置。
服务程序获取到状态时会将解析后返回的数据,将数据中不需要的字符全部清除,将返回的字段分割符替换成换行(\r\n)。然后把数据列表化一行一个 然后根据需要获取到需要的字段数据即可
通常需要获取到的状态数据是手机号,返回状态值(此状态值和发送时获取到的通道状态值是匹配的)。获取到这些数据后进行数据库匹配更新相应数据即可反馈到客户端和后台。
支持地区通道分流,支持关键字,关键词通道分流,支持白名单独立通道,支持全网通道分流,支持通道可发地区设置,通道路由分组,用户通道分组设置,可通后台添加模板场景和模板类型,支持变量模板
ACCESS数据库存储内容介绍
存储内容中包含:用户名,未转换中文内容,转换过的内容,组合过的号码,通道地址,参数拼接,通道后台设置的名称,提交时生成的唯一MESSAGE id,通道类型,通道发送方式类型。
客户对短信平台系统开发的定制要求:
1:客户端支持英文和中文切换
2:客户端发送自定义短信时,客户必须可以自行选择通道。
3:客户选择通道时,必须已列表形式。通道选择列表时必须有通道名称(通道名称必须能在后台进行设置),通道所属国家的国旗图标,通道余额
4:客户选择通道后,可通过此通道发出
5:每个通道的可用条数必须是独立的。
6:界面必须是已国外形式出现。不能使用模板页面,不能使用中规中矩的页面
7:手机访问要自适应客户端和后台
8:必须能接入SMPP通道,必须实时返回每个号码的状态,中文状态,通道真正状态,通道批次号和系统自带批次号
9:日志报表必须能区分号码归属地和运营商
10:必须支持对外HTTP api接口,方便其他软件对接平台系统
11:客户端首页必须显示 服务器状态和SMPP服务程序是否正常的状态。要实时更新
12:后台必须能停用客户通道,停用后客户不能在发送短信时不能再次使用
13:预留模块可进行升级和二次短信开发和搭建。