阿里大鱼 http://www.alidayu.com/ 的短信接口总体是不错的,别安驹个人认为不管是从性价比还是稳定性上都是跟同类的短信接口好些,毕竟是大公司的东西不会差到哪去。下面把之前开发的短信接口做个整理。

1,登陆阿里大鱼的管理中心新增自己的应用,然后使用什么模板请提交审核,此处不做多说。

2,核心步骤,整理阿里大鱼给出的php示例核心包,不过别安驹已经为你整理好了只需要下载即可  核心包传送门 (ps:解压密码:http://www.bieanju.com/)。

3,前台调用发送短信利用ajax异步请求处理发送,

  3.1、当然此处会先用一些公共配置所以先来看看配置:

/* 阿里大鱼短信接口 */
'Alidayu' => array(
'Appkey' => 'xxxx',
'SecretKey'=>'xxxx',
'SmsTemplate' => 'SMS_xxx',// 注册提示模板号
'SignName' => '测试短信',
'Product' => '别安驹测试短信内容',
'Expire' => '300'
),

 需要注意的地方是SignName,短信签名,位置在管理中心> 配置管理 > 短信通知 如图:

  3.2、后台发送短信方法(ps:可以写成公共函数,毕竟发短信的地方不止注册,可能需要修改密码或者找回密码都会用到)此处传参要求请参照阿里大鱼官方要求 传送门 (PS:请登录后查看):

//调用的发送方法
public function mobilevalid() {
$mobile = I('mobile');
echo sendMobileCode($mobile);
}
/*
* 阿里大鱼手机验证码发送函数
*
* */
function sendMobileCode($mobile){
Vendor('Alidayu.Client');
Vendor('Alidayu.SendSms');
Vendor('Alidayu.ResultSet');
Vendor('Alidayu.RequestCheckUtil');
Vendor('Alidayu.TopLogger');
$client = new Client();
$client->appkey = C('Alidayu.Appkey');
$client->secretKey = C('Alidayu.SecretKey');
/* 组装发送前置参数 */
$code = randCode(4);
$send_msg = array('code'=>$code,'product'=>C('Alidayu.Product'),'item'=>C('Alidayu.Product'));
$request = new SendSms();
$request->setExtend($mobile);
$request->setSmsType("normal");
$request->setSmsFreeSignName(C('Alidayu.SignName'));
$request->setSmsParam(json_encode($send_msg));
$request->setRecNum($mobile);
$request->setSmsTemplateCode(C('Alidayu.SmsTemplate'));
$result = json2array(json_encode($client->execute($request)));
if($result['result']['success']){
cookie('mobile_validated',$code,C('Alidayu.Expire'));
$msg = array('status'=> 1,'info'=>"验证码已发送至您的手机!");
}else{
$msg = array('status'=> 0,'info'=>"验证码发送失败,".$result['sub_msg']."请稍后重试!");
}
return json_encode($msg); }

发送短信的公共函数中使用的函数:

  1:json串转array处理 json2array:

 /**
* json串转array处理
* @param json json字符串
* @author bieanju <bieanju@163.com>
* @return array
*/
function json2array($json){ $json = str_replace("\r\n", '\n',trim($json,chr(239).chr(187).chr(191)));//剔除bom以及去除\r return json_decode($json,true); }

  2:随机生成验证码数字函数:

function randCode($length){
return substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, $length);
}

  3.3、前台调用主要是ajax写的函数处理发送短信和倒计时:

var mobileUrl = "处理发送短信的方法地址";
$(function(){
  $('#sendmsg').click(function(){
var mobile = $("input[name='mobile']").val();
var url = mobileUrl;
curCount = count;
if(!mobile){
layer.msg("对不起请先填写手机号");
return false;
}
$.get(mobileUrl,{mobile:mobile},function(json){
json = eval("("+json+")");
if(json.status){
InterValObj = window.setInterval(SetRemainTime, 1000);
layer.msg(json.info);
}else{
layer.msg(json.info);
}
}) })
}) function SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj);//停止计时器
$("#sendmsg").removeAttr("disabled");//启用按钮
$("#sendmsg").html("重新发送验证码");
$("#sendmsg").css("background","#FAEBC4");
}else{
curCount--;
$("#sendmsg").html(curCount+"秒后重发");
$("#sendmsg").attr("disabled","disabled");
$("#sendmsg").css("background","#E8E6E0");
}
}

Ok大功告成,短信模板就此已经发送成功了!是不是很简单呢?哈哈……

阿里大鱼短信接口整合Tp3.2.3开发整理的更多相关文章

  1. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  2. 阿里大鱼短信接口(Python3版)

    近期由于须要用到短信接口,选型的的结果是用阿里大鱼的短信服务,然而淘宝开放平台(TOP)的SDK已经非常多年没有更新了.不支持python3.自己动手改了半天,还是不太正常,索性不用它,自己写一个算了 ...

  3. ASP.Net免费发送短信-阿里大鱼短信接口

    有点短信余额 不用白不用 3月1号就过期了 情人节做了个免费发短信的 http://love.issuc.com/ 固定短信模板 [活动验证]您正在参加XXX的OOO活动,请确认系本人申请.需要的可以 ...

  4. TP3.2.3 接入阿里sms 短信接口

    阿里云短信接口 配置文件 config.php //阿里大鱼 'Ali_SMS' =>array( 'sms_temp' =>'短信模板', 'sms_sign' =>'签名', ' ...

  5. SpringBoot、ActiveMQ整合阿里大鱼-----短信服务

    3.短信微服务 3.1需求分析 构建一个通用的短信发送服务(独立于优乐选的单独工程),接收activeMQ的消息(MAP类型)  消息包括手机号(mobile).短信模板号(template_code ...

  6. 功能:使用QQ号登陆,并加上微信和短信提醒,是否增量备份可选,阿里大鱼短信发送开发与测试,聚合数据(用JSON发短信,比较清楚)

    微博就可以,所以其它软件也可以http://desktop.weibo.com/ http://blog.csdn.net/jueblog/article/details/14497181http:/ ...

  7. PHP阿里大鱼短信验证

    PHP阿里大鱼短信验证 第一步 登陆阿里大于注册账号,在用户管理中心创建应用,确定AppKEY和App Secret还有配置签名 第二步 在应用管理中选择SDK下载,或者直接点击http://down ...

  8. php与阿里云短信接口接入

    使用阿里云短信API,需要在控制台获取以下必要参数,其中需要自己手机验证+官方审核多次,尤其审核需要保持耐心. 1. accessKeyId  相当于你的个人账户密钥: 2. accessKeySec ...

  9. TP5整合的阿里云短信接口

    现阶段,短信的应用主要就是用来验证下手机号是不是正常的手机号.只要涉及到用户手机号的问题的时候,都会做短信验证码来验证下改手机号是否是正常手机号.接下来就是操作步骤. 首先要在阿里云账号上开通短信功能 ...

随机推荐

  1. JVM 垃圾回收机制( 一) 回收对象的判定

    关于JVM 的垃圾回收机制,我们一般都没过多深入,因为JAVA 和 C++ 的一个很大区别就是,JAVA 帮我们做了垃圾回收,而不用像C++ 那么样手动进行回收,当然任何自动的东西都存在一定弊端,比如 ...

  2. Javascript进阶篇——( JavaScript内置对象---上-Date,string,charAt,indexOf,split,substring,substr)笔记整理

    什么是对象JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法.对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等:对象的方法:能够在 ...

  3. JQ 无刷新评论

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. jquery widget开发——核心框架

    框架代码: $.widget("myns.myplugin", { //默认参数 options: { }, //初始化,控件生命周期内只运行一次 _init: function ...

  5. Lifting the Stone(hdoj1115)

    Lifting the Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  6. Nginx安装配置PHP(FastCGI)环境的教程

    这篇是Nginx安装配置PHP(FastCGI)环境的教程.Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用. 一.什么是 FastCGI F ...

  7. Nginx学习之二-配置项解析及编程实现

    在开发功能灵活的Nginx模块时,需要从配置文件中获取特定的信息.不过,我们并不需要再编写一套读取配置的系统,Nginx已经为用户提供了强大的配置项解析机制,同时还支持“-s reload”命令,可以 ...

  8. Oracle ORA-01555(快照过旧)

    一.引言: [oracle@yft yft]$ oerr ora 01555 01555, 00000, "snapshot too old: rollback segment number ...

  9. PHP中的错误处理

    程序只要在运行,就免不了会出现错误!或早或晚,只是时间问题罢了. 错误很常见,比如Notice,Warning等等.此时一般使用set_error_handler来处理: <?php set_e ...

  10. QT GUI(主)线程与子线程之间的通信——使用跨线程的信号槽

    在主线程上,可以控制子线程启动,停止,清零 如果子线程启动的话,每一秒钟会向主线程发送一个数字,让主线程更新界面上的数字. 程序截图: 上代码: #include <QtGui> #inc ...