战魔
网络游戏 | 104M | 2020-12-16
下载来自: 98游戏 浏览: 0 次 2026-06-03 20:54:42:06
模板变量JSON格式错误会导致短信发送失败,需手动校验转义、用JSON工具标准化或Java中用fastjson生成;Excel号码须设文本格式、清除不可见字符、验证前缀合规;PhoneNumberJson必须是合法转义JSON数组字符串。

观涛云信批量发送短信时,模板变量格式错误会导致整批失败或部分号码收不到内容,尤其在导入Excel客户列表后直接拼接JSON参数极易触发InvalidTemplateCode报错。
方法一:手动校验转义与字符串化
打开你用于调用SendBatchSms的请求体,定位TemplateParam字段值;确认所有变量值都用双引号包裹,且内部双引号已加反斜杠转义——比如{"code":"123456","product":""旗舰版""} 才合法,{"code":123456}会直接被拒绝。
方法二:用JSON工具自动标准化
将原始变量对象粘贴到任意在线JSON校验器(如jsonlint.com),点击“Format”,再复制输出结果;这一步能强制补全引号、转义特殊字符,并暴露缺失逗号等语法硬伤。
方法三:Java代码中构造安全字符串
不要用字符串拼接生成TemplateParam,改用com.alibaba.fastjson.JSONObject:先put键值对,再调用toJSONString()输出——该方法默认执行双引号转义和数字字符串化,【绕过90%的手动格式错误】。
第一步:选中手机号列→右键→设置单元格格式→文本
Excel默认把以0开头的国际号码(如+60123456789)识别为数字并自动去首零,导致发送失败。设为文本格式可锁定原始字符。
第二步:查找替换清除不可见字符
按Ctrl+H,查找内容输入^l(手动输入小写L,代表换行符),替换为空;再查^p(段落标记)、 (不间断空格)一并清空——这些字符肉眼不可见,但会污染JSON中的PhoneNumberJson数组。
第三步:验证号码前缀合规性
国内号码必须带+86或不带前缀;国际号码必须含正确区号(如+60、+852),且不能混入空格、短横线、括号;用Excel公式=IF(OR(LEFT(A2,3)="+86",LEFT(A2,1)="+"), "OK", "需修正")快速标出异常行。
确保传入的PhoneNumberJson是标准JSON数组字符串,不是普通字符串列表。
错误示例:"13800138000,13900139000" 或 ["13800138000","13900139000"](缺少外层引号)
正确写法:"["13800138000","13900139000"]"——注意整个数组被双引号包裹,内部每个号码的双引号必须转义。
这一步最容易踩坑:如果用Python生成,必须用json.dumps(phone_list)而非str(phone_list);若用Java,必须调用JSONArray.toJSONString(list),否则服务器解析直接报错。
以上就是98游戏小编为大家带来的全部内容,想了解更多精彩请持续关注本站。
还没有玩家发表评论,快来抢占沙发吧!