现有一台信锐无线控制器3.7.9.7要做短信认证,短信平台是联通的一信通。
做完配置发送测试短信,接收不到,深信服设备会有日志显示短信平台的返回值报错信息,但是信锐设备的日志中暂时没有这些日志信息。在信锐设备后台抓包,根据抓包结果result=1得知是提交参数不能为空的报错。
查询一信通的接口文档,得知是用户名和密码不正确,获取到正确密码后,提交,仍然报错,返回result=5,这是IP没有在一信通后台加入白名单导致,让一信通客服把IP加入到白名单后,再次提交,仍然报错,返回值28,这是发送内容与模板不符的报错,仔细核对模板,发现模板中写的是“登陆”,提交的URL中填写的是“登录”,修改后,可以正常收到测试短信。
以下是信锐无线控制器上的一些配置:
并且这里的短信内容要与一信通模板保持一致:
目前已经对接成功,可以正常收到认证短信。
对于与一信通对接,除了要将设备的固定公网IP加入白名单,PPPOE这种不是固定的IP没有办法加到白名单,还要让短信模板与一信通的模板保持一致,并且在提交密码时,如果密码中含有特殊字符,需要写转义字符,比如#写成%23,%写成%25。
附URL中的转义方式:
特殊字符 | URL中用途 | 转义方式 |
---|---|---|
+ | 表示空格 | %2B |
(空格) | 应换用加号 + 或%20 表示 | %20 |
/ | 分隔目录和子目录 | %2F |
? | 分隔实际的 URL 和参数 | %3F |
% | 指定特殊字符 | %25 |
# | 表示书签 | %23 |
& | URL中指定的参数间的分隔符 | %26 |
= | URL中指定参数的值 | %3D |
! | URL中指定参数的值 | %21 |
另外深信服不仅支持HTTP协议也支持HTTPS协议的短信平台对接,信锐截止3.7.9.7版本只支持与HTTP协议对接。