本帖最后由 新手703537 于 2024-11-6 14:24 编辑
AC对接(HTTP)短信网关排障思路 需求分析:用户需要对接短信平台,用于访客短信认证,提供了接口文档进行对接。 配置过程: 1、 依据接口文档配置短信平台
登录AC配置短信模板,这里请求模板里只配置了必要的几个字段:Mobile、Message、LoginUser、LoginPass,其中LoginUser和LoginPass提前让用户在短信平台进行了定义 2、添加短信认证服务器及认证策略,请求类型这里如果文档没有特别说明,用get或者post都可以试一下
点击测试有效性,发现测试用户无法收到短信 排查过程: 1、 首先让用户内部测试了下短信接口是否正常,用户是用postman进行测试,post和get方式都可以正常收到测试短信
2、 此时发现了两个问题: 用户测试的url和接口文档不一致(重新调整url后测试依旧收不到验证码); 用户测试参数带有的用户名和密码,和接口文档里提供的不一致(后面验证了不是密码问题)。 3、 本地电脑安装postman测试,确实可以成功收到验证码,目前AC界面配置的url、用户名以及密码,和postman配置的完全一致,只能抓包排查数据包里面的差异
4、 在AC后台和本地pc抓包,发现AC的请求进行url编码后和本地pc请求编码后的结果不一致
这里将json=之后的内容进行url解码,可以确认到就是我们测试时提交的内容
4、到这里已经是协调了400的结果,定位到是AC对请求模板内容url编码后结果异常,导致用户收不到短信,400尝试直接把正确的编码结果填入测试。 配置调整: 1、依照postman测试的结果,请求模板内容前段加上“json=” 2、直接将原有模板内容进行url编码后再进行填入,修改后配置如下
在线url编码平台可以查看结果
调整之后测试可以成功收到短信了 |