/
home
/
obinna
/
html
/
boazapp
/
vendor
/
africastalking
/
africastalking
/
src
/
Upload File
HOME
<?php namespace AfricasTalking\SDK; use GuzzleHttp\Client; class AfricasTalking { const BASE_DOMAIN = "africastalking.com"; const BASE_SANDBOX_DOMAIN = "sandbox." . self::BASE_DOMAIN; protected $username; protected $apiKey; protected $client; protected $contentClient; protected $voiceClient; protected $tokenClient; protected $mobileDataClient; protected $baseDomain; public $baseUrl; protected $voiceUrl; protected $checkoutTokenUrl; protected $contentUrl; protected $mobileDataUrl; public function __construct($username, $apiKey) { if($username === 'sandbox') { $this->baseDomain = self::BASE_SANDBOX_DOMAIN; } else { $this->baseDomain = self::BASE_DOMAIN; } $this->baseUrl = "https://api." . $this->baseDomain . "/version1/"; $this->voiceUrl = "https://voice." . $this->baseDomain . "/"; $this->mobileDataUrl = "https://bundles." . $this->baseDomain . "/"; $this->contentUrl = ($username === "sandbox") ? ($this->baseUrl) : ("https://content." . $this->baseDomain . "/version1/"); $this->checkoutTokenUrl = "https://api." . $this->baseDomain . "/"; if ($username === 'sandbox') { $this->contentUrl = $this->baseUrl; } $this->username = $username; $this->apiKey = $apiKey; $this->client = new Client([ 'base_uri' => $this->baseUrl, 'headers' => [ 'apikey' => $this->apiKey, 'Content-Type' => 'application/x-www-form-urlencoded', 'Accept' => 'application/json' ] ]); $this->contentClient = new Client([ 'base_uri' => $this->contentUrl, 'headers' => [ 'apikey' => $this->apiKey, 'Content-Type' => 'application/x-www-form-urlencoded', 'Accept' => 'application/json' ] ]); $this->voiceClient = new Client([ 'base_uri' => $this->voiceUrl, 'headers' => [ 'apikey' => $this->apiKey, 'Content-Type' => 'application/x-www-form-urlencoded', 'Accept' => 'application/json' ] ]); $this->mobileDataClient = new Client([ 'base_uri' => $this->mobileDataUrl, 'headers' => [ 'apikey' => $this->apiKey, 'Content-Type' => 'application/json', 'Accept' => 'application/json' ] ]); $this->tokenClient = new Client([ 'base_uri' => $this->checkoutTokenUrl, 'headers' => [ 'apikey' => $this->apiKey, 'Content-Type' => 'application/json', 'Accept' => 'application/json' ] ]); } public function sms() { $content = new Content($this->contentClient, $this->username, $this->apiKey); $sms = new SMS($this->client, $this->username, $this->apiKey, $content); return $sms; } public function content() { $content = new Content($this->contentClient, $this->username, $this->apiKey); return $content; } public function airtime() { $airtime = new Airtime($this->client, $this->username, $this->apiKey); return $airtime; } public function voice() { $voice = new Voice($this->voiceClient, $this->username, $this->apiKey); return $voice; } public function application() { $application = new Application($this->client, $this->username, $this->apiKey); return $application; } public function mobileData() { $mobileData = new MobileData($this->mobileDataClient, $this->username, $this->apiKey); return $mobileData; } public function token() { $token = new Token($this->tokenClient, $this->username, $this->apiKey); return $token; } }