• tp5.1发送阿里云短信验证码


    使用tp模拟生成手机号,并发送阿里云短信验证码

    1.项目根目录执行composer,安装sdk

    composer  require  alibabacloud/client

    2.发送验证码示例

    1. // 公共文件
    2. use AlibabaCloud\Client\AlibabaCloud;
    3. use AlibabaCloud\Client\Exception\ClientException;
    4. use AlibabaCloud\Client\Exception\ServerException;
    5. // 代码如下
    6. private static $mobileSegment = [
    7. '134', '135', '136', '137', '138', '139', '150', '151', '152', '157', '130', '131', '132', '155', '186', '133', '153', '189',
    8. ];
    9. public function nextMobile()
    10. {
    11. // 模拟生成手机号
    12. $prefix = self::$mobileSegment[array_rand(self::$mobileSegment)];
    13. $middle = mt_rand(2000, 9000);
    14. $suffix = mt_rand(2000, 9000);
    15. $mobile = $prefix . $middle . $suffix;
    16. $code = mt_rand(2000, 9000);//这里是随机生成4位数字
    17. $res = self::smsVerify($mobile, $code, '你的template_code');
    18. if($res['status'] == 1){
    19. dump(1,"验证码已发送");
    20. }else{
    21. dump(0,"验证码发送失败,请联系客服");
    22. }
    23. }
    24. /**
    25. * 验证码(阿里云短信)
    26. */
    27. function smsVerify($mobile, $code, $tempId)
    28. {
    29. AlibabaCloud::accessKeyClient('你的access_key_id', '你的access_key_secret')
    30. ->regionId('cn-hangzhou') //replace regionId as you need(这个地方是发短信的节点,默认即可,或者换成你想要的)
    31. ->asGlobalClient();
    32. $data = [];
    33. try {
    34. $result = AlibabaCloud::rpcRequest()
    35. ->product('Dysmsapi')
    36. //->scheme('https') //https | http(如果域名是https,这里记得开启)
    37. ->version('2017-05-25')
    38. ->action('SendSms')
    39. ->method('POST')
    40. ->options([
    41. 'query' => [
    42. 'PhoneNumbers' => $mobile,
    43. 'SignName' => '你的sign_name',
    44. 'TemplateCode' => $tempId,
    45. 'TemplateParam' => json_encode(['code'=>$code]),
    46. ],
    47. ])
    48. ->request();
    49. $res = $result->toArray();
    50. if($res['Code'] == 'OK'){
    51. $data['status'] = 1;
    52. $data['info'] = $res['Message'];
    53. }else{
    54. $data['status'] = 0;
    55. $data['info'] = $res['Message'];
    56. }
    57. return $data;
    58. } catch (ClientException $e) {
    59. $data['status'] = 0;
    60. $data['info'] = $e->getErrorMessage();
    61. return $data;
    62. } catch (ServerException $e) {
    63. $data['status'] = 0;
    64. $data['info'] = $e->getErrorMessage();
    65. return $data;
    66. }
    67. }

  • 相关阅读:
    Python之作业(二)
    基于FPGA轻松玩转AI
    axios delete请求如何发给springboot
    JMeter进行并发测试
    Nodejs http模块常用方法
    Hadoop3教程(三十二):(生产调优篇)NameNode故障恢复与集群的安全模式
    L85.linux命令每日一练 -- 第12章 Linux系统常用内置命令(一)
    使用JDK1.8的流特性快速操作map实例
    Matlab学习-常用函数
    Ansible相关
  • 原文地址:https://blog.csdn.net/qq_36611673/article/details/133775025