首先这个教程是非常简单的,如果只有注册有对接短信的需要,那就可以往下看,如果要对接的比较完全,那也可以将就的往下看,非常简单的教程,弊端很大,因为验证码是存在cookie里的所以高手勿喷。可以的话就把cookieMD5加密就好了,这里我不多说。
首先把做好的api接口文档传到根目录下。目录为../sms/alidayu/
主要的接口文件是api.php
"0", "contect"=>"请填写正确的手机号!")); return; } //输入验证码 $c = new TopClient; $c ->appkey = 'appkey' ; $c ->secretKey = 'secretKey' ; $req = new AlibabaAliqinFcSmsNumSendRequest; $req ->setExtend( "" ); $req ->setSmsType( "normal" ); $req ->setSmsFreeSignName( "签名" ); $req ->setSmsParam( "{code:'$code',product:'商城名'}" ); $req ->setRecNum( "$mobile" ); $req ->setSmsTemplateCode( "SMS_71185915" ); $resp = $c ->execute( $req ); $resp = (array) $resp; if (empty($resp) || !empty($resp['code'])) { echo json_encode(array("status" => 0, "contect" => "短信发送失败,请重试!(" . $resp['sub_msg'] . "/code: " . $resp['code'] . "/sub_code: " . $resp['sub_code'] . ")")); return; } echo json_encode(array("status" => 1 ,"contect" => "短信发送成功,请查收!")); ?>
先配置好此文件,只要把appkey、secretKey、签名填写配置就好了,模版不用管,因为使用的是申请阿里大于自带的默认模版。
接下来修改ECSHOP的模版文件../themes/模版/user_passport.dwt。因为是存在cookie里的,所以在引入jquery后面再引入jquery.cookie.js,可以的话再引入和MD5加密下,这里不多说。
然后下面的代码填如注册字段地方,比方说密码后面或邮箱前面都可以,具体位置可以调整
保存上传后看看效果,有问题的话就调整下前端样式,没问题继续该编写对接短信接口。
写入js
$(function() { $('#zphone').click(function() { var mobile = $('#mobile_phone').val(), datas = {}, obj = $('#zphone'); var arr = ['0','1','2','3','4','5','6','7','8','9']; var code = ''; for(var i = 0 ; i < 5 ; i ++ ) code += ''+arr[Math.floor(Math.random() * arr.length)]; $.cookie('code', code); if(!obj.hasClass('x-readonly')) { if(!(/^1[34578]\d{9}$/.test(mobile))) { $('#mobile_phone_notice').html("手机号码有误,请新重填写。"); }else { datas.mobile = mobile; datas.code = code; obj.addClass('x-readonly'); xCountDown(); $.ajax({ type: 'POST', url: "/sms/alidayu/api.php", data: datas, dataType: 'json', success: function(data) { if(data.status == 2) { $('#mobile_phone_notice').html('该手机号今天获取验证码的次数已达最大。'); } else if(data.status == 0) { $('#mobile_phone_notice').html('验证码发送失败,请确认该手机号是否有效。'); } else { $('#mobile_code_notice').html('验证码发送成功!'); } }, }); } } }); function xCountDown() { var count = 60; var obj = $('#zphone'); obj.html(count + ' s'); var time = setInterval(function() { count--; if(count < 0) { obj.removeClass('x-readonly').html('获取手机验证码'); clearInterval(time); } else { obj.html(count + ' s'); } }, 1000); } });
这里的是随机生成了5位数字,想生成几位看循环次数,想增加英文字母,就把字母写入数组中,自己可以自由发挥下。代码通过ajax获取短信接口,格式为json,然后解析json状态。保存上传,看看能不能收到验证码。
别急还有,提交过程验证输入的验证码。打开提交验证的js。路径:../js/user.js。找到register()方法,在最后弹出提示的前面加入代码。
if ($.cookie('code') != $('#mobile_code').val()){ msg += '验证码错误,请重试!\n'; }
保存上传。刷新测试有没有效果。可以的话那就验证也OK了。
最后一步,保存刚才提交的mobile到user数据表中。打开根目录下的user.php,找到注册会员数据的方法act_register,将以下几行代码插入到原有的验证手机号的代码前。
$mobile = isset($_POST['mobile_phone']) ? trim($_POST['mobile_phone']) : ''; $other['mobile_phone'] = $mobile; $other['is_validated'] = '1';
继续保存上传,做一次完整的测试。至此,大于短信对接注册就全部好了。
这里只是一个很简单的教程,没有用到数据库,也只是对接了注册,找回密码这些都没有对接,不过可以参考借鉴下。勿喷
评论回复