短信接口需要你有对应的短信服务商才行,通常是第三方短信服务商,这种服务往往是收费的,收取的费用越多,每天可以发送的短信数量越多。
创新互联主要从事做网站、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务且末,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
你需要向他们申请短信接口,申请成功后会有接口文档,按照文档中的规定发送相应的数据即可,通常发送的数据包含:需要发送短信的手机号、短信内容。
接口写法通常会在文档中有写,甚至有的文档会附带范例以供开发者参考。
现在网站在建设网站时为了保证用户信息的真实性,往往会选择发短信给用户手机发验证码信息,只有通过验证的用户才可以注册,这样保证了用户的联系信息资料的100%的准确性 。
第一、实现php手机短信验证功能的基本思路
1、要找到短信服务提供商,接入短信服务
2、在网站信息提交页面请求发送信息
3、服务器向短信服务提供商通信,提交发送请求
4、短信服务提供商通过运营商将信息发送到用户的手机中
二、手机号码短信验证前台页面效果实现
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
html xmlns
head
title/title
script src="js/jquery-1.4a2.min.js" type="text/javascript"/script
script type="text/javascript"
/*-------------------------------------------*/
var InterValObj; //timer变量,控制时间
var count = 60; //间隔函数,1秒执行
var curCount;//当前剩余秒数
var code = ""; //验证码
var codeLength = 6;//验证码长度
function sendMessage() {
curCount = count;
var dealType; //验证方式
tel = $(’#tel’).val();
if(tel!=’’){
//验证手机有效性
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
if(!myreg.test($(’#tel’).val()))
{
alert(’请输入有效的手机号码!’);
return false;
}
tel = $(’#tel’).val();
//产生验证码
for (var i = 0; i codeLength; i++) {
code += parseInt(Math.random() * 9).toString();
}
//设置button效果,开始计时
$("#btnSendCode").attr("disabled", "true");
$("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
//向后台发送处理数据
$.ajax({
type: "POST", //用POST方式传输
dataType: "text", //数据格式:JSON
url: ’yanzhengma.php’, //目标地址(根据实际地址)
data: "tel=" + tel + "code=" + code,
error: function (XMLHttpRequest, textStatus, errorThrown) { },
success: function (msg){ }
});
}else{
alert(’请填写手机号码’);
}
}
//timer处理函数
function SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj);//停止计时器
$("#btnSendCode").removeAttr("disabled");//启用按钮
$("#btnSendCode").val("重新发送验证码");
code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
}
else {
curCount--;
$("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
}
}
/script
/head
body
input name="tel" id=tel type="text" /
input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" //p
/body
/html
第三、调用短信服务器短信接口
整理的页面是yanzhengma.php(具体根据服务商提供信息)
?php //提交短信
$post_data = array();
$post_data[’userid’] = 短信服务商提供ID;
$post_data[’account’] = ’短信服务商提供用户名’;
$post_data[’password’] = ’短信服务商提供密码’;
// Session保存路径
$sessSavePath = dirname(__FILE__)."/../data/sessions/";
if(is_writeable($sessSavePath) is_readable($sessSavePath)){
session_save_path($sessSavePath);
}
session_register(’mobliecode’);
$_SESSION[’mobilecode’] = $_POST["code"];
$content=’短信验证码:’.$_POST["code"].’【短信验证】’;
$post_data[’content’] = mb_convert_encoding($content,’utf-8’, ’gb2312’); //短信内容需要用urlencode编码下
$post_data[’mobile’] = $_POST["tel"];
$post_data[’sendtime’] = ’’; //不定时发送,值为0,定时发送,输入格式YYYYMMDDHHmmss的日期值
$url=’’;
$o=’’;
foreach ($post_data as $k=$v)
{
$o.="$k=".$v.’’;
}
$post_data=substr($o,0,-1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要将结果直接返回到变量里,那加上这句。
$result = curl_exec($ch);
?
第四:提交表单信息时对短信验证码验证
//手机验证码开始
session_start();
$svalitel = $_SESSION[’mobilecode’];
$vdcodetel = empty($vdcodetel) ? ’’ : strtolower(trim($vdcodetel));
if(strtolower($vdcodetel)!=$svalitel || $svalitel==’’)
{
ResetVdValue();
//echo "Pageviews=".$vdcodetel;
ShowMsg("手机验证码错误!", ’-1’);
exit();
}
用户点击按钮,调用短信接口,
把发送的短信验证数字存储到数据库,并且存储一个发送时间,
当用户输入收到短信数字,验证短信数字时候存在,并且有没有过期,过期时间按照你的需要,一般5~10分钟。
你的模板是需要两个参数所以$params变量有两个元素就行,例如$params=['张三','淘宝']
另外一个问题 你想问的是腾讯该如何使用你的模板,这个是要用到模板id,你在腾讯那边申请短信模板之后 ,腾讯会去审核你的模板审核成功之后 这个短信模板才可以使用,对应的会有一个模板id给你,
例如你申请的短信模板为 【尊敬的客户{1},感谢您对{2}的大力支持,在此祝您身体健康生活愉快。】 腾讯那边审核成功之后 产生的模板id是123456,那么你只用把123456告诉腾讯就行而不是传一堆文字
你的代码看不清,我下载了腾讯官方的sdk 下图$templateId就是短信模板id,
调这个方法sendWithParam把需要传的参数传进去就行,
假设 $params=['张三','淘宝'] ;$templateId=123456
腾讯那边会找到123456对应的短信模板是: 【尊敬的客户{1},感谢您对{2}的大力支持,在此祝您身体健康生活愉快。】
然后腾讯会根据$params把短信解析成【尊敬的客户张三,感谢您对淘宝的大力支持,在此祝您身体健康生活愉快。】,然后再根据你传的手机号 发给对应的手机上
简单的说,手机验证和手机注册是差不多的。
手机验证:
首先你在php代码中生成一串字符串,可以保存在session里面,然后在把这串字符串通过短信服务(这一步需要去买,找代理,前提你获得了用户的正确手机号码)发给用户,然后提供一个输入框给用户输入收到的验证码在和session中的比对。
手机注册:
前面的部分都是和上面一样,多出来的步骤就是验证成功后把信息存入用户数据库而已,最多在存入之前让用户再输入一点用户其他信息。
以上验证码可以扩展一下,比如有效时间,直接在session中设置有效时间,过期作废的限制就可以了。
你可以去后盾人平台看看,里面的东西不错