SmsServer.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. namespace App\Servers\System;
  3. use End01here\EasySms\EasySmsService;
  4. use Illuminate\Support\Facades\Log;
  5. /**
  6. * Redis数据缓存类
  7. */
  8. class SmsServer
  9. {
  10. /**
  11. * 错误信息
  12. * @var string
  13. */
  14. private $errorMsg = '';
  15. private function __construct()
  16. {
  17. }
  18. /**
  19. * 创建对象
  20. * @return SmsServer
  21. */
  22. static function creatServer()
  23. {
  24. return new SmsServer();
  25. }
  26. /**
  27. * @return string
  28. */
  29. public function getErrorMsg(): string
  30. {
  31. return $this->errorMsg;
  32. }
  33. /**
  34. * 发送短信
  35. * @param $phone_num
  36. * @param $send_type
  37. * @return bool
  38. * @throws \End01here\EasySms\Exceptions\CodeErrorException
  39. * @throws \End01here\EasySms\Exceptions\GatewayErrorException
  40. * @throws \End01here\EasySms\Exceptions\MessageException
  41. */
  42. function sendCode($phone_num,$send_type='default')
  43. {
  44. $wxCode = CommonServer::creatServer()->filtrationStr('wxCode');
  45. if(empty($wxCode)){
  46. $this->errorMsg = '缺少验证信息';
  47. return false;
  48. }
  49. // $openInfo = WeixinServer::creatServer()->getAppletsOpenId($wxCode);
  50. $openInfo = [];
  51. if(!isset($openInfo['openid'])){
  52. $this->errorMsg = '授权验证失败';
  53. return false;
  54. }
  55. $send_type='default';
  56. try {
  57. $phone = EasySmsService::getPhoneSever($phone_num);
  58. $code_server = EasySmsService::getCodeSever($phone)->setCode($send_type);
  59. $message_server = EasySmsService::getMessageServer();
  60. $content = '尊敬的客户,验证码为'.$code_server->getCode().',请妥善保管,10分钟内有效!' ;
  61. $message_server->setContent($content);
  62. $send_info = EasySmsService::getSmsServer()->creatQybSms()->send($phone, $message_server);
  63. }catch (\Exception $e){
  64. $this->errorMsg=$e->getMessage();
  65. return false;
  66. }
  67. if (!empty($send_info['code']) && $send_info['code'] != 1) {
  68. $this->errorMsg = '短信发送失败';
  69. return false;
  70. }
  71. return true;
  72. }
  73. /**
  74. * 发送短信模板内容
  75. * @param $phone_num
  76. * @param $content
  77. * @return bool
  78. */
  79. function sendContent($phone_num,$content)
  80. {
  81. Log::channel('daily')->info('短信发送记录:',['phone_num'=>$phone_num,'content'=>$content]);
  82. try {
  83. $phone = EasySmsService::getPhoneSever($phone_num);
  84. $message_server = EasySmsService::getMessageServer();
  85. $message_server->setContent($content);
  86. $send_info = EasySmsService::getSmsServer()->creatQybSms()->send($phone, $message_server);
  87. // Log::info($message);
  88. }catch (\Exception $e){
  89. $this->errorMsg=$e->getMessage();
  90. return false;
  91. }
  92. if (!empty($send_info['code']) && $send_info['code'] != 1) {
  93. $this->errorMsg = '短信发送失败';
  94. return false;
  95. }
  96. return true;
  97. }
  98. /**
  99. * 验证码验证
  100. * @param $phone_num
  101. * @param $code
  102. * @param $send_type
  103. * @return bool
  104. */
  105. public function verifyCode($phone_num, $code,$send_type='default')
  106. {
  107. $send_type='default';
  108. $phone = EasySmsService::getPhoneSever($phone_num);
  109. $code_sever= EasySmsService::getCodeSever($phone);
  110. $ret_code = $code_sever->verifyCode($code,$send_type);
  111. $this->errorMsg=$code_sever->getErrorMsg();
  112. return $ret_code;
  113. }
  114. }