阿里大鱼短信接口整合Tp3.2.3开发整理
阿里大鱼 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开发整理的更多相关文章
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- 阿里大鱼短信接口(Python3版)
近期由于须要用到短信接口,选型的的结果是用阿里大鱼的短信服务,然而淘宝开放平台(TOP)的SDK已经非常多年没有更新了.不支持python3.自己动手改了半天,还是不太正常,索性不用它,自己写一个算了 ...
- ASP.Net免费发送短信-阿里大鱼短信接口
有点短信余额 不用白不用 3月1号就过期了 情人节做了个免费发短信的 http://love.issuc.com/ 固定短信模板 [活动验证]您正在参加XXX的OOO活动,请确认系本人申请.需要的可以 ...
- TP3.2.3 接入阿里sms 短信接口
阿里云短信接口 配置文件 config.php //阿里大鱼 'Ali_SMS' =>array( 'sms_temp' =>'短信模板', 'sms_sign' =>'签名', ' ...
- SpringBoot、ActiveMQ整合阿里大鱼-----短信服务
3.短信微服务 3.1需求分析 构建一个通用的短信发送服务(独立于优乐选的单独工程),接收activeMQ的消息(MAP类型) 消息包括手机号(mobile).短信模板号(template_code ...
- 功能:使用QQ号登陆,并加上微信和短信提醒,是否增量备份可选,阿里大鱼短信发送开发与测试,聚合数据(用JSON发短信,比较清楚)
微博就可以,所以其它软件也可以http://desktop.weibo.com/ http://blog.csdn.net/jueblog/article/details/14497181http:/ ...
- PHP阿里大鱼短信验证
PHP阿里大鱼短信验证 第一步 登陆阿里大于注册账号,在用户管理中心创建应用,确定AppKEY和App Secret还有配置签名 第二步 在应用管理中选择SDK下载,或者直接点击http://down ...
- php与阿里云短信接口接入
使用阿里云短信API,需要在控制台获取以下必要参数,其中需要自己手机验证+官方审核多次,尤其审核需要保持耐心. 1. accessKeyId 相当于你的个人账户密钥: 2. accessKeySec ...
- TP5整合的阿里云短信接口
现阶段,短信的应用主要就是用来验证下手机号是不是正常的手机号.只要涉及到用户手机号的问题的时候,都会做短信验证码来验证下改手机号是否是正常手机号.接下来就是操作步骤. 首先要在阿里云账号上开通短信功能 ...
随机推荐
- struts2之chain的使用
/** * 实现功能表单提交给action1先处理,再交由action2进行处理,中间传递参数a,b **/ /** * 1. 配置文件 **/ <action name="actio ...
- 深入理解JavaWeb技术内幕之中文编码
为什么要编码 1.计算机中存储信息的最小单元是1个字节,所能表示的字符范围为0~255个. 2.人类要表示的符号太多,无法用1个字节来完全表示. 常见的编码类型 ASCII码 总共128个,用1个字节 ...
- Java开发23中设计模式
设计模式(Design Patterns) 设计模式是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结.使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码的可靠性.毫无疑问 ...
- 理解ThreadLocal(二)
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的.各 ...
- python Tkinter 全屏显示
#! /usr/bin/env python # -*- coding: utf-8 -*- import Tkinter as tk class FullScreenApp(object): def ...
- 使用LINQ来简化编程的7个技巧
转载地址:http://www.cnblogs.com/lovecherry/archive/2008/05/23/1205565.html 自从学习LINQ以来,我发现了很多使用LINQ来改善代码的 ...
- QT:轻松获取网页源码
获取网页源码的小例子,代码很简单,就不多作解释了. 不过一定要注意网页的编码问题,否则会出现乱码的!!! #include <QtCore> #include <QtNetwork& ...
- ZZ的计算器
Problem Description ZZ自从上大学以来,脑容量就是以SB计算的,这个吃货竟然连算术运算也不会了,可是当今的计算机可是非常强大的,作为ACMer, 几个简单的算术又算得了什么呢?可是 ...
- linux之SQL语句简明教程---CREATE TABLE
表格是数据库中储存资料的基本架构.在绝大部份的情况下,数据库厂商不可能知道您需要如何储存您的资料,所以通常您会需要自己在数据库中建立表格.虽然许多数据库工具可以让您在不需用到 SQL 的情况下建立表格 ...
- 【ZOJ】3785 What day is that day? ——浅谈KMP在ACM竞赛中的暴力打表找规律中的应用
转载请声明出处:http://www.cnblogs.com/kevince/p/3887827.html ——By Kevince 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这 ...