// +---------------------------------------------------------------------- declare (strict_types = 1); namespace addon\smsbao\subscribe; use ywxapp\service\AddonService; use ywxapp\utils\HttpClient; /** * Smsbao 类 * * @author ywxapp */ class Smsbao { protected $eventPrefix = 'Sms'; public function onSend($sms) { $statusStr = [ "0" => "短信发送成功", "-1" => "参数不全", "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!", "30" => "密码错误", "40" => "账号不存在", "41" => "余额不足", "42" => "帐户已过期", "43" => "IP地址限制", "50" => "内容含有敏感词", ]; // 统一从数据库配置表读取(后台「插件配置」页可改),不再硬编码 $cfg = AddonService::config('smsbao'); $sign = $cfg['sign'] ?? '妙趣横生'; $content = '【' . $sign . '】' . str_replace( ['{code}', '{mobile}'], [$sms['code'] ?? '', $sms['mobile'] ?? ''], $cfg['template'] ?? '您的短信验证码为:{code}, 五分钟有效,请勿告诉他人' ); $params = [ 'u' => $cfg['u'] ?? '', 'p' => $cfg['p'] ?? '', 'm' => $sms['mobile'], 'c' => $content, ]; $client = new HttpClient(); $response = $client->get('https://api.smsbao.com/sms', $params); if ($response !== false) { return [true, $statusStr['0']]; } else { return [false, "请求失败: " . $client->getError()]; } } public function onGet($sms) { return true; } public function onNotice($sms) { return true; } public function onCheck($sms) { return true; } }