搜索
系统检测到您的用户名不符合规范:

免费发送短信验证码

浏览:33907 发布日期:2014年04月16日 分类:用法示例 关键字: 短信验证码 免费验证 验证 短信
调用短信平台,免费发送短信验证码,前提是你必须注册成为短信平台开发者。获得开发者ID.
前天弄了个短信验证的东西,有免费的短信验证真的很不错,对于做开发的人来说是个好消息,感谢电信能力开放平台的贡献。
以下是我自己调用电信短信验证码接口做的一个短信验证类,拿出来跟大家分享一下,不好勿喷。<?php

class PHPSMS
{




public function send($mobile, $message)
{
$App_Id=C('AppId');
$App_Secret=C('AppSecret');
$access_token=$this->get_Access_token();
$token=$this->getToken();
$timestamp = date('Y-m-d H:i:s');
$url="http://api.189.cn/v2/dm/randcode/sendSms";

$param['app_id']= "app_id=".$App_Id;
$param['access_token'] = "access_token=".$access_token;
$param['timestamp'] = "timestamp=".$timestamp;
$param['phone']="phone=".$mobile;
$param['token']="token=".$token;
$param['randcode']="randcode=".$message;
ksort($param);
$plaintext = implode("&",$param);
$param['sign'] = "sign=".rawurlencode(base64_encode(hash_hmac("sha1", $plaintext, $App_Secret, $raw_output=True)));
ksort($param);

$result=$this->curl_post($url,implode("&",$param));
$resultArr=json_decode($result);



}
//获取信任码
public function getToken(){

$App_Id=C('AppId');
//dump($App_Id);
$App_Secret=C('AppSecret');
$access_token=$this->get_Access_token();
$timestamp = date('Y-m-d H:i:s');
$url = "http://api.189.cn/v2/dm/randcode/token?";

$param['app_id']= "app_id=".$App_Id;
$param['access_token'] = "access_token=".$access_token;
$param['timestamp'] = "timestamp=".$timestamp;
ksort($param);
$plaintext = implode("&",$param);
$param['sign'] = "sign=".rawurlencode(base64_encode(hash_hmac("sha1", $plaintext, $App_Secret, $raw_output=True)));
ksort($param);
$url .= implode("&",$param);
//$result = curl_get($url);

$r=$this->curl_get($url);
$result=json_decode($r,true);
return $result['token'];

}
//获取访问令牌
public function get_Access_token(){

$App_Id=C('AppId');
$App_Secret=C('AppSecret');
$grant_type='client_credentials';

$send = 'app_id='.$App_Id.'&app_secret='.$App_Secret.'&grant_type='.$grant_type;

$access_token = $this->curl_post("https://oauth.api.189.cn/emp/oauth2/v3/access_token", $send);
$access_token = json_decode($access_token, true);

return $access_token['access_token'];

}

function curl_post($url,$data){ // 模拟提交数据函数
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);
}
curl_close($curl); // 关键CURL会话
return $tmpInfo; // 返回数据
}

/**
* 模拟提交参数,支持https提交 可用于各类api请求
* @param string $url : 提交的地址
* @param array $data :POST数组
* @param string $method : POST/GET,默认GET方式
* @return mixed
*/
function curl_get($url, $data='', $method='GET'){
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
if($method=='POST'){
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
if ($data != ''){
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
}
}
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
curl_close($curl); // 关闭CURL会话
return $tmpInfo; // 返回数据
}

}

附件 sendSms.zip ( 2.41 MB 下载:930 次 )

评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
weilanzhuan
积分:1890 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /