云EC电商系统是一套基于PHP+MYSQL的开源电商系统软件,他是免费的开源的,使用范围广泛,小编对他还是比较熟悉的,今天小编就来分享一下如何进行二次开发。以替换短信接口为例,一步一步教大家开发过程,我们短信宝短信群发平台非常稳定,发送速度快,注册就送您免费测试短信,大家可以在短信宝注册一个帐号,进行测试。
首先我们先替换一下后台的显示界面,打开模版文件,项目/view/admin/message.sms.html文件,替换16~21行、49行,代码如下:
| 
 
						1 
						2 
						3 
						4 
						5 
						6 
 | 
<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> | 
| 
 
						1 
 | 
<input name="code" type="hidden" value="smsbao"> | 
经过替换后所有的显示已经变成短信宝的了,我们在项目/inc/module/下建一个smsbao_install.php文件,这个是安装短信宝的文件,代码如下:
| 
 
						1 
						2 
						3 
						4 
						5 
						6 
						7 
						8 
						9 
 | 
<?phpif (!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文件,这个文件是发送短信的业务文件,代码如下:
| 
 
						1 
						2 
						3 
						4 
						5 
						6 
						7 
						8 
						9 
						10 
						11 
						12 
						13 
						14 
						15 
						16 
						17 
						18 
						19 
						20 
						21 
						22 
						23 
						24 
						25 
						26 
						27 
						28 
						29 
						30 
						31 
						32 
						33 
						34 
						35 
						36 
						37 
						38 
						39 
						40 
						41 
						42 
						43 
						44 
						45 
						46 
						47 
						48 
						49 
						50 
						51 
						52 
						53 
						54 
						55 
						56 
						57 
						58 
						59 
						60 
						61 
						62 
						63 
						64 
						65 
						66 
						67 
						68 
						69 
						70 
						71 
						72 
						73 
						74 
						75 
						76 
						77 
						78 
						79 
						80 
						81 
						82 
						83 
						84 
						85 
						86 
						87 
						88 
						89 
						90 
						91 
						92 
						93 
 | 
<?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;        $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行左右,代码如下:
| 
 
						1 
 | 
$code = $code=='' ?'smsbao':$code; | 
在项目/inc/lib/sms.php文件修改两个方法,代码如下:
| 
 
						1 
						2 
						3 
						4 
						5 
						6 
						7 
						8 
						9 
						10 
						11 
						12 
						13 
						14 
						15 
						16 
						17 
						18 
						19 
						20 
						21 
						22 
						23 
						24 
						25 
						26 
						27 
 | 
 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秒就可送达。
最新更新
电商类
CMS类
微信类