You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
<?php
|
|
|
|
namespace app\common\sms;
|
|
|
|
use GuzzleHttp\Client;
|
|
|
|
use app\common\sms\Isms;
|
|
|
|
use think\facade\Db;
|
|
|
|
//實作物流串接介面
|
|
class SmskingSms implements Isms
|
|
{
|
|
private $username;
|
|
private $password;
|
|
|
|
public function __construct(string $username, string $password)
|
|
{
|
|
$this->username = $username;
|
|
$this->password = $password;
|
|
}
|
|
|
|
public function sendSms(array $data)
|
|
{
|
|
// 將$message 轉為 Big5 編碼
|
|
$message = mb_convert_encoding($data['message'], 'BIG5', 'UTF-8');
|
|
|
|
$url = 'https://api.kotsms.com.tw/kotsmsapi-1.php';
|
|
|
|
$query = http_build_query([
|
|
'username' => $this->username,
|
|
'password' => $this->password,
|
|
'dstaddr' => $data['recipient'],
|
|
'smbody' => $message,
|
|
]);
|
|
|
|
$url .= '?' . $query;
|
|
// 使用 Guzzle 發送 API 請求
|
|
$client = new Client();
|
|
$response = $client->request('GET', $url);
|
|
|
|
// 處理 API 回應
|
|
$body = $response->getBody()->getContents();
|
|
|
|
$result =explode('=',$body);
|
|
// $result = json_decode($body, true);
|
|
if ($result[1]>=0) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
}
|