Files
kulakpos_web/vendor/kavenegar/php/src/KavenegarApi.php
triagungbiantoro 417b7b7453
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m27s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 31s
Build, Push and Deploy / deploy-production (push) Has been skipped
harga pada beranda terhubung ke manage plans di dashboard admin
2026-04-25 21:57:25 +07:00

294 lines
9.2 KiB
PHP
Executable File

<?php
namespace Kavenegar;
use Kavenegar\Exceptions\ApiException;
use Kavenegar\Exceptions\HttpException;
use Kavenegar\Exceptions\RuntimeException;
use Kavenegar\Enums\ApiLogs ;
use Kavenegar\Enums\General;
class KavenegarApi
{
const APIPATH = "%s://api.kavenegar.com/v1/%s/%s/%s.json/";
const VERSION = "1.2.2";
public function __construct($apiKey,$insecure=false)
{
if (!extension_loaded('curl')) {
die('cURL library is not loaded');
exit;
}
if (is_null($apiKey)) {
die('apiKey is empty');
exit;
}
$this->apiKey = trim($apiKey);
$this->insecure = $insecure;
}
protected function get_path($method, $base = 'sms')
{
return sprintf(self::APIPATH,$this->insecure==true ? "http": "https", $this->apiKey, $base, $method);
}
protected function execute($url, $data = null)
{
$headers = array(
'Accept: application/json',
'Content-Type: application/x-www-form-urlencoded',
'charset: utf-8'
);
$fields_string = "";
if (!is_null($data)) {
$fields_string = http_build_query($data);
}
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $fields_string);
$response = curl_exec($handle);
$code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
$content_type = curl_getinfo($handle, CURLINFO_CONTENT_TYPE);
$curl_errno = curl_errno($handle);
$curl_error = curl_error($handle);
if ($curl_errno) {
throw new HttpException($curl_error, $curl_errno);
}
$json_response = json_decode($response);
if ($code != 200 && is_null($json_response)) {
throw new HttpException("Request have errors", $code);
} else {
$json_return = $json_response->return;
if ($json_return->status != 200) {
throw new ApiException($json_return->message, $json_return->status);
}
return $json_response->entries;
}
}
public function Send($sender, $receptor, $message, $date = null, $type = null, $localid = null)
{
if (is_array($receptor)) {
$receptor = implode(",", $receptor);
}
if (is_array($localid)) {
$localid = implode(",", $localid);
}
$path = $this->get_path("send");
$params = array(
"receptor" => $receptor,
"sender" => $sender,
"message" => $message,
"date" => $date,
"type" => $type,
"localid" => $localid
);
return $this->execute($path, $params);
}
public function SendArray($sender, $receptor, $message, $date = null, $type = null, $localmessageid = null)
{
if (!is_array($receptor)) {
$receptor = (array) $receptor;
}
if (!is_array($sender)) {
$sender = (array) $sender;
}
if (!is_array($message)) {
$message = (array) $message;
}
$repeat = count($receptor);
if (!is_null($type) && !is_array($type)) {
$type = array_fill(0, $repeat, $type);
}
if (!is_null($localmessageid) && !is_array($localmessageid)) {
$localmessageid = array_fill(0, $repeat, $localmessageid);
}
$path = $this->get_path("sendarray");
$params = array(
"receptor" => json_encode($receptor),
"sender" => json_encode($sender),
"message" => json_encode($message),
"date" => $date,
"type" => json_encode($type),
"localmessageid" => json_encode($localmessageid)
);
return $this->execute($path, $params);
}
public function Status($messageid)
{
$path = $this->get_path("status");
$params = array(
"messageid" => is_array($messageid) ? implode(",", $messageid) : $messageid
);
return $this->execute($path,$params);
}
public function StatusLocalMessageId($localid)
{
$path = $this->get_path("statuslocalmessageid");
$params = array(
"localid" => is_array($localid) ? implode(",", $localid) : $localid
);
return $this->execute($path, $params);
}
public function Select($messageid)
{
$params = array(
"messageid" => is_array($messageid) ? implode(",", $messageid) : $messageid
);
$path = $this->get_path("select");
return $this->execute($path, $params);
}
public function SelectOutbox($startdate, $enddate, $sender)
{
$path = $this->get_path("selectoutbox");
$params = array(
"startdate" => $startdate,
"enddate" => $enddate,
"sender" => $sender
);
return $this->execute($path, $params);
}
public function LatestOutbox($pagesize, $sender)
{
$path = $this->get_path("latestoutbox");
$params = array(
"pagesize" => $pagesize,
"sender" => $sender
);
return $this->execute($path, $params);
}
public function CountOutbox($startdate, $enddate, $status = 0)
{
$path = $this->get_path("countoutbox");
$params = array(
"startdate" => $startdate,
"enddate" => $enddate,
"status" => $status
);
return $this->execute($path, $params);
}
public function Cancel($messageid)
{
$path = $this->get_path("cancel");
$params = array(
"messageid" => is_array($messageid) ? implode(",", $messageid) : $messageid
);
return $this->execute($path,$params);
}
public function Receive($linenumber, $isread = 0)
{
$path = $this->get_path("receive");
$params = array(
"linenumber" => $linenumber,
"isread" => $isread
);
return $this->execute($path, $params);
}
public function CountInbox($startdate, $enddate, $linenumber, $isread = 0)
{
$path = $this->get_path("countinbox");
$params = array(
"startdate" => $startdate,
"enddate" => $enddate,
"linenumber" => $linenumber,
"isread" => $isread
);
return $this->execute($path, $params);
}
public function CountPostalcode($postalcode)
{
$path = $this->get_path("countpostalcode");
$params = array(
"postalcode" => $postalcode
);
return $this->execute($path, $params);
}
public function SendbyPostalcode($sender,$postalcode,$message, $mcistartindex, $mcicount, $mtnstartindex, $mtncount, $date)
{
$path = $this->get_path("sendbypostalcode");
$params = array(
"postalcode" => $postalcode,
"sender" => $sender,
"message" => $message,
"mcistartindex" => $mcistartindex,
"mcicount" => $mcicount,
"mtnstartindex" => $mtnstartindex,
"mtncount" => $mtncount,
"date" => $date
);
return $this->execute($path, $params);
}
public function AccountInfo()
{
$path = $this->get_path("info", "account");
return $this->execute($path);
}
public function AccountConfig($apilogs, $dailyreport, $debug, $defaultsender, $mincreditalarm, $resendfailed)
{
$path = $this->get_path("config", "account");
$params = array(
"apilogs" => $apilogs,
"dailyreport" => $dailyreport,
"debug" => $debug,
"defaultsender" => $defaultsender,
"mincreditalarm" => $mincreditalarm,
"resendfailed" => $resendfailed
);
return $this->execute($path, $params);
}
public function VerifyLookup($receptor, $token, $token2, $token3, $template, $type = null)
{
$path = $this->get_path("lookup", "verify");
$params = array(
"receptor" => $receptor,
"token" => $token,
"token2" => $token2,
"token3" => $token3,
"template" => $template,
"type" => $type
);
if(func_num_args()>5){
$arg_list = func_get_args();
if(isset($arg_list[6]))
$params["token10"]=$arg_list[6];
if(isset($arg_list[7]))
$params["token20"]=$arg_list[7];
}
return $this->execute($path, $params);
}
public function CallMakeTTS($receptor, $message, $date = null, $localid = null)
{
$path = $this->get_path("maketts", "call");
$params = array(
"receptor" => $receptor,
"message" => $message,
"date" => $date,
"localid" => $localid
);
return $this->execute($path, $params);
}
}
?>