Laravel 调用 个验 对云验证的手机号 进行校验是否验证成功
来源:互联网 发布:ubuntu sys time.h 编辑:程序博客网 时间:2024/05/18 17:43
<?phpnamespace App\Http\Controllers\Home;use Illuminate\Http\Request;use App\Http\Controllers\Controller;use Illuminate\Support\Facades\Redis;class GyController extends Controller{ private $auth_url = "https://openapi-gy.getui.com/v1/gy/auth_sign"; private $reqid_url = "https://openapi-gy.getui.com/v1/gy/verify_query"; private $token; /* * 获取authtoken */ public function authToken($type) { $path = public_path(); if($type==1){//ios的个验验证 $data = json_decode(file_get_contents($path.'/gytoken_ios.txt')); $gy_secret = 'ios的密钥'; $gy_key = 'ios的key'; $gy_id = 'ios的id'; }else{// 安卓的个验验证 $data = json_decode(file_get_contents($path.'/gytoken_and.txt')); $gy_secret = '安卓'; $gy_key = '安卓的'; $gy_id = '安卓的'; }// 验证token,因为个验对token有限制访问频次 if(Redis::get('authToken')){ $token = Redis::get('authToken'); return $token; }else{ $time = time()*1000; $url = $this->auth_url; $data =array( 'timestamp' => $time, 'appId' => $gy_id, 'sign' => hash('sha256',$gy_key.$time.$gy_secret) ); $headers[] = 'Content-Type: application/json; charset=utf-8'; $rs = json_decode($this->curl2($url, $data,$headers), true); if($rs['data']['result']==20000){ $token = $rs['data']['data']['authToken']; $arr['access_token'] = $token; $arr['expire'] = (time()+3600)*1000; if($type==1){ file_put_contents($path.'/gytoken_ios.txt', json_encode($arr)); }else{ file_put_contents($path.'/gytoken_and.txt', json_encode($arr)); } Redis::set('authToken',$token); Redis::expire('authToken',3600); return $token; }else{ return false; } }// } } /* * 云验证是否成功 */ public function check_status($gyuid, $reqId,$type) { $authToken = $this -> authToken($type); if(!$authToken){ return false; } $url = $this->reqid_url; if($type==1){ $gy_id = 'ios 的id'; }else{ $gy_id = '安卓的id'; } $data = array( 'appId'=>$gy_id, 'gyuid'=> $gyuid, 'reqId'=> $reqId, 'authToken'=>$authToken ); $headers[] = 'Content-Type: application/json; charset=utf-8'; $result = json_decode($this -> curl2($url,$data,$headers)); $success = array(20001,20002,20003,21001,22001,22002); if($result->data->result==20000){ if(in_array($result->data->data->verify_result,$success)){ return true; }else{ return false; } }else{ return false; } } public function curl2($url,$data,$headers){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, 60); //设置超时 if(0 === strpos(strtolower($url), 'https')) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //对认证证书来源的检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //从证书中检查SSL加密算法是否存在 } curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $rtn = curl_exec($ch);//CURLOPT_RETURNTRANSFER 不设置 curl_exec返回TRUE 设置 curl_exec返回json(此处) 失败都返回FALSE curl_close($ch); return $rtn; } }
阅读全文
0 0
- Laravel 调用 个验 对云验证的手机号 进行校验是否验证成功
- 验证手机号是否正确
- php验证手机号是否正确
- 验证字符串是否是手机号
- 验证是否是正确手机号
- 验证是否是 邮箱||手机号
- 验证是否符合手机号格式
- 校验手机号和获取验证码
- 验证手机号的正则
- 验证手机号的合法性
- 验证xpassive是否成功
- 验证grep是否成功
- 验证loadrunner对Ajax内容的校验
- 多个邮箱,多个手机号的验证
- iOS 正则表达式验证是否为正确的手机号
- 初步验证身份证是否正确,验证是否为手机号php
- 验证从标准输入获得的信用卡号是否校验通过, 校验通过,则输出”成功“,校验未通过则输出”失败“
- 编写一个程序,验证从标准输入获得的信用卡号是否校验通过, 校验通过,则输出”成功“,校验未通过则输出”失败“。
- pat1135 Is It A Red-Black Tree (30)(红黑树)
- Qml和C++开发的学生信息管理软件二
- adb shell 命令操作应用数据文件
- 从源码解析Context
- 数美笔试题目总结
- Laravel 调用 个验 对云验证的手机号 进行校验是否验证成功
- Git使用—fatal:remote origin already exists.
- 财商教育—赚大钱的所有思路
- Python之map(),reduce(),filter()函数
- 面试问题new Integer(10)和new Integer(10)是否相等,new Integer(300)和new Integer(300)是否相等
- 欢迎使用CSDN-markdown编辑器
- Linux笔记之身份与权限3:文件的特殊权限
- View基础知识
- js判断第一次打开页面