| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <?php
- // +----------------------------------------------------------------------
- // |
- // +----------------------------------------------------------------------
- // |
- // +----------------------------------------------------------------------
- // |
- // +----------------------------------------------------------------------
- // |
- // +----------------------------------------------------------------------
- // +----------------------------------------------------------------------
- // | 短信插件
- // +----------------------------------------------------------------------
- namespace addons\easysms;
- use Composer\Autoload\ClassLoader;
- use think\Addons;
- class Easysms extends Addons
- {
- public $config = [
- // HTTP 请求的超时时间(秒)
- 'timeout' => 5.0,
- // 默认发送配置
- 'default' => [
- // 网关调用策略,默认:顺序调用
- 'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
- // 默认可用的发送网关
- 'gateways' => [
- //阿里云
- 'aliyun',
- ],
- ],
- // 可用的网关配置
- 'gateways' => [
- //阿里云
- 'aliyun' => [
- 'access_key_id' => '',
- 'access_key_secret' => '',
- 'sign_name' => '',
- ],
- ],
- ];
- protected function init()
- {
- $config = $this->getAddonConfig();
- $this->config['default']['gateways'] = (array) $config['gateways'];
- $this->config['gateways'][$config['gateways']] = (array) $config['config'];
- $this->config['gateways']['errorlog']['file'] = app()->getRuntimePath() . 'tmp/easy-sms.log';
- }
- /**
- * 插件安装方法
- * @return bool
- */
- public function install()
- {
- return true;
- }
- /**
- * 插件卸载方法
- * @return bool
- */
- public function uninstall()
- {
- return true;
- }
- /**
- * 短信发送行为
- * @param Sms $params
- * @return boolean
- */
- public function smsSend($params)
- {
- $this->init();
- $config = $this->getAddonConfig();
- $easySms = new \Overtrue\EasySms\EasySms($this->config);
- try {
- $result = $easySms->send($params->mobile, [
- 'content' => '您的验证码为: ' . $params->code,
- 'template' => isset($config['template'][$params->event]) ? $config['template'][$params->event] : 0,
- 'data' => [
- 'code' => $params->code,
- ],
- ]);
- } catch (\Exception $e) {
- //var_dump($e->getResults());
- return false;
- }
- $is_suc = false;
- foreach ($result as $v) {
- if ($v['status'] == 'success') {
- $is_suc = true;
- break;
- }
- }
- return $is_suc;
- }
- /**
- * 短信发送通知
- * @param array $params
- * @return boolean
- */
- public function smsNotice($params)
- {
- $this->init();
- $easySms = new \Overtrue\EasySms\EasySms($this->config);
- try {
- $result = $easySms->send($params['mobile'], [
- 'content' => $params['msg'],
- 'template' => $params['template'],
- 'data' => isset($params['data']) ? $params['data'] : [],
- ]);
- } catch (\Exception $exception) {
- return false;
- }
- $is_suc = false;
- foreach ($result as $v) {
- if ($v['status'] == 'success') {
- $is_suc = true;
- break;
- }
- }
- return $is_suc;
- }
- /**
- * 检测验证是否正确
- * @param Sms $params
- * @return boolean
- */
- public function smsCheck($params)
- {
- return true;
- }
- /**
- * 添加命名空间
- */
- public function appInit()
- {
- if (!class_exists('\Overtrue\EasySms')) {
- $loader = new ClassLoader();
- $loader->addPsr4('Overtrue\\EasySms\\', ADDON_PATH . 'easysms' . DS . 'SDK' . DS . 'src', true);
- $loader->register();
- }
- }
- }
|