www_fpvone_cn/application/api/controller/Submail.php

102 lines
3.6 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\api\controller;
use app\common\controller\Api;
use app\common\model\User;
use fast\Random;
/**
* 验证接口
*/
class Submail extends Api
{
public static function send($mobile, $code = null, $event = 'default')
{
$code = is_null($code) ? Random::numeric(config('captcha.length')) : $code;
$time = time();
$ip = request()->ip();
$sms = \app\common\model\Sms::create(['event' => $event, 'mobile' => $mobile, 'code' => $code, 'ip' => $ip, 'createtime' => $time]);
// var_dump($sms);exit;
$result = self::test($mobile,$code);
// $result = Hook::listen('sms_send', $sms, null, true);
if (!$result) {
$sms->delete();
return false;
}
return true;
}
public static function test($mobile,$code){
/*****************
* 加密请求 示例代码
******************/
//appid参数 appkey参数在 国际短信-创建/管理AppID中获取
//手机号支持单个
//模板ID 国际短信-创建/管理国际短信模板中获得
//国际短信模板对应变量
// 若模板为【SUBMAIL】您的验证码是@var(code),请在@var(time)内输入。国际短信模板对应变量如下
// 变量名和自定义内容相对应即可
$appid = '64253'; //appid参数
$appkey = '9bcc32d7a0256162dcb47d11ad9dfd02'; //appkey参数
$to = $mobile; //收信人 手机号码
$project_id = 'kSPUL1'; //模板ID
$vars = json_encode(array( //模板对应变量
'code' => $code,
// 'time' => '三分钟'
));
//通过接口获取时间戳
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://api-v4.mysubmail.com/service/timestamp.json',
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST => 0
));
$output = curl_exec($ch);
curl_close($ch);
$output = json_decode($output, true);
$timestamp = $output['timestamp'];
$post_data = array(
"appid" => $appid,
"to" => $to,
"project" => $project_id,
"vars" => $vars,
"timestamp" => $timestamp,
"sign_type" => 'md5',
"sign_version" => 2,
);
//整理生成签名所需参数
$temp = $post_data;
unset($temp['vars']);
ksort($temp);
reset($temp);
$tempStr = "";
foreach ($temp as $key => $value) {
$tempStr .= $key . "=" . $value . "&";
}
$tempStr = substr($tempStr, 0, -1);
//生成签名
$post_data['signature'] = md5($appid . $appkey . $tempStr . $appid . $appkey);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://api-v4.mysubmail.com/internationalsms/xsend.json',
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $post_data
));
$output = curl_exec($ch);
curl_close($ch);
$res = json_decode($output,true);
// var_dump($res);exit;
if($res['status'] != 'success'){
return false;
}
return true;
// echo json_encode($output);
}
}