DsMall商城新增短信宝短信接口

DSMall基于国内优秀开源框架THinkPHP、打造出的一套开源的B2B2C电子商务系统。小编带着大家一起开发DSMall商城2.5.3的短信宝插件接口。我们使用的短信接口是短信宝短信群发平台的短信接口,短信宝短信群发平台非常稳定,发送速度快,注册就送测试短信,推荐大家使用。

首先我们打开项目application\admin\view\message\mobile.html文件,替换17~38行代码:

<tr class="noborder">
                <td class="required w120">短信宝账号</td>
                <td class="vatop rowform">
                    <input type="text" name="smsbao_user" id="smsbao_user" value="{$list_config.smsbao_user}" class="w200"/>
                    <a href="http://www.smsbao.com/reg" target="_blank" class="btn btn-blue btn-mini">立即注册</a>
                </td>
                <td class="vatop tips"></td>
            </tr>
            <tr class="noborder">
                <td class="required w120">短信宝密码</td>
                <td class="vatop rowform">
                    <input type="text" name="smsbao_pass" id="smsbao_pass" value="{$list_config.smsbao_pass}" class="w200"/>                    
                </td>
                <td class="vatop tips"></td>
            </tr>
            <tr class="noborder">
                <td class="required w120">短信宝签名</td>
                <td class="vatop rowform">
                    <input type="text" name="smsbao_sign" id="smsbao_sign" value="{$list_config.smsbao_sign}" class="w200"/>                    
                </td>
                <td class="vatop tips"></td>
   </tr>

接着我们打开项目application\admin\controller\Message.php文件,替换mobile方法:

public function mobile() {
        $config_model = model('config');
        if (!(request()->isPost())) {
            $list_config = $config_model->getConfigList();
            $smscf_wj_num = '';
            if(!empty($list_config['smsbao_user'])&&!empty($list_config['smsbao_pass'])){
     
                 $arr = http_request('http://www.smsbao.com/query?u='.$list_config['smsbao_user'].'&p='.md5($list_config['smsbao_pass']),'get');
                 $arr = explode(',', $arr);
                 $smscf_wj_num = $arr[1];
            }
            $this->assign('smscf_wj_num', $smscf_wj_num);
            $this->assign('list_config', $list_config);
            
            $this->setAdminCurItem('mobile');
            return $this->fetch('mobile');
        } else {
            $update_array = array();
            $update_array['smsbao_user'] = input('post.smsbao_user');
            $update_array['smsbao_pass'] = input('post.smsbao_pass');
            $update_array['smsbao_sign'] = input('post.smsbao_sign');
            $update_array['smscf_wj_username'] = input('post.smscf_wj_username');
            $update_array['smscf_wj_key'] = input('post.smscf_wj_key');
            $update_array['sms_register'] = input('post.sms_register');
            $update_array['sms_login'] = input('post.sms_login');
            $update_array['sms_password'] = input('post.sms_password');
            $result = $config_model->editConfig($update_array);
            if ($result === true) {
                $this->log(lang('ds_edit') . lang('mobile_set'), 1);
                $this->success(lang('ds_common_save_succ'));
            } else {
                $this->log(lang('ds_edit') . lang('mobile_set'), 0);
                $this->error(lang('ds_common_save_fail'));
            }
        }
    }

接着我们打开项目application\common\model\Smslog.php文件,替换sendSms方法:

function sendSms($smslog_phone,$smslog_msg,$smslog_type='',$smslog_captcha='',$member_id='0',$member_name='')
    {
        $smsbao_sign = config('smsbao_sign');
        $cont=explode('】', $smslog_msg);
        $smslog_msg =  "【".$smsbao_sign."】".($cont[1]);
        //通过手机号判断是否允许发送短信
        $begin_add_time = strtotime(date('Y-m-d', TIMESTAMP));
        $end_add_time = strtotime(date('Y-m-d', TIMESTAMP)) + 24 * 3600;
        
        //同一IP 每天只能发送20条短信
        $condition = array();
        $condition['smslog_ip'] = request()->ip();
        $condition['smslog_smstime'] = array('between', array($begin_add_time, $end_add_time));
        if ($this->getSmsCount($condition) > 20) {
            return array('state'=>FALSE,'code'=>10001,'message'=>'同一IP地址一天内只能发送20条短信,请勿多次获取动态码!');
        }
        
        //同一手机号,60秒才能提交发送一次
        $condition = array();
        $condition['smslog_phone'] = $smslog_phone;
        $condition['smslog_smstime'] = array('between', array(TIMESTAMP-30, TIMESTAMP));
        if ($this->getSmsCount($condition) > 0) {
            return array('state'=>FALSE,'code'=>10001,'message'=>'同一手机30秒后才能再次发送短信,请勿多次获取动态码!');
        }
        
        //同一手机号,每天只能发送5条短信
        $condition = array();
        $condition['smslog_phone'] = $smslog_phone;
        $condition['smslog_smstime'] = array('between', array($begin_add_time, $end_add_time));
        if ($this->getSmsCount($condition) > 5) {
            return array('state'=>FALSE,'code'=>10001,'message'=>'同一手机一天内只能发送5条短信,请勿多次获取动态码!');
        }
 
        //通过手机号获取现绑定的客户信息
        if(empty($member_id)||empty($member_name)){
            //通过手机号查询用户名
            $member = model('member')->getMemberInfo(array('member_mobile' => $smslog_phone));
            $member_id = isset($member['member_id'])?$member['member_id']:'0';
            $member_name = isset($member['member_name'])?$member['member_name']:'';
        }
        $sms = new \sendmsg\Sms();
        $result = $sms->send($smslog_phone, $smslog_msg);
        if ($result) {
            $log['smslog_phone'] = $smslog_phone;
            $log['smslog_captcha'] = $smslog_captcha;
            $log['smslog_ip'] = request()->ip();
            $log['smslog_msg'] = $smslog_msg;
            $log['smslog_type'] = $smslog_type;
            $log['smslog_smstime'] = TIMESTAMP;
            $log['member_id'] = $member_id;
            $log['member_name'] = $member_name;
            $result = $this->addSms($log);
            if($result>=0){
                return array('state'=>TRUE,'code'=>10000,'message'=>'');
            }else{
                return array('state'=>FALSE,'code'=>10001,'message'=>'手机短信发送失败');
            }
        }else{
            return array('state'=>FALSE,'code'=>10001,'message'=>'手机短信发送失败');
        }
    }

最后我们打开项目extend\sendmsg\Sms.php文件,替换mysend_sms方法:

 private function mysend_sms($mobile, $content)
    {
        $smsbao_user = urlencode(config('smsbao_user')); // 户名
        $smsbao_pwd = urlencode(config('smsbao_pass')); // 这里填接口安全密钥
        $smsbao_sign = urlencode(config('smsbao_sign')); 
        
        if (!$mobile || !$content || !$smsbao_user || !$smsbao_pwd || !$smsbao_sign)
            return false;
        if (is_array($mobile)) {
            $mobile = implode(",", $mobile);
        }
        
        $mobile=urlencode($mobile);
        $content=urlencode($content);
        $url = 'http://api.smsbao.com/sms?u='.$smsbao_user.'&p='.md5($smsbao_pwd).'&m='.$mobile.'&c='.$content;
        if (function_exists('file_get_contents')) {
            $res = file_get_contents($url);
        }
        else {
            $ch = curl_init();
            $timeout = 5;
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
            $res = curl_exec($ch);
            curl_close($ch);
        }
        if ($res == 0) {
            return true;
        }
        return false;
 
    }
 
 
}

经过上面的替换,短信宝的短信平台已经替换成功了,可以正常使用了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DSmall多商户开源商城源码是一个以thinkPHP为框架进行开发的多用户商城系统源码。 网站功能包含:网站设置、帐号同步、上传设置、权限设置、地区管理、数据备份、操作日志、 分类管理、品牌管理、店铺等级、店铺分类、店铺帮助、会员管理、会员级别、积分管理、预存款、 实物订单、虚拟订单、退货管理、咨询管理、评价管理、文章分类、文章管理、抢购管理、限时折扣、 满即送、优惠套餐、推荐展位、活动管理、兑换礼品、行业分析、店铺统计、商品分析、营销分析等 安装须知: 默认访问的目录应该是 public 这个目录install就在这个文件下面(即请将public目录设置为根目录后,直接访问即可进行安装) 环境要求: PHP5.4以上版本(注意:PHP5.4dev版本和PHP6均不支持) 2018年1月2日更新: 1)新增即时聊天功能 2)新增店铺图片对象存储 3)新增收货地址可设置精确位置,可查看最近店铺。 4)新增用户推荐注册,推荐注册用户在商场内购买商品可以获得佣金。 5)修复[CNVD国家漏洞库]测试提出的DSmall多商户开源商城系统dropcommonmsg方法存在SQL注入漏洞、get_subject_by_typeid方法存在SQL注入漏洞、check_email方法存在SQL注入漏洞、SQL注入漏洞及系统的其他小bug 2018年3月20日更新: 1)修复没有增加收货地址时,立即购买报错的问题 2)优化商品标签 3)闲置模型优化 4)商品列表页面、限时抢购页、积分首页、积分产品详情页优化 5)即时聊天界面优化 6)统一登录弹出窗口 7)附近店铺新增下拉刷新 8)新增短信发送日志查看 9)以及若干数据结构和代码优化
DSMall商城系统是一套完善的B2B2C(多店铺商城)解决方案。系统使用国内优秀开源框架THinkPHP,H5端采用vue.js,前后端分离,基于PHP+MySQL开发,采用B/S架构,依据6年电商经验打造出的一套开源的B2B2C电子商务系统。 DSMall商城系统技术评价 1、B/S架构 2、MVC编码架构,H5端采用vue.js 3、支持Compser 4、支持阿里云存储 5、支持负载均衡 5、支持Mysql读写分离 6、支持Redis/Memcached 7、支持Linux/Unix/Windows服务器,支持Apache/IIS/Nginx等 8、支持电脑PC端、手机端(微信端)、小程序 DSMall商城系统功能: 1、设置:站点设置、账号同步、上传设置、SEO设置、邮箱短信、支付方式(支付/微信/银联)、权限设置、快递公司、地区管理、数据备份、操作日志 2、会员:会员管理、会员级别、经验值管理、会员通知、积分管理、预存款、聊天记录 3、商品:商品分类、品牌管理、商品管理、类型管理、规格管理、空间管理 4、店铺:店铺管理、店铺资金、店铺保证金、店铺等级、店铺分类、店铺动态、店铺帮助、自营店铺 5、交易:实物订单、虚拟订单、退款管理、退货管理、订单结算、咨询管理、举报管理、评价管理、结算管理 6、网站:文章分类、文章管理、会员协议、导航管理、广告管理、友情链接、平台客服 7、营销:分销管理、抢购管理、虚拟抢购管理、拼团管理、限时折扣、满即送、优惠套装、推荐展位、会员等级折扣、代金券管理、活动管理、兑换礼品、平台充值卡 8、统计:行业分析、会员统计、店铺统计、销量统计、商品统计 9、公众号:公众号配置、微信菜单、关键字回复、绑定列表、消息推送 安装须知: 默认访问的目录应该是 public 这个目录install就在这个文件下面(即请将public目录设置为根目录后,直接访问即可进行安装) 环境要求: PHP5.4以上版本(注意:PHP5.4dev版本和PHP6均不支持) DSMall多商户开源商城源码 更新日志: V6.0.5 免费版更新 1. 新增批发功能 2. 修复后台关闭4个消息模板后,商家后台接受消息页面会报错的问题 3. 优化直播商品列表样式 4. 修复后台无法恢复备份的问题 5. 新增待付款订单可以预存款支付 6. 修复已退款成功的订单会出现在待评价页面 授权版更新 1. 修复已退款成功的订单会出现在待评价页面 2. 修复手机端文章列表页面无法翻页的问题 3. 优化商品详情页面没有视频就不显示视频按钮 4. 修复微信绑定已有用户出错的问题 5. 新增批发功能 6. 删除手机端店铺详情页面 无用的店铺背景图 7. 新增待付款订单可以预存款支付 v6.0.4 免费版更新 1. 添加猜你喜欢功能 2. 优化分销会员功能 3. 修复后台管理员可以添加重复名称的问题 4. 添加商品主图视频功能 5. 修复后台店铺帮助 帮助内容列表不显示内容帮助类型的问题 6. 修复取消规格选中,隐藏不了规格名称的问题 7. 修复搜索页面默认排序不生效的问题 8. 修复后台限时折扣列表批量删除按钮无效的问题 9. 修复限时折扣活动结束,商品不解除锁定的问题 10. 优化评论显示 11. 后台自营店铺添加可以选择店铺分类 12. 优化注册会员页面 13. 新增阿里云直播 14. 修复直播审核页面没有设置直播商品会报错的问题 授权版更新 1. 修复手机端添加商品ID错误和图片说明尺寸不对的问题 2. 手机端规格市场价和重量取消必填项 3. 手机端商家入驻添加店铺分类必填项提示语 4. 添加商品主图视频 5. 添加猜你喜欢功能 6. 优化微信分享功能 7. 修复苹果手机无法使用微信登录的问题 8. 手机端添加商品锁定按钮 9. 修复未登录时购物车页面会卡住的问题 10. 新增阿里云直播 11. 优化手机端规格值设置 v6.0.3 免费版更新 1. PC端主播不在线也可以显示直播详情页 2. 优化推荐组合设置 3. 修复后台数据无法备份的问题 4. 新增如果商品正在直播则显示直播小图标 5. 修复首页楼层底部广告没有数据时,会显示侧边栏广告的问题 6. 修改现在不上传商品图片也可以添加商品 7. 优化拼团功能 8. 新增如果店铺有直播 则在店铺首页显示 9. 优化手机号登录 10. 优化页面可编辑功能 11. 店铺入驻新增可选入驻类型,(仅个人,仅企业,全部可选,全部关闭) 12. 修复添加后台管理员密码可以为空 授权版更新 1. 优化手机端快捷登录 2. 手机端登录去掉图片验证码 3. 优化页面 4. 优化入驻时的店铺定位 5. 新增手机端专题活动模块 6. 优化商品列表排序 7. 店铺入驻新增可选入驻类型,(仅个人,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值