今天在安装使用腾讯云短信发送插时,发现验证码可以正常发送,但是发送普通通知(通知模板没有任何参数)时,发送失败,报错信息为:
{"result":1014,"errmsg":"package format error, template params error","ext":""},
查阅官方网站解释为:提交的信息与模板不匹配,但是fastadmin官方文档里写的是:发送通知时,第二个参数填写空即可
appcommonlibrarySms::notice('13800000000', '', '模板ID');
由于直接使用插件,也没有去查看官方文档,只有跟踪代码,在跟踪到sendWithParam方法时,打印$params参数,结果是长度为1的一个空字符串数组,如:
public 'params' => array (size=1) 0 => string '' (length=0)
由于模板没有任何参数,这里又传了一个参数,所以腾讯云短信服务认为与模板不符,导致发送失败!
后修改为方案:
// 由于$params被强制0等于传进来的参数,就算是空,也会为$params[0] = '';,当模板里面没有变量时,这样就发不成功,所以如果模板本身不需要变量,就要把$params设置为空数组if (isset($params[0]) && ($params[0] == 'no-params' || $params[0]=='')) { $params = [];}
文件路径:
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。