临时性需求, 研究了一下天翼开发平台的东西, 用来发送验证码还是不错的, 但是每日限额不多, 所以很鸡肋, 但是保证 100% 到达买的话还是蛮贵的, 代码没有做任何优化处理, 只是测试是否可以实现接口, 用的同...
临时性需求, 研究了一下天翼开发平台的东西, 用来发送验证码还是不错的, 但是每日限额不多, 所以很鸡肋, 但是保证 100% 到达 买的话还是蛮贵的, 代码没有做任何优化处理, 只是测试是否可以实现接口, 用的同学记得完善代码, 刚写完老大又说是鸡肋的东西, 不用了, 代码放在博客记录下
- <?php
- //
- date_default_timezone_set('PRC');
- // 获取 access_token
- $data = "app_id=x&app_secret=x&grant_type=client_credentials";
- $ch = curl_init("https://oauth.api.189.cn/emp/oauth2/v2/access_token");
- curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
- curl_setopt($ch,CURLOPT_POST,1);// 使用 post 提交数据
- curl_setopt($ch,CURLOPT_POSTFIELDS,$data);// 设置 post 提交的数据
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- // 从证书中检查 SSL 加密算法是否存在
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- $access_token = curl_exec($ch);
- curl_close($ch);
- $access_token = json_decode($access_token,true);
- // 获取短信信任码 www.phprm.com
- $timestamp = date('Y-m-d H:i:s');
- $param['app_id'] = "app_id=x";
- $param['access_token'] = "access_token=".$access_token['access_token'];
- $param['timestamp'] = "timestamp=".$timestamp;
- ksort($param);
- $plaintext = implode("&",$param);
- $sign = rawurlencode(base64_encode(hash_hmac('sha1',$plaintext,app_secret,true)));
- //echo $sign;exit;
- $code = file_get_contents("http://api.189.cn/v2/dm/randcode/token?app_id=x&access_token={$access_token['access_token']}×tamp=".$timestamp."&sign=".$sign);
- $code = json_decode($code,true);
- $code = $code['token'];
- echo $code;
- // 下发验证码
- unset($param,$plaintext,$sign);
- $param['app_id'] = "app_id=x";
- $param['access_token'] = "access_token=".$access_token['access_token'];
- $param['token'] = "token=".$code;
- $param['phone'] = "phone=15091421612";
- $param['url'] = "url=http://wx.podapi.com/test.php";
- $param['exp_time'] = "exp_time=2";
- $param['timestamp'] = "timestamp=".$timestamp;
- ksort($param);
- $plaintext = implode("&",$param);
- $sign = rawurlencode(base64_encode(hash_hmac('sha1',$plaintext,'xx',true)));
- $data = "app_id=x&access_token={$access_token['access_token']}&token={$code}&phone=15091421612&url=http://wx.podapi.com/test.php&exp_time=2×tamp={$timestamp}&sign=".$sign;
- $ch = curl_init("http://api.189.cn/v2/dm/randcode/send");
- curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
- curl_setopt($ch,CURLOPT_POST,1);// 使用 post 提交数据
- curl_setopt($ch,CURLOPT_POSTFIELDS,$data);// 设置 post 提交的数据
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- // 从证书中检查 SSL www.phprm.com 加密算法是否存在
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- $state = curl_exec($ch);
- //var_dump(curl_getinfo($ch));
- curl_close($ch);
- //echo $state;
来源: https://www.php1.cn/detail/php-3e35ea5c07.html