src/AppBundle/Common/SmsToolkit.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace AppBundle\Common;
use Symfony\Component\HttpFoundation\Request;
class SmsToolkit
{
private static $mockedRequest = null;
public static function smsCheck($request, $scenario)
{
$mobile = $request->request->get('mobile');
$postSmsCode = $request->request->get('sms_code');
$ratelimiterResult = self::smsCheckRatelimiter($request, $scenario, $postSmsCode);
if ($ratelimiterResult && false === $ratelimiterResult['success']) {
return array(false, null, null);
}
list($sessionField, $requestField) = self::paramForSmsCheck($request, $scenario);
$result = self::checkSms($sessionField, $requestField, $scenario);
self::clearSmsSession($request, $scenario);
return array($result, $sessionField, $requestField);
}
public static function smsCheckRatelimiter(Request $request, $type, $smsCode)
{
$smsSession = $request->getSession()->get($type);
$smsSessionCode = $smsSession['sms_code'];
if (!isset($smsSession['sms_remain'])) {
$smsSession['sms_remain'] = 5;
}
$remain = $smsSession['sms_remain'];
if ($smsSessionCode != $smsCode) {
$remain = (int) $remain - 1;
self::updateSmsSessionRemain($request, $type, $remain);
}
if (0 == $remain) {
self::clearSmsSession($request, $type);
return array('success' => false, 'message' => '错误次数已经超过最大次数,请重新获取');
}
return array('success' => true);
}
public static function updateSmsSessionRemain(Request $request, $type, $remain)
{
$smsSmsSession = $request->getSession()->get($type);
$request->getSession()->set($type, array(
'to' => $smsSmsSession['to'],
'sms_code' => $smsSmsSession['sms_code'],
'sms_last_time' => $smsSmsSession['sms_last_time'],
'sms_type' => $type,
'sms_remain' => $remain,
));
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。