您的位置:首页 > 编程语言 > PHP开发

BaoCms短信发送失败问题解答

2017-06-23 14:35 423 查看
BAOCMS(又称生活宝系统)是一款本地生活电商O2O门户系统,程序是基于PHP+mysql开发,系统安全稳定,支持二次开发,目前BAOCMS已经成为国内使用最多、功能最强大、性能最稳定的本地电商生活O2O门户系统,已经帮助100多个站长和运营商实现创业,并且绝大部分的创业者和运营商都得到很好的利润回报,领先同行业的其他网站系统。

在使用BAOCMS过程中必不可少的会出现一些问题,我在这里为大家讲解
4000
一下BAOCMS短信发送失败的问题,这里我会列举出一些常见的错误,希望对大家使用BAOCMS短信接口有些用处,我这里以BAOCMS6.5版本为例,使用的接口服务商是短信宝(http://www.smsbao.com),使用短信宝接口的原因很简单,它们稳定可靠,速度也很快,还有就是他们提供了很多方便插件,只需要复制粘贴就可以完成复杂的替换工作了。

众所周知BAOCMS的短信接口是一个万能的短信接口,只需要填写URL,编码格式,成功返回值就可以使用了,但是这中间还是有一些问题的,最简单的一个问题就是URL的填写,如下图:



在填写URL的时候有许多人不注意,导致在http前面会出现一个空格,或者整个URL之间少写一个等号,多一个空格,这些都是导致短信发送失败的原因,所以在使用之前要确定URL的准确无误。

当你的URL填写正确无误但是还是不能发送成功,那么我们就需要查看一下是不是模版没有开启,模版的位置在后台->设置->模版管理->短信模版, 如下图:



如果你所要发送的短信模版没有开启是不能发送成功的,所以一定要确定是开启状态。

URL和模版都是正确的但是短信还是发送失败,这又是怎么回事呢?

经过代码追踪,定位到出问题的代码在: 在项目/Baocms/Lib/Model文件夹下面SmsModel.class.php文件中。在这里就不每个都为大家详细说明了,我举出一个案例剩下的基本都是这种情况,为了便于分析,我把这个方法的每条语句都加上了注释,然后来大家分析一下。如图:

商城通知商家短信方法
public function mallTZshop($order_id){
//判断$order_id 是否为整形和数字
if(is_numeric($order_id) &&  ($order_id = (int)$order_id)){
$order_id = array($order_id);
}
//查找数据库,找到这条数据
$orders = D('Order')->itemsByIds($order_id);
//定义一个空数组
$shop = array();
//循环将shop_id赋值到这个空数组中
foreach($orders as $val){
$shop[$val['shop_id']] =$val['shop_id'];
}
//查找数据库,找到数据
$shops = D('Shop')->itemsByIds($shop);
//循环发送短信
foreach($shops as $val){
//  调用发送方法      模版标签          手机号       内容
$this->sendSms('sms_shop_mell', $val['mobile'], array());
}
return true;
}




原因就出在模版标签这里,我们可以对比一下,代码中的模版标签是sms_shop_mell,而我们后台模版所设置的标签为sms_shop_mall,因为这里的不匹配导致我们的短信发送失败,只要将后台模版标签与代码中修改一致就可以发送成功了。

我上面讲述的这几个方面都是正确的,基本上短信都是可以正常发送的了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 短信 o2o