123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- <?php
- namespace crmeb\services\sms\storage;
- use crmeb\basic\BaseSmss;
- use crmeb\services\AccessTokenServeService;
- use think\exception\ValidateException;
- use think\facade\Config;
- class Sms extends BaseSmss
- {
-
- const SMS_OPEN = 'sms_v2/open';
-
- const SMS_MODIFY = 'sms_v2/modify';
-
- const SMS_INFO = 'sms_v2/info';
-
- const SMS_SEND = 'sms_v2/send';
-
- const SMS_TEMPS = 'sms_v2/temps';
-
- const SMS_APPLY = 'sms_v2/apply';
-
- const SMS_APPLYS = 'sms_v2/applys';
-
- const SMS_RECORD = 'sms_v2/record';
-
- protected $sign = '';
-
- protected $templateIds = [];
- public function __construct()
- {
- $this->accessToken = $this->getAccessToken();
- $this->templateIds = Config::get('sms.stores.sms.template_id', []);
- }
- protected function getAccessToken()
- {
- $this->account = sys_config('sms_account');
- $this->sercet = sys_config('sms_token');
- return new AccessTokenServeService($this->account, $this->sercet);
- }
-
- protected function initialize(array $config = [])
- {
- parent::initialize($config);
- }
-
- protected function getTemplateCode(string $templateId)
- {
- return $this->templateIds[$templateId] ?? null;
- }
-
- public function setSign($sign)
- {
- $this->sign = $sign;
- return $this;
- }
-
- public function open()
- {
- $param = [
- 'sign' => $this->sign
- ];
- return $this->accessToken->httpRequest(self::SMS_OPEN, $param);
- }
-
- public function modify($sign)
- {
- $param = [
- 'sign' => $sign
- ];
- return $this->accessToken->httpRequest(self::SMS_MODIFY, $param);
- }
-
- public function info()
- {
- return $this->accessToken->httpRequest(self::SMS_INFO, []);
- }
-
- public function temps($page = 1, $limit = 10, $temp_type = '')
- {
- $param = [
- 'page' => $page,
- 'limit' => $limit,
- 'temp_type' => $temp_type
- ];
- return $this->accessToken->httpRequest(self::SMS_TEMPS, $param);
- }
-
- public function apply($title, $content, $type)
- {
- $param = [
- 'title' => $title,
- 'content' => $content,
- 'type' => $type
- ];
- return $this->accessToken->httpRequest(self::SMS_APPLY, $param);
- }
-
- public function applys($temp_type, $page, $limit)
- {
- $param = [
- 'temp_type' => $temp_type,
- 'page' => $page,
- 'limit' => $limit
- ];
- return $this->accessToken->httpRequest(self::SMS_APPLYS, $param);
- }
-
- public function send($phone, $templateId, $data = [])
- {
- if (!$phone) {
- throw new ValidateException('手机号不能为空');
- }
- $param = [
- 'phone' => $phone
- ];
- $param['temp_id'] = $this->getTemplateCode($templateId);
- if (is_null($param['temp_id'])) {
- throw new ValidateException('模版ID不存在');
- }
- $param['param'] = json_encode($data);
- return [
- 'data' => $this->accessToken->httpRequest(self::SMS_SEND, $param)
- ];
- }
-
- public function record($record_id)
- {
- $param = [
- 'record_id' => $record_id
- ];
- return $this->accessToken->httpRequest(self::SMS_RECORD, $param);
- }
- }
|