短信验证

This commit is contained in:
“wanyongkang”
2022-05-13 17:23:31 +08:00
parent 7bf5866d7c
commit 2f3d3e7391
4 changed files with 157 additions and 2 deletions

View File

@@ -6,6 +6,8 @@ use fastphp\base\Jwt;
use app\agent\model\AgentUser;
use app\agent\model\User as UserModel;
use alipay\AliverifyPublic as Aliverify;
use extend\alisms\Sms;
use extend\redis\Redisop;
class Index
{
@@ -50,6 +52,45 @@ class Index
}
//----------------
public function getCode() {
$phone = json_decode(file_get_contents("php://input"), true)['phone'];
$redis = new Redisop;
$user_model = new UserModel();
$is_exit = $user_model->getOne(['Phone' => $phone]);
if($is_exit) {
$return_data = [
'code' => 0,
'msg' => '用户已经存在'
];
echo json_encode($return_data);die;
}
$getCode = $redis->get($phone);
if (empty($getCode)) {
$code = rand(1000,9999);
$redis->setOfTime($phone,$code);
$alisms = new Sms;
$alisms::sendVerify($phone, $code);
$return_data = [
'code' => 1,
'msg' => '验证码已发送'
];
echo json_encode($return_data);die;
} else {
$return_data = [
'code' => 0,
'msg' => '请稍后再试'
];
echo json_encode($return_data);die;
}
}
//---------------
//推广用户注册
public function register()
{
@@ -66,6 +107,25 @@ class Index
echo json_encode($info);
die;
}
$redis = new Redisop;
$code = $redis->get($data['LoginCode']);
if (empty($code)) {
$return_data = [
'code' => 0,
'msg' => '验证码不正确'
];
echo json_encode($return_data);die;
}
if ($data['code'] != $code) {
$return_data = [
'code' => 0,
'msg' => '验证码不正确'
];
echo json_encode($return_data);die;
}
//----
$data['agent_id'] = base64_decode($data['agent_id']);
// dump($data);die;

57
extends/alisms/Sms.php Normal file
View File

@@ -0,0 +1,57 @@
<?php
namespace extend\alisms;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
use AlibabaCloud\Tea\Utils\Utils;
class Sms
{
/**
* 使用AK&SK初始化账号Client
* @param string $accessKeyId
* @param string $accessKeySecret
* @return Dysmsapi Client
*/
public static function createClient($accessKeyId, $accessKeySecret){
$config = new Config([
// 您的AccessKey ID
"accessKeyId" => $accessKeyId,
// 您的AccessKey Secret
"accessKeySecret" => $accessKeySecret
]);
// 访问的域名
$config->endpoint = "dysmsapi.aliyuncs.com";
return new Dysmsapi($config);
}
/**
* @param string[] $args
* @return void
*/
public static function sendVerify($phone,$vcode){
$client = self::createClient("LTAI4FmSkDSwFuXeLxsDB3jB", "r8FfRmoeWcCJyZSqqkQP2G3dKPPl2N");
$sendSmsRequest = new SendSmsRequest([
"phoneNumbers" => $phone,
"signName" => "华连云",
"templateCode" => "SMS_186355045",
"templateParam" => "{\"code\":\"$vcode\"}"
]);
// 复制代码运行请自行打印 API 的返回值
$sendResp = $client->sendSms($sendSmsRequest);
dump($sendResp);
$code = $sendResp->body->code;
if (!Utils::equalString($code, "OK")) {
$return_info = [
'code' => 0,
'msg' => $sendResp->body->message
];
return $return_info;
}
return ['code' => 1];
}
}

30
extends/redis/Redisop.php Normal file
View File

@@ -0,0 +1,30 @@
<?php
namespace extend\redis;
class Redisop {
private $redis;
public function __construct()
{
$this->redis = new \Redis();
$this->redis->connect('127.0.0.1', 6379);
$this->redis->auth('123456');
}
public function setOfTime($key = '', $value = '') {
if (empty($key)) {
die;
}
$this->redis->set( $key , $value);
$this->redis->expire($key,60);
}
public function get($key = '') {
if (empty($key)) {
die;
}
return $this->redis->get( $key );
}
}

View File

@@ -4,8 +4,8 @@
* @version:
* @Author: kangkang
* @Date: 2020-09-30 17:32:46
* @LastEditors: kangkang
* @LastEditTime: 2020-10-14 19:30:15
* @LastEditors: “wanyongkang” “937888580@qq.com”
* @LastEditTime: 2022-05-12 17:26:54
*/
header('Content-Type: text/html; charset=utf-8');
@@ -21,6 +21,14 @@ define('APP_DEBUG',true);
//加载框架文件
require_once APP_PATH.'fastphp/Fastphp.php';
$path = __DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
//加载配置文件
$config = require_once APP_PATH.'config/config.php';