Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php namespace App\Helpers;
- use Illuminate\Support\Facades\Config;
- use GuzzleHttp\Client;
- class Sms {
- public function __construct()
- {
- }
- /**
- * @param null $mobile
- * @param null $message
- * @param null $encoding
- * @return array
- */
- public static function send($mobile = NULL, $message = NULL, $encoding = NULL)
- {
- $data = array();
- $sender = Config::get('sms.sender');
- //the sms format must start with 6
- $valid_mobile = $mobile;
- if($mobile[0] == '0')
- {
- $valid_mobile = '6'.$mobile;
- }
- //new method
- $company = config('sms.company');
- $username = config('sms.username');
- $password = config('sms.password');
- //$checksms_url = 'username='.$username.'&password='.$password;
- $client = New Client([
- // Base URI is used with relative requests
- 'base_uri' => config('sms.base_url'),
- // You can set any number of default request options.
- 'timeout' => 2.0,
- ]);
- //checksms
- //$response = $client->request('GET', config('sms.credit_url').$checksms_url);
- //echo and dump is different output, need to use (string) to convert it
- //echo $response->getBody();
- //dump( $response->getBody() );
- //$credit = (string) $response->getBody();
- //or
- //$stream = $response->getBody();
- //$data['credit'] = $stream->getContents();
- //$this->curl = New Curl;
- //if return false means Curl not working
- if($encoding == 'UTF16')
- {
- $type = 3;
- //API written it require to convert to hex form
- $message = bin2hex(iconv('UTF-8', 'UTF-16BE', $message));
- $sendsms_url = "?company={$company}&user={$username}&password={$password}&gateway=L&mode=BUK&type=TX&hp={$valid_mobile}&mesg={$message}&charge=0&maskid=1&convert=0";
- //$response = $client->request('GET', config('sms.credit_url').$checksms_url);
- $response = $client->request('GET', config('sms.send_url').$sendsms_url);
- $stream = $response->getBody();
- $data['sms_returnstatus'] = $stream->getContents();
- //$data['sms_returnstatus'] = $this->curl->simple_get($sendsms_url);
- }
- else
- {
- //it must be urlencode or else it won't work
- $message = html_entity_decode($message, ENT_QUOTES, 'utf-8');
- $message = urlencode($message);
- $sendsms_url = "?company={$company}&user={$username}&password={$password}&gateway=L&mode=BUK&type=TX&hp={$valid_mobile}&mesg={$message}&charge=0&maskid=1&convert=0";
- $response = $client->request('GET', config('sms.send_url').$sendsms_url);
- $stream = $response->getBody();
- $data['sms_returnstatus'] = $stream->getContents();
- }
- //$data['sms_returntext'] = $this->return_status($data['sms_returnstatus']);
- //remove cache due to after send the sms
- //Cache::forget('sms_credit');
- return $data;
- }
- /*
- * Return SMS Server Status
- */
- public function return_status($code)
- {
- //only take the 4 digi
- $return_code = substr($code, 0, 4);
- switch($return_code)
- {
- case '1701':
- $sms_returntext = 'Message Sent Successfully.';
- break;
- case '1702':
- $sms_returntext = 'Invalid Username/Password.';
- break;
- case '1703':
- $sms_returntext = 'Internal Server Error.';
- break;
- case '1704':
- $sms_returntext = 'Insufficient Credits.';
- //send email to treeswift/acc department
- break;
- case '1705':
- $sms_returntext = 'Invalid Mobile Number';
- break;
- case '1706':
- $sms_returntext = 'Invalid Message / Invalid SenderID';
- break;
- case '1707':
- $sms_returntext = 'Transfer Credits Successful';
- break;
- case '1708':
- $sms_returntext = 'Account not existing for Credits Transfer';
- break;
- case '1709':
- $sms_returntext = 'Invalid Credits Value for Credits Transfer';
- break;
- case '1718':
- $sms_returntext = 'Duplicate record received';
- break;
- default:
- $sms_returntext = 'Invalid Code';
- break;
- }
- return $sms_returntext;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement