云EC电商系统短信接口替换

本文介绍如何在云EC电商系统中替换短信接口,包括界面替换、安装文件创建及业务代码修改等步骤,实现短信宝短信平台的集成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

云EC电商系统是一套基于PHP+MYSQL的开源电商系统软件,他是免费的开源的,使用范围广泛,小编对他还是比较熟悉的,今天小编就来分享一下如何进行二次开发。以替换短信接口为例,一步一步教大家开发过程,我们使用的短信接口是短信宝短信群发平台的短信接口,短信宝短信群发平台非常稳定,发送速度快,注册就送免费测试短信,大家可以在短信宝注册一个帐号,进行测试。

 

进行短信接口替换首先我们要先替换一下后台的显示界面,打开模版文件,项目/view/admin/message.sms.html文件,替换16~21行、49行,代码如下:

<div id="mainnav" class="tabhd">
  <ul>
    <li class="cur"><a href="javascript:void(0);" title="">短信宝</a></li>
    <li><a href="javascript:void(0);" title="">待接入</a></li>
  </ul>
</div>
<input name="code" type="hidden" value="smsbao">

经过替换后所有的显示已经变成短信宝的了,我们在项目/inc/module/下建一个smsbao_install.php文件,这个是安装短信宝的文件,代码如下:

<?php
if (!defined('in_mx')) {exit('Access Denied');}
$db = dbc(); 
global $db;$res=$db->insert('sms_config',array('code'=>'smsbao', 'name'=>'短信宝','signname'=>'云EC','config'=>'{"appkey":"","secretKey":"","reg":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","login":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","updatepwd":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","setpaypwd":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","changemobile":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","order":"\u606d\u559c\u4f60\u4e0b\u5355\u6210\u529f\uff0c\u8ba2\u5355\u53f7\u4e3a\uff1a${order_sn},\u795d\u4f60\u8d2d\u7269\u6109\u5feb\uff01"}','status'=>1));
if($res){
    echo '短信宝插件安装成功,请删除inc/module/smsbao_install.php文件';}else{
    echo '安装失败,请咨询短信宝客服';}
exit();
?>

接下来我们进行替换发送短信业务的代码,我们在项目/inc/plugin/sms/建立一个smsbao的文件夹,在这个文件夹中建立一个smsbao.php文件,这个文件是发送短信的业务文件,代码如下:

<?php
    if (!defined('in_mx')) {exit('Access Denied');}
    date_default_timezone_set('Asia/Shanghai'); 

    $sms_mod = array();
    $sms_mod['code']    = "smsbao"; //代码
    $sms_mod['name']    = '短信宝';//名称
    $sms_mod['config']  =  json_encode(array('appkey'=>'','secretKey'=>'','reg'=>'','login'=>'','updatepwd'=>'','setpaypwd'=>'','changemobile'=>''));//配置信息
    $sms_param=array(
        array('name'=>'smsconfig_appkey','value'=>'appkey','type'=>'text','desc'=>"短信宝用户名,还没有短信宝账户?点击马上<a href='http://www.smsbao.com' target='_blank'>免费注册</a>"),
        array('name'=>'smsconfig_secretKey','value'=>'secretKey','type'=>'text','desc'=>'短信宝密码'),
        array('name'=>'smsconfig_reg','value'=>'注册模板','type'=>'text','desc'=>''),
        array('name'=>'smsconfig_login','value'=>'登录模板','type'=>'text','desc'=>''),
        array('name'=>'smsconfig_updatepwd','value'=>'修改密码模板','type'=>'text','desc'=>''),
        array('name'=>'smsconfig_setpaypwd','value'=>'设置支付密码模板','type'=>'text','desc'=>''),
        array('name'=>'smsconfig_changemobile','value'=>'更改手机号码模板','type'=>'text','desc'=>''),
        array('name'=>'smsconfig_order','value'=>'订单提醒模板','type'=>'text','desc'=>'有新订单时,短信提醒'),
      ); 

    function sendsms($recNum, $appkey,$secretKey,$signName='',$param='',$tplcode='',$extend='',$sms_type='code')
    {
        $pa['u'] = $appkey;
        $pa['p'] = md5($secretKey);
        $pa['m'] = $recNum;
        $tpl=$tplcode;
        $param=json_decode($param);
        foreach($param as $key=>$val){
            if(strpos($tpl,$key)){
                $tpl=str_replace('${'.$key.'}',$val,$tpl);
            }
        }
        $pa['c'] = "【".$signName."】".$tpl;
        $ret = http("http://api.smsbao.com/sms", $pa);
        $data=array('err'=>'');
        if($ret!='0'){
            return $data['err']=getResult($ret);
        }

    }

     /**
     * 发送http请求
     * @access protected
     * @param string $url  请求地址
     * @param string $param  get方式请求内容,数组形式,post方式时无效
     * * @param string $data  post请求方式时的内容,get方式时无效
     * @param string $method  请求方式,默认get
     */
   function http($url, $param, $data = '', $method = 'GET'){
        $opts = array(
            CURLOPT_TIMEOUT        => 30,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_SSL_VERIFYHOST => false,
        );

        /* 根据请求类型设置特定参数 */
        $opts[CURLOPT_URL] = $url . '?' . http_build_query($param);
        if(strtoupper($method) == 'POST'){
            $opts[CURLOPT_POST] = 1;
            $opts[CURLOPT_POSTFIELDS] = $data;

            if(is_string($data)){ //发送JSON数据
                $opts[CURLOPT_HTTPHEADER] = array(
                    'Content-Type: application/json; charset=utf-8',
                    'Content-Length: ' . strlen($data),
                );
            }
        }

        /* 初始化并执行curl请求 */
        $ch = curl_init();
        curl_setopt_array($ch, $opts);
        $data  = curl_exec($ch);
        $error = curl_error($ch);
        curl_close($ch);

        //发生错误,抛出异常
        if($error) throw new \Exception('请求发生错误:' . $error);

        return  $data;
    }
    function getResult($key){
        $rst['30'] = '密码错误';
        $rst['40'] = '账号不存在';
        $rst['41'] = '余额不足';
        $rst['42'] = '帐号过期';
        $rst['43'] = 'IP地址限制';
        $rst['50'] = '内容含有敏感词';
        $rst['51'] = '手机号码不正确';
        return $rst[$key];
    }
?>

接下来我们修改一下调用接口的文件,在项目/inc/admin_inc/page/message.sms.php文件,修改第6行左右,代码如下:

$code = $code=='' ?'smsbao':$code;

在项目/inc/lib/sms.php文件修改两个方法,代码如下:

public function __construct($sms_sp='') {
        global $ym_sms_sp;
        $sms_sp = 'smsbao';
        $ym_val=get_cache('sms', cache_static,$sms_sp);
        $this->sms_config = $ym_val;
        require plugin.'sms/'.$sms_sp.'/'.$sms_sp.'.php';
    }
    
    
    /**发送短信通知提醒*/
    function sms_notice($mobile, $type, $param=array())
 {
    global $ym_notice_mobile;

    switch ($type) {
        case 'order': //下订单通知商家
            $tpl_type ='order';
            $mobile = $ym_notice_mobile;
            break;

        default:
            $param='';
            break;
    }

return sendsms_patch($mobile, $tpl_type, json_encode($param,true));
}

好了,经过以上的替换,短信宝的短信平台已经替换成功了,可以正常使用了。最后我们进行发送测试。

报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,并且免审核了,短信内容3~5秒就可送达。

EC电商系统是由佛山市迈电子商务有限公司自主开发的一套基于PHP+MYSQL开源的、免费的电商系统软件。 拥有电脑PC端、手机端(微信端)、小程序、APP EC电商系统功能 支付整合了支付宝三端支付(PC、手机、APP),微信三端支付(PC扫码、微信公众号、APP),银联支付。 模块化设计,可方便快捷的接入其它第三方功能。 支持微信与QQ第三方登陆 支持阿里短信、腾讯短信、创蓝短信等多个接口 物流查询,批量打印快递单和发货单,运费计算设置 销售统计、排行榜、会员统计等 拥有限时抢购(秒杀)、分销、优惠券和拼团等丰富的营销工具 EC系统安装基本要求 1、PHP5.3版本以上 2、MYSQL5.0版本以上 3、支持rewrite伪静态规则 4、支持pdo_mysql连接模式 5、初次安装后,请先登陆后台更新缓存 EC电商系统 v1.2.1更新日志 1、修复部分环境下二维码不显示的问题。 EC自带二维码生成 你的网址/qrcode.html?data=yunec.cn,将yunec.cn换成你的链接即可 2、商品列表增加多属性筛选支持 3、修复更新优惠券状态时错将已使用的优惠券也更新为过期 4、修复文章发布远程图片下载失败 5、修复某些情况下运费计算出错导致页面不跳转 6、增加微信H5支付。同时优化了各端环境下显示支付方式,和排序不准确 7、修复优惠券领取相对时间下显示不正确和领取立即过期问题 8、修改几处安全问题 9、修复导航不支持https 10、后台商品列表增加商品编号查询 11、修复微信分享没有缩略图 12、修复手机端注册,如果手机已经存在等不提示错误 13、授权版本增加小程序,同时完善了API接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值