39 lines
1.2 KiB
PHP
39 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Overtrue\EasySms\Gateways;
|
|
|
|
use Overtrue\EasySms\Contracts\MessageInterface;
|
|
use Overtrue\EasySms\Contracts\PhoneNumberInterface;
|
|
use Overtrue\EasySms\Exceptions\GatewayErrorException;
|
|
use Overtrue\EasySms\Support\Config;
|
|
use Overtrue\EasySms\Traits\HasHttpRequest;
|
|
|
|
class NowcnGateway extends Gateway
|
|
{
|
|
use HasHttpRequest;
|
|
|
|
const ENDPOINT_URL = 'http://ad1200.now.net.cn:2003/sms/sendSMS';
|
|
|
|
const SUCCESS_CODE = 0;
|
|
|
|
public function send(PhoneNumberInterface $to, MessageInterface $message, Config $config)
|
|
{
|
|
if (!$config->get('key')) {
|
|
throw new GatewayErrorException("key not found", -2, []);
|
|
}
|
|
$params = [
|
|
'mobile' => $to->getNumber(),
|
|
'content' => $message->getContent($this),
|
|
'userId' => $config->get('key'),
|
|
'password' => $config->get('secret'),
|
|
'apiType' => $config->get('api_type'),
|
|
];
|
|
$result = $this->get(self::ENDPOINT_URL, $params);
|
|
$result = is_string($result) ? json_decode($result, true) : $result;
|
|
if (self::SUCCESS_CODE != $result['code']) {
|
|
throw new GatewayErrorException($result['msg'], $result['code'], $result);
|
|
}
|
|
return $result;
|
|
}
|
|
}
|