TP6.0框架-----发送手机验证码

首先注册短信宝,获取相关配置信息短信宝

/**
 * 发送验证码
 * @param $phone
 * @return int
 * @throws Exception
 */
public static function send($phone)
{
    $code_key = 'register_code_' . $phone;
    $time_key = 'register_time_' . $phone;
    $send_time = Cache::get($time_key);
    if ($send_time && time() - $send_time < 60) {
        throw new Exception('已经发送过,请稍后重试', 2002);
    }
    $code = rand(1000, 9999);
    Cache::set($code_key, $code, 300);
    Cache::set($time_key, time(), 10);
    $res = send_message($phone, $code);
    if ($res) {
        return $res;
    } else {
        throw new Exception('发送失败', 2001);
    }
}

 封装公共方法

/**
 * 公共发送短信验证码
 */
if (!function_exists('send_message')) {
    /**
     * 发送手机短信验证码
     * @param $mobile
     * @param $code
     * @return bool|string
     */
    function send_message($mobile, $code)
    {
        # 帐号信息、 放入config
        $smsapi = config('account.smsbao.smapi');
        $user = config('account.smsbao.user');
        $pass = config('account.smsbao.passpwd') ?: config('account.smsbao.passstr');
        $content = "【1910A】尊敬的用户,您正在进行帐号注册,您的验证为:{$code},验证有效期为5分钟、过期失效、请勿泄漏";//要发送的短信内容
        $sendurl = $smsapi . "sms?u=" . $user . "&p=" . $pass . "&m=" . $mobile . "&c=" . urlencode($content);
        return curl_request($sendurl);
    }
}

封装网络请求方法

/**
 * 请求
 */
if (!function_exists('curl_request')) {
    /**
     * 发送请求的方法
     * @param $url
     * @param string $post_data
     * @param string $method
     * @param string $header
     * @param string $type
     * @return bool|string
     */
    function curl_request($url, $post_data = '', $method = 'get', $header = '', $type = 'http')
    {
        #判断是否传送url
        if ($url == '') {
            return false;
        }
        # 初始化
        $ch = curl_init($url);
        # 默认是get请求。如果是post请求 设置请求方式和请求参数
        if (strtolower($method) == 'post') {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        }
        //如果是https协议,禁止从服务器验证本地证书
        if (strtolower($type) == 'https') {
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        }
        //发送请求,获取返回结果
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $res = curl_exec($ch);
        //关闭请求
        curl_close($ch);
        return $res;
    }
}

配置文件

return [
    'smsbao' => [
        'smapi' => 'http://api.smsbao.com/',
        'user' => '',//短信平台帐号
        'passpwd' => '',//短信平台密码需md5
        'passstr' => '',//短信平台密码
        //passpwd、passstr二选一
    ]
];

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值