## 接口情况
作者: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')->_('用户名') . ' <{$uname}> ' . app::get('b2c')->_('手机验证码') . ' <{$mobile_code}>',
'isIndex'=>0//前后台控制发送的表示0为后台1为前台
),
~~~
登陆后台找到【控制面板】=》【邮件短信设置】=》【手机客户端短信验证码】
![2015-04-16/552f6929c915f](https://box.kancloud.cn/2015-04-16_552f6929c915f.png)
添加你要发送的模版
- 手机是否使用验证接口
- 返回码所代表的含义
- 发送手机验证码接口
- 用户注册接口
- 获取商品所有分类
- 获取商品列表
- 用户登陆接口
- 获取商品详细信息
- 获取产品图文详情
- 获取商品评论列表
- 获取推荐商品
- 获取找回密码短信
- 重置密码
- 获取每日特惠商品
- 获取轮播图
- 用户中心首页
- 获取用户收藏商品
- 删除用户收藏商品
- 获取所有订单(所有订单、代付款订单、待收货订单、退换货订单)
- 加入购物车
- 获取购物车商品
- 删除购物车商品
- 购物车商品移入收藏夹
- 添加收货地址
- 获取用户收货地址
- 添加用户收藏
- 提交订单
- 填写订单
- 退出登录
- 确认支付成功(正在验证支付状态)
- 验证自动登陆
- 获取订单详情
- 设置默认收货地址
- 删除收货地址
- 修改收货地址