BAOCMS(又称生活宝系统)是一款本地生活电商O2O门户系统,程序是基于PHP+mysql开发,系统安全稳定,支持二次开发,目前BAOCMS已经成为国内使用最多、功能最强大、性能最稳定的本地电商生活O2O门户系统,已经帮助100多个站长和运营商实现创业,并且绝大部分的创业者和运营商都得到很好的利润回报,领先同行业的其他网站系统。
在使用BAOCMS过程中必不可少的会出现一些问题,我在这里为大家讲解一下BAOCMS短信发送失败的问题,这里我会列举出一些常见的错误,希望对大家使用BAOCMS短信接口有些用处,我这里以BAOCMS6.5版本为例,使用的接口服务商是短信宝(http://www.smsbao.com),使用短信宝接口的原因很简单,它们稳定可靠,速度也很快,还有就是他们提供了很多方便插件,只需要复制粘贴就可以完成复杂的替换工作了。
众所周知BAOCMS的短信接口是一个万能的短信接口,只需要填写URL,编码格式,成功返回值就可以使用了,但是这中间还是有一些问题的,最简单的一个问题就是URL的填写,如下图:
在填写URL的时候有许多人不注意,导致在http前面会出现一个空格,或者整个URL之间少写一个等号,多一个空格,这些都是导致短信发送失败的原因,所以在使用之前要确定URL的准确无误。
当你的URL填写正确无误但是还是不能发送成功,那么我们就需要查看一下是不是模版没有开启,模版的位置在后台->设置->模版管理->短信模版, 如下图:
如果你所要发送的短信模版没有开启是不能发送成功的,所以一定要确定是开启状态。 URL和模版都是正确的但是短信还是发送失败,这又是怎么回事呢?
经过代码追踪,定位到出问题的代码在: 在项目/Baocms/Lib/Model文件夹下面SmsModel.class.php文件中。在这里就不每个都为大家详细说明了,我举出一个案例剩下的基本都是这种情况,为了便于分析,我把这个方法的每条语句都加上了注释,然后来大家分析一下。如图:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
商城通知商家短信方法 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,因为这里的不匹配导致我们的短信发送失败,只要将后台模版标签与代码中修改一致就可以发送成功了。
我上面讲述的这几个方面都是正确的,基本上短信都是可以正常发送的了。
报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,并且免审核了,短信内容3~5秒就可送达。
最新更新
电商类
CMS类
微信类