niushop商城系统短信接口替换
来源:互联网 发布:淘宝店需要那些条件 编辑:程序博客网 时间:2024/06/05 20:38
Niushop是一款基于thinkphp5.0 MVC+service框架的开源软件,方便二次开发与集成,今天我就来分享一下,如何进行二次开发。我以替换短信接口为例,一步一步的手把手教大家开发过程,我们做演示的短信平台是短信宝(http://www.smsbao.com)短信平台,我们公司和短信宝平台合作好几年了,他们的平台非常稳定,而且快速,注册还送免费测试短信,大家可以在短信宝平台注册一个账号,进行测试。
首先,我们先更换后台的显示界面文件。打开模板文件,替换一下模板文件。打开项目/template/admin/Config/messageConfig.html,替换的代码从138行~160行,代码如下图所示:
<div class="set-style"> <dl> <dt>是否开启:</dt> <dd style="width:5%;"> <input id="sms_is_use" type="checkbox" class="checkbox" {if condition="$mobile_message.is_use=='1'"}checked="checked"{/if}/> </dd> <dd style="width:20%;color:#666;" class="showmessage">当前使用短信宝短信配置</dd> </dl> <dl> <dt>短信宝帐号:</dt> <dd> <input id="app_key" type="text" value="{$mobile_message['value']['appKey']}" /> 立即<a href="http://www.smsbao.com" target="_blank">免费注册</a>短信宝账号 </dd> </dl> <dl> <dt>短信宝密码:</dt> <dd> <input id="secret_key" type="password" value="{$mobile_message['value']['secretKey']}" /> </dd> </dl> <button class="edit_button" onclick="setConfigAjax();">提交</button></div>
打开项目/template/admin/Config/notifySmsTemplate.html,替换的代码从191行~203行,代码如下图所示:
<div class="right_main"> <div class="main-top">您正在编辑<a href="javascript:;" id="update_nameid"></a>通知模板</div> <div class="qianming"> <div style="width:75px;float:left;">模板: </div> <input type="text" name="" id="template_titleid" value="{$template_select.template_title}" style="margin-right: 15px;"/></div> <div class="qianming"><input type="text" name="" id="signNameid" style="margin-right: 15px;" value="{$template_select.sign_name }"/></div> <div class="bl"> <div style="width:75px;float:left;">可用变量:</div> <div style="width:88%;float: left;font-size:13px;" id="user_variable"> {foreach name="template_item_list" item="item_obj"} {$item_obj.replace_name}({$item_obj.item_name}), {/foreach} </div> </div></div>
经过替换后,所有的显示都变成短信宝短信平台的了。第一步完成。接下来替换发送短信的业务代码。修改项目/data/extend/hook/Notify.php文件,代码如下:
<?phpnamespace data\extend\hook;use data\model\WebSiteModel;use data\model\UserModel;use data\model\ConfigModel;use data\model\NoticeTemplateModel;use data\model\NsOrderGoodsModel;use data\model\NsOrderModel;use phpDocumentor\Reflection\Types\This;use data\model\NsOrderGoodsExpressModel;class Notify{ public $result=array( "code"=>0, "message"=>"success", "param"=>"" ); /** * 邮件的配置信息 * @var unknown */ public $email_is_open=0; public $email_host=""; public $email_port=""; public $email_addr=""; public $email_id=""; public $email_pass=""; /** * 短信的配置信息 * @var unknown */ public $mobile_is_open; public $appKey=""; public $secretKey=""; public $freeSignName=""; public $shop_name; public $ali_use_type=0; /** * 得到系统通知的配置信息 * @param unknown $shop_id */ private function getShopNotifyInfo($shop_id){ $website_model=new WebSiteModel(); $website_obj=$website_model->getInfo("1=1", "title"); if(empty($website_obj)){ $this->shop_name="NiuShop开源商城"; }else{ $this->shop_name=$website_obj["title"]; } $config_model=new ConfigModel(); #查看邮箱是否开启 $email_info=$config_model->getInfo(["instance_id"=>$shop_id, "`key`"=>"EMAILMESSAGE"], "*"); if(!empty($email_info)){ $this->email_is_open=$email_info["is_use"]; $value=$email_info["value"]; if(!empty($value)){ $email_array=json_decode($value, true); $this->email_host=$email_array["email_host"]; $this->email_port=$email_array["email_port"]; $this->email_addr=$email_array["email_addr"]; $this->email_id=$email_array["email_id"]; $this->email_pass=$email_array["email_pass"]; } } $mobile_info=$config_model->getInfo(["instance_id"=>$shop_id, "`key`"=>"MOBILEMESSAGE"], "*"); if(!empty($mobile_info)){ $this->mobile_is_open=$mobile_info["is_use"]; $value=$mobile_info["value"]; if(!empty($value)){ $mobile_array=json_decode($value, true); $this->appKey=$mobile_array["appKey"]; $this->secretKey=$mobile_array["secretKey"]; $this->freeSignName=$mobile_array["freeSignName"]; $this->ali_use_type=$mobile_array["user_type"]; if(empty($this->ali_use_type)){ $this->ali_use_type=0; } } } } public function sendSMS($appkey, $secret, $signName, $smsParam, $send_mobile, $template_code) { $content = strtr($template_code,$smsParam);//替换模板中的变量 $contents = '【'.$signName.'】'.$content; $url = 'http://api.smsbao.com/sms?u='.$appkey.'&p='.md5($secret).'&m='.$send_mobile.'&c='.$contents; $result = file_get_contents($url); return $result; } /** * 查询模板的信息 * @param unknown $shop_id * @param unknown $template_code * @param unknown $type * @return unknown */ private function getTemplateDetail($shop_id, $template_code, $type){ $template_model=new NoticeTemplateModel(); $template_obj=$template_model->getInfo(["instance_id"=>$shop_id, "template_type"=>$type, "template_code"=>$template_code]); return $template_obj; } /** * 处理阿里大于 的返回数据 * @param unknown $result */ private function dealAliSmsResult($result){ $deal_result=array(); try { if($this->ali_use_type==0){ #旧用户发送 if(!empty($result)){ if(!isset($result->result)){ $result=json_decode(json_encode($result), true); #发送失败 $deal_result["code"]=$result["code"]; $deal_result["message"]=$result["msg"]; }else{ #发送成功 $deal_result["code"]=0; $deal_result["message"]="发送成功"; } } }else{ #新用户发送 if(!empty($result)){ if($result->Code=="OK"){ #发送成功 $deal_result["code"]=0; $deal_result["message"]="发送成功"; }else{ #发送失败 $deal_result["code"]=-1; $deal_result["message"]=$result->Message; } } } } catch (\Exception $e) { $deal_result["code"]=-1; $deal_result["message"]="发送失败!"; } return $deal_result; } /** * 用户注册成功后 * @param string $params */ public function registAfter($params=null){ /** * 店铺id */ $shop_id=$params["shop_id"]; #查询系统配置信息 $this->getShopNotifyInfo(0); /** * 用户id */ $user_id=$params["user_id"]; $user_model=new UserModel(); $user_obj=$user_model->get($user_id); $mobile=""; $user_name=""; $email=""; if(empty($user_obj)){ $user_name="用户"; }else{ $user_name=$user_obj["user_name"]; $mobile=$user_obj["user_tel"]; $email=$user_obj["user_email"]; } #短信验证 if(!empty($mobile) && $this->mobile_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "after_register", "sms"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $sms_params=array( "shop_name"=>$this->shop_name, "user_name"=>$user_name ); $result=$this->sendSMS($this->appKey, $this->secretKey, $template_obj["sign_name"], $sms_params, $mobile, $template_obj["template_title"], $this->ali_use_type); $this->result["code"]=$result->code; $this->result["message"]=$result->msg; }else{ $this->result["code"]=-1; $this->result["message"]="商家没开启短信模板!"; } }else{ $this->result["code"]=-1; $this->result["message"]="商家没开启短信模板!"; } #邮箱验证 if(!empty($email) && $this->email_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "after_register", "email"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $content=$template_obj["template_content"]; $content=str_replace("{商场名称}", $this->shop_name, $content); $content=str_replace("{用户名称}", $user_name, $content); $result=emailSend($this->email_host, $this->email_id, $this->email_pass, $this->email_addr, $email, $template_obj["template_title"], $content); if($result == '0'){ $this->result["code"]=0; $this->result["message"]="发送成功!"; }else{ $this->result["code"]=$result; $this->result["message"]="发送失败!"; } }else{ $this->result["code"]=-1; $this->result["message"]="商家没开启邮箱验证"; } }else{ $this->result["code"]=-1; $this->result["message"]="商家没开启邮箱验证"; } return $this->result; } /** * 注册短信验证 * @param string $params */ public function registBefor($params=null){ $rand = rand(100000,999999); $mobile=$params["mobile"]; $shop_id=$params["shop_id"]; #查询系统配置信息 $this->getShopNotifyInfo($shop_id); $result=""; if(!empty($mobile) && $this->mobile_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "register_validate", "sms"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $sms_params=array( ); $this->result["param"]=$rand; if(!empty($this->appKey) && !empty($this->secretKey) && !empty($template_obj["sign_name"]) && !empty($template_obj["template_title"])){ $sms_params=array( "number"=>$rand."", ); $result=$this->sendSMS($this->appKey, $this->secretKey, $template_obj["sign_name"], $sms_params, $mobile, $template_obj["template_title"], $this->ali_use_type); if ($result == '0') { $this->result["code"]=0; $this->result["message"]="发送成功!"; $this->result["param"]=$rand; }else{ $this->result["code"]= $result; $this->result["message"]="发送失败!"; $this->result["param"]=$rand; } }else{ $this->result["code"]=-1; $this->result["message"]="短信配置信息有误!"; } }else{ $this->result["code"]=-1; $this->result["message"]="短信通知模板有误!"; } }else{ $this->result["code"]=-1; $this->result["message"]="店家没有开启短信验证"; } return $this->result; } /** * 注册邮箱验证 * 已测试 * @param string $params */ public function registEmailValidation($params=null){ $rand = rand(100000,999999); $email=$params["email"]; $shop_id=$params["shop_id"]; #查询系统配置信息 $this->getShopNotifyInfo($shop_id); if(!empty($email) && $this->email_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "register_validate", "email"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $content=$template_obj["template_content"]; $content=str_replace("{验证码}", $rand, $content); if(!empty($this->email_host) && !empty($this->email_id) && !empty($this->email_pass) && !empty($this->email_addr)){ $result=emailSend($this->email_host, $this->email_id, $this->email_pass, $this->email_addr, $email, $template_obj["template_title"], $content); $this->result["param"]=$rand; if($result){ $this->result["code"]=0; $this->result["message"]="发送成功!"; }else{ $this->result["code"]=-1; $this->result["message"]="发送失败!"; } }else{ $this->result["code"]=-1; $this->result["message"]="邮箱配置信息有误!"; } }else{ $this->result["code"]=-1; $this->result["message"]="配置邮箱注册验证模板有误!"; } }else{ $this->result["code"]=-1; $this->result["message"]="店家没有开启邮箱验证"; } return $this->result; } /** * 订单发货 * @param string $params */ public function orderDelivery($params=null){ #查询系统配置信息 $this->getShopNotifyInfo(0); $order_goods_ids=$params["order_goods_ids"]; $order_goods_str=explode(",", $order_goods_ids); $result=""; $user_name=""; if(count($order_goods_str)>0){ $order_goods_id=$order_goods_str[0]; $order_goods_model=new NsOrderGoodsModel(); $order_goods_obj=$order_goods_model->get($order_goods_id); $shop_id=$order_goods_obj["shop_id"]; $order_id=$order_goods_obj["order_id"]; $order_model=new NsOrderModel(); $order_obj=$order_model->get($order_id); $user_name=$order_obj["receiver_name"]; $buyer_id=$order_obj["buyer_id"]; $goods_name=$order_goods_obj["goods_name"]; $goods_sku=$order_goods_obj["sku_name"]; $order_no=$order_obj["out_trade_no"]; $order_money=$order_obj["pay_money"]; $goods_money=$order_goods_obj["goods_money"]; $mobile=$order_obj["receiver_mobile"]; $goods_express_model=new NsOrderGoodsExpressModel(); $express_obj=$goods_express_model->getInfo(["order_id"=>$order_id, "order_goods_id_array"=>$order_goods_ids], "*"); $sms_params=array( "shop_name"=>$this->shop_name, "user_name"=>$user_name, "goods_name"=>$goods_name, "goods_sku"=>$goods_sku, "order_no"=>$order_no, "order_money"=>$order_money, "goods_money"=>$goods_money, "express_company"=>$express_obj["express_name"], "express_no"=>$express_obj["express_no"] ); #短信发送 if(!empty($mobile) && $this->mobile_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "order_deliver", "sms"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $result=$this->sendSMS($this->appKey, $this->secretKey, $template_obj["sign_name"], $sms_params, $mobile, $template_obj["template_title"], $this->ali_use_type); } } // 邮件发送 $user_model = new UserModel(); $user_obj = $user_model->get($buyer_id); if (! empty($user_obj)) { $email = $user_obj["user_email"]; if (! empty($email) && $this->email_is_open == 1) { $template_obj = $this->getTemplateDetail($shop_id, "order_deliver", "email"); if (! empty($template_obj) && $template_obj["is_enable"] == 1) { $content = $template_obj["template_content"]; $content = str_replace("{商场名称}", $this->shop_name, $content); $content = str_replace("{用户名称}", $user_name, $content); $content = str_replace("{商品名称}", $goods_name, $content); $content = str_replace("{商品规格}", $goods_sku, $content); $content = str_replace("{主订单号}", $order_no, $content); $content = str_replace("{订单金额}", $order_money, $content); $content = str_replace("{商品金额}", $goods_money, $content); $content = str_replace("{物流公司}", $express_obj["express_name"], $content); $content = str_replace("{快递编号}", $express_obj["express_no"], $content); $result=emailSend($this->email_host, $this->email_id, $this->email_pass, $this->email_addr, $email, $template_obj["template_title"], $content); } } } } } /** * 订单确认 * @param string $params */ public function orderComplete($params=null){ #查询系统配置信息 $this->getShopNotifyInfo(0); $order_id=$params["order_id"]; $order_model=new NsOrderModel(); $order_obj=$order_model->get($order_id); $shop_id=$order_obj["shop_id"]; $buyer_id=$order_obj["buyer_id"]; $user_name=$order_obj["receiver_name"]; $order_no=$order_obj["out_trade_no"]; $order_money=$order_obj["pay_money"]; $mobile=$order_obj["receiver_mobile"]; $sms_params=array( "shop_name"=>$this->shop_name, "user_name"=>$user_name, "order_no"=>$order_no, "order_money"=>$order_money ); // 短信发送 if (! empty($mobile) && $this->mobile_is_open == 1) { $template_obj = $this->getTemplateDetail($shop_id, "confirm_order", "sms"); if (! empty($template_obj) && $template_obj["is_enable"] == 1) { $result = $this->sendSMS($this->appKey, $this->secretKey, $template_obj["sign_name"],$sms_params, $mobile, $template_obj["template_title"], $this->ali_use_type); } } // 邮件发送 $user_model = new UserModel(); $user_obj = $user_model->get($buyer_id); if (! empty($user_obj)) { $email = $user_obj["user_email"]; if (! empty($email) && $this->email_is_open == 1) { $template_obj = $this->getTemplateDetail($shop_id, "confirm_order", "email"); if (! empty($template_obj) && $template_obj["is_enable"] == 1) { $content = $template_obj["template_content"]; $content = str_replace("{商场名称}", $this->shop_name, $content); $content=str_replace("{用户名称}", $user_name, $content); $content=str_replace("{主订单号}", $order_no, $content); $content=str_replace("{订单金额}", $order_money, $content); $result=emailSend($this->email_host, $this->email_id, $this->email_pass, $this->email_addr, $email, $template_obj["template_title"], $content); } } } } /** * 订单付款成功 * @param string $params */ public function orderPay($params=null){ #查询系统配置信息 $this->getShopNotifyInfo(0); $order_id=$params["order_id"]; $order_model=new NsOrderModel(); $order_obj=$order_model->get($order_id); $shop_id=$order_obj["shop_id"]; $buyer_id=$order_obj["buyer_id"]; $user_name=$order_obj["receiver_name"]; $order_no=$order_obj["out_trade_no"]; $order_money=$order_obj["pay_money"]; $mobile=$order_obj["receiver_mobile"]; $goods_money=$order_obj["goods_money"]; $sms_params=array( "shop_name"=>$this->shop_name, "user_name"=>$user_name, "order_no"=>$order_no, "order_money"=>$order_money, "goods_money"=>$goods_money ); #短信发送 if(!empty($mobile) && $this->mobile_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "pay_success", "sms"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $result=$this->sendSMS($this->appKey, $this->secretKey, $template_obj["sign_name"],$sms_params, $mobile, $template_obj["template_title"], $this->ali_use_type); } } #邮件发送 $user_model=new UserModel(); $user_obj=$user_model->get($buyer_id); if(!empty($user_obj)){ $email=$user_obj["user_email"]; if(!empty($email) && $this->email_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "pay_success", "email"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $content=$template_obj["template_content"]; $content=str_replace("{商场名称}", $this->shop_name, $content); $content=str_replace("{用户名称}", $user_name, $content); $content=str_replace("{主订单号}", $order_no, $content); $content=str_replace("{订单金额}", $order_money, $content); $content=str_replace("{商品金额}", $goods_money, $content); $result=emailSend($this->email_host, $this->email_id, $this->email_pass, $this->email_addr, $email, $template_obj["template_title"], $content); } } } } /** * 订单创建成功 * @param string $params */ public function orderCreate($params=null){ #查询系统配置信息 $this->getShopNotifyInfo(0); $order_id=$params["order_id"]; $order_model=new NsOrderModel(); $order_obj=$order_model->get($order_id); $shop_id=$order_obj["shop_id"]; $buyer_id=$order_obj["buyer_id"]; $user_name=$order_obj["receiver_name"]; $order_no=$order_obj["out_trade_no"]; $order_money=$order_obj["pay_money"]; $mobile=$order_obj["receiver_mobile"]; $goods_money=$order_obj["goods_money"]; $sms_params= array( "shop_name"=>$this->shop_name, "user_name"=>$user_name, "order_no"=>$order_no, "order_money"=>$order_money, "goods_money"=>$goods_money ); #短信发送 if(!empty($mobile) && $this->mobile_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "create_order", "sms"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $result=$this->sendSMS($this->appKey, $this->secretKey, $template_obj["sign_name"],$sms_params, $mobile, $template_obj["template_title"], $this->ali_use_type); } } // 邮件发送 $user_model = new UserModel(); $user_obj = $user_model->get($buyer_id); if (! empty($user_obj)) { $email = $user_obj["user_email"]; if (! empty($email) && $this->email_is_open == 1) { $template_obj = $this->getTemplateDetail($shop_id, "create_order", "email"); if (! empty($template_obj) && $template_obj["is_enable"] == 1) { $content = $template_obj["template_content"]; $content = str_replace("{商场名称}", $this->shop_name, $content); $content = str_replace("{用户名称}", $user_name, $content); $content = str_replace("{主订单号}", $order_no, $content); $content = str_replace("{订单金额}", $order_money, $content); $content = str_replace("{商品金额}", $goods_money, $content); $result = emailSend($this->email_host, $this->email_id, $this->email_pass, $this->email_addr, $email, $template_obj["template_title"], $content); } } } } /** * 找回密码 * @param string $params * @return multitype:number string */ public function forgotPassword($params=null){ $send_type=$params["send_type"]; $send_param=$params["send_param"]; $shop_id=$params["shop_id"]; $this->getShopNotifyInfo($shop_id); $rand = rand(100000,999999); $template_obj=$this->getTemplateDetail($shop_id, "forgot_password", $send_type); if($send_type=="email"){ #邮箱验证 if($this->email_is_open==1){ if(!empty($template_obj) && $template_obj["is_enable"]==1){ #发送 $content=$template_obj["template_content"]; $content=str_replace("{验证码}", $rand, $content); $result=emailSend($this->email_host, $this->email_id, $this->email_pass, $this->email_addr, $send_param, $template_obj["template_title"], $content); $this->result["param"]=$rand; if($result){ $this->result["code"]=0; $this->result["message"]="发送成功!"; }else{ $this->result["code"]=-1; $this->result["message"]="发送失败!"; } }else{ $this->result["code"]=-1; $this->result["message"]="商家没有设置找回密码的模板!"; } }else{ $this->result["code"]=-1; $this->result["message"]="商家没开启邮箱验证!"; } }else{ #短信验证 if($this->mobile_is_open==1){ if(!empty($template_obj) && $template_obj["is_enable"]==1){ #发送 $sms_params=array( "number"=>$rand."" ); $result=$this->sendSMS($this->appKey, $this->secretKey, $template_obj["sign_name"],$sms_params, $send_param, $template_obj["template_title"], $this->ali_use_type); if ($result == '0') { $this->result["code"]=0; $this->result["message"]="发送成功!"; $this->result["param"]=$rand; }else{ $this->result["code"]= $result; $this->result["message"]="发送失败!"; $this->result["param"]=$rand; } }else{ $this->result["code"]=-1; $this->result["message"]="商家没有设置找回密码的短信模板!"; } }else{ $this->result["code"]=-1; $this->result["message"]="商家没开启短信验证!"; } } return $this->result; } /** * 用户绑定手机号 * @param string $params */ public function bindMobile($params=null){ $rand = rand(100000,999999); $mobile=$params["mobile"]; $shop_id=$params["shop_id"]; $user_id=$params["user_id"]; #查询系统配置信息 $this->getShopNotifyInfo($shop_id); if(!empty($mobile) && $this->mobile_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "bind_mobile", "sms"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $user_model=new UserModel(); $user_obj=$user_model->get($user_id); $sms_params=array( "number"=>$rand."", "user_name"=>$user_obj["user_name"] ); $this->result["param"]=$rand; if(!empty($this->appKey) && !empty($this->secretKey) && !empty($template_obj["sign_name"]) && !empty($template_obj["template_title"])){ $result=$this->sendSMS($this->appKey, $this->secretKey, $template_obj["sign_name"], json_encode($sms_params), $mobile, $template_obj["template_title"], $this->ali_use_type); if ($result == '0') { $this->result["code"]=0; $this->result["message"]="发送成功!"; $this->result["param"]=$rand; }else{ $this->result["code"]= $result; $this->result["message"]="发送失败!"; $this->result["param"]=$rand; } }else{ $this->result["code"]=-1; $this->result["message"]="短信配置信息有误!"; } }else{ $this->result["code"]=-1; $this->result["message"]="短信通知模板有误!"; } }else{ $this->result["code"]=-1; $this->result["message"]="店家没有开启短信验证"; } return $this->result; } /** * 用户绑定邮箱 * @param string $params */ public function bindEmail($params=null){ $rand = rand(100000,999999); $email=$params["email"]; $shop_id=$params["shop_id"]; $user_id=$params["user_id"]; #查询系统配置信息 $this->getShopNotifyInfo($shop_id); if(!empty($email) && $this->email_is_open==1){ $template_obj=$this->getTemplateDetail($shop_id, "bind_email", "email"); if(!empty($template_obj) && $template_obj["is_enable"]==1){ $user_model=new UserModel(); $user_obj=$user_model->get($user_id); $content=$template_obj["template_content"]; $content=str_replace("{验证码}", $rand, $content); $content=str_replace("{用户名称}", $user_obj["user_name"], $content); $this->result["param"]=$rand; if(!empty($this->email_host) && !empty($this->email_id) && !empty($this->email_pass) && !empty($this->email_addr)){ $result=emailSend($this->email_host, $this->email_id, $this->email_pass, $this->email_addr, $email, $template_obj["template_title"], $content); if($result){ $this->result["code"]=0; $this->result["message"]="发送成功!"; }else{ $this->result["code"]=-1; $this->result["message"]="发送失败!"; } }else{ $this->result["code"]=-1; $this->result["message"]="邮箱配置信息有误!"; } }else{ $this->result["code"]=-1; $this->result["message"]="邮箱通知模板有误!"; } }else{ $this->result["code"]=-1; $this->result["message"]="店家没有开启邮箱验证"; } return $this->result; }}?>
修改完成之后,短信宝的接口替换完成了,但是niushop1.05这个版本用户注册成功后发送短信失败这个BUG在此次演示中也修复了,只需要修改项目/data/service/Member.php中的registerMember方法,代码如下:
public function registerMember($user_name, $password, $email, $mobile, $user_qq_id, $qq_info, $wx_openid, $wx_info, $wx_unionid) { if(trim($user_name) != ""){ $is_false = $this->verifyValue($user_name, $password, "plain"); }else{ if($mobile != "" && $email ==""){ $is_false = $this->verifyValue($user_name, $password, "mobile"); }else{ $is_false = $this->verifyValue($user_name, $password, "email"); } } if(!$is_false){ return USER_WORDS_ERROR; } $res = parent::add($user_name, $password, $email, $mobile, 0, $user_qq_id, $qq_info, $wx_openid, $wx_info, $wx_unionid, 1); if ($res > 0) { if ($mobile) { $params['shop_id'] = 0; $params['user_id'] = $res; $result = runhook('Notify', 'registAfter', $params); } //获取默认会员等级id $member_level = new NsMemberLevelModel(); $level_info = $member_level->getInfo(['is_default' => 1], 'level_id'); $member_level = $level_info['level_id']; $member = new NsMemberModel(); $data = array( 'uid' => $res, 'member_name' => $user_name, 'member_level'=>$member_level, 'reg_time' => date("Y-m-d H:i:s", time()) ); $retval = $member->save($data); // 注册会员送积分 $promote_reward_rule = new PromoteRewardRule(); // 添加关注 switch (NS_VERSION) { case NS_VER_B2C: break; case NS_VER_B2C_FX: if (! empty($_SESSION['source_uid'])) { // 判断当前版本 $nfx_user = new NfxUser(); $nfx_user->userAssociateShop($res, 0, $_SESSION['source_uid']); } else { // 判断当前版本 $nfx_user = new NfxUser(); $nfx_user->userAssociateShop($res, 0, 0); } break; } // 平台赠送积分 $promote_reward_rule->RegisterMemberSendPoint(0, $res); // 直接登录 if (! empty($user_name)) { $this->login($user_name, $password); } elseif (! empty($mobile)) { $this->login($mobile, $password); } elseif (! empty($user_qq_id)) { $this->qqLogin($user_qq_id); } elseif (! empty($wx_openid)) { $this->wchatLogin($wx_openid); } elseif (! empty($wx_unionid)) { $this->wchatUnionLogin($wx_unionid); } } return $res; }
这样用户注册成功后也可以发送短信通知了,我们在添加短信模版的时候,会发现超过50个字符后的文字是没有的,这是因为在数据库中限制了模版的长度为50,我们只需要修改一下字段长度就可以了。在项目/application/shop/controller创建一个Smsbao.php文件,代码如下:
<?php/** * Smsbao.php * 短信宝插件安装,修改模板字段长度 */namespace app\shop\controller;use think\Controller;use think\Db;class Smsbao extends Controller{ /** * 修改长度为255 */ public function index() { Db::query("alter table sys_notice_template modify column template_title varchar(255) not null"); echo '短信宝插件安装成功'; }}
我们只需要访问 域名/shop/Smsbao.php看到短信宝插件安装成功就证明字段修改成功。
经过以上的替换,短信宝的短信平台已经替换成功了,可以正常使用了。
给大家几个示例模版:
注册成功:恭喜你成功注册为shop_name的会员,会员名称为:user_tel。
注:注册成功发送短信仅限手机注册,手机注册会员名称为手机号,不能填写user_name.
注册验证:您的验证码为:number,请不要告诉他人。
充值成功:user_name你好,恭喜你在shop_name充值成功,充值金额为:recharge_money。
确认订单:user_name你好,恭喜你在shop_name购物成功,订单号为:order_no,订单金额为:order_money,有任何疑问请咨询客服。
付款成功:user_name你好,恭喜你在shop_name付款成功,订单号为:order_no,订单金额为:order_money,有任何疑问请咨询客服。
下单成功:user_name你好,恭喜你在shop_name下单成功,订单号为:order_no,订单金额为:order_money,有任何疑问请咨询客服。
- niushop商城系统短信接口替换
- NiuShop开源商城系统
- Niushop 商城系统目录结构说明
- Niushop开源商城 平台招商接口类
- Niushop开源商城微信分销接口类
- 骑士人才系统替换短信接口
- Niushop开源商城特点
- Tpshop商城短信接口开发
- CMSeasy短信接口替换
- PHPCMS短信接口替换
- somCNS短信接口替换
- Niushop 开源电商系统
- iWebShop如何替换短信接口
- 蚂蚁分类短信接口替换
- Niushop统一支付接口设计思路
- 大商创2.2.7短信接口替换
- 大商创V2.7版短信接口替换
- 海盗云商短信接口替换
- JZOJ__Day 6:【普及模拟】团队背包(team)
- cuda计时⌛️
- JVM调优:PermSpace溢出
- 大数据和高并发的解决方案汇总
- Oracle 存储过程
- niushop商城系统短信接口替换
- 暑假快速学习JQuery的学习笔记
- opencv和magick两个图像处理库的使用心得
- 网络请求——————AsyncTask——————深入理解AsyncTask的工作原理
- python调用shell命令之三大方法
- Spark中的Pi Estimation
- redis学习笔记三(列表)
- Apache和Apache Tomcat的区别是什么?
- Ubuntu Apache 2.4 配置-HTTPS、python mod WSGI