ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 接口情况 作者:ncgis 时间:20150416 作用:验证填写电话是否注册 提交方法:GET 提交参数:mobile 所在文件:passport 接口地址:http://test.lingsq.com/index.php/api?method=lingsqapi.api.passport.sendRegSms&mobile=[mobile] 正式接口:http://www.lingsq.com/index.php/api?method=lingsqapi.api.passport.sendRegSms&mobile=[mobile] 返回数据样式: ~~~ {"errNo":"1","errMsg":"ok"} 发送成功 {"errNo":"20002","errMsg":"手机号码输入有误"} 手机号码输入有误 {"errNo":"30002","errMsg":"手机号码已注册"} 手机号码已注册 {"errNo":"30003","errMsg":"手机短信已下发,从新发送需等两分钟"}手机短信已下发,从新发送需等两分钟 {"errNo":"30004","errMsg":"短信发送失败,请重新获取验证码"} 短信发送失败,请重新获取验证码 ~~~ ## 接口实现代码 ~~~ //发送短信函数 public function sendRegSms() { $mobile=$_GET["mobile"]; return $this->sendSms($mobile,__FUNCTION__,"sendappmobilecode","userRegister"); } ~~~ //其中依赖base中的函数 ~~~ /** * @作者 ncgis * @时间 20150417 * @作用 用于发短信 * @参数 * $mobile 手机号码 * $fuc 当前函数名 使用__FUNCTION__传值 * $cls 对应的短信模版的actions中的名称 * $sendcodetype 短信类型 * * */ public function sendSms($mobile,$fuc,$cls,$sendcodetype) { $objmember=app::get('b2c')->model('members'); $objaccount=app::get('b2c')->model('member_account'); if(empty($mobile)) { $back["errNo"]=20005; $back["errMsg"]=$this->errMsg($back["errNo"]); return $back; } if(!preg_match("/^13[0-9]{1}[0-9]{8}$|170[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}|14[0-9]{1}[0-9]{8}$/", $mobile)) { $back["errNo"]=20002; $back["errMsg"]=$this->errMsg($back["errNo"]); return $back; } if($sendcodetype=="userRegister") { if($objmember->is_exists_mobile($mobile)) { $back["errNo"]=30002; $back["errMsg"]=$this->errMsg($back["errNo"]); return $back; } } //验证是否是恶意请求验证码 $request_time = time(); $isSpite = app::get('b2c')->model('message_log')->isSpiteRequest($request_time,$mobile,$msg); if($isSpite != 'ok') { if($isSpite == 'spite') { $message_log = app::get('b2c')->model('message_log')->saveMessageLog($fuc,$request_time,$mobile,base_request::get_remote_addr(),'spite','sms');//恶意请求 记录日志 } $back["errNo"]=30003; $back["errMsg"]=$this->errMsg($back["errNo"]); return $back; } $random = $this->randCode(); $_SESSION['MOBILE_CODE'] = $random; $data['contact']['phone']['mobile'] = $mobile; $data['mobile_code'] = $random; $data['sendmobilecodetype'] = $sendcodetype; $data['disabled_time'] = 2; $message_log = app::get('b2c')->model('message_log')->saveMessageLog($fuc,$request_time,$mobile,base_request::get_remote_addr(),'ok','sms');//正常请求 记录日志 $tmp_rs = $objaccount->fireEvent($cls, $data); if($tmp_rs) { $back["errNo"]=1; $back["errMsg"]=$this->errMsg($back["errNo"]); return $back; exit; } else { $back["errNo"]=30004; $back["errMsg"]=$this->errMsg($back["errNo"]); return $back; exit; } } ~~~ 另外实现此功能需要修改其他文件配合后使用,调用api文件不需要顾及 但是后台布置这需要考虑工作如以下 ## 1、修改代码 文件路径 app\b2c\model\member\messenger.php ### 在actions方法中添加 ~~~ 'account-sendappmobilecode'=> array( 'label' => app::get('b2c')->_('手机客户端短信验证码'), 'level' => 9, 'varmap' => app::get('b2c')->_('用户名') . '&nbsp;<{$uname}>&nbsp;&nbsp;&nbsp;&nbsp;' . app::get('b2c')->_('手机验证码') . '&nbsp;<{$mobile_code}>', 'isIndex'=>0//前后台控制发送的表示0为后台1为前台 ), ~~~ 登陆后台找到【控制面板】=》【邮件短信设置】=》【手机客户端短信验证码】 ![2015-04-16/552f6929c915f](https://box.kancloud.cn/2015-04-16_552f6929c915f.png) 添加你要发送的模版