Advertisement
Guest User

Untitled

a guest
May 10th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1. <?php namespace App\Helpers;
  2.  
  3. use Illuminate\Support\Facades\Config;
  4. use GuzzleHttp\Client;
  5.  
  6. class Sms {
  7.  
  8. public function __construct()
  9. {
  10.  
  11. }
  12.  
  13.  
  14. /**
  15. * @param null $mobile
  16. * @param null $message
  17. * @param null $encoding
  18. * @return array
  19. */
  20. public static function send($mobile = NULL, $message = NULL, $encoding = NULL)
  21. {
  22. $data = array();
  23.  
  24. $sender = Config::get('sms.sender');
  25.  
  26. //the sms format must start with 6
  27. $valid_mobile = $mobile;
  28. if($mobile[0] == '0')
  29. {
  30. $valid_mobile = '6'.$mobile;
  31. }
  32.  
  33. //new method
  34. $company = config('sms.company');
  35. $username = config('sms.username');
  36. $password = config('sms.password');
  37. //$checksms_url = 'username='.$username.'&password='.$password;
  38.  
  39. $client = New Client([
  40. // Base URI is used with relative requests
  41. 'base_uri' => config('sms.base_url'),
  42. // You can set any number of default request options.
  43. 'timeout' => 2.0,
  44. ]);
  45. //checksms
  46. //$response = $client->request('GET', config('sms.credit_url').$checksms_url);
  47.  
  48. //echo and dump is different output, need to use (string) to convert it
  49. //echo $response->getBody();
  50. //dump( $response->getBody() );
  51. //$credit = (string) $response->getBody();
  52.  
  53. //or
  54. //$stream = $response->getBody();
  55. //$data['credit'] = $stream->getContents();
  56.  
  57. //$this->curl = New Curl;
  58. //if return false means Curl not working
  59.  
  60. if($encoding == 'UTF16')
  61. {
  62. $type = 3;
  63. //API written it require to convert to hex form
  64. $message = bin2hex(iconv('UTF-8', 'UTF-16BE', $message));
  65.  
  66. $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";
  67.  
  68. //$response = $client->request('GET', config('sms.credit_url').$checksms_url);
  69. $response = $client->request('GET', config('sms.send_url').$sendsms_url);
  70.  
  71. $stream = $response->getBody();
  72. $data['sms_returnstatus'] = $stream->getContents();
  73. //$data['sms_returnstatus'] = $this->curl->simple_get($sendsms_url);
  74.  
  75. }
  76. else
  77. {
  78. //it must be urlencode or else it won't work
  79. $message = html_entity_decode($message, ENT_QUOTES, 'utf-8');
  80. $message = urlencode($message);
  81.  
  82. $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";
  83.  
  84.  
  85. $response = $client->request('GET', config('sms.send_url').$sendsms_url);
  86.  
  87. $stream = $response->getBody();
  88. $data['sms_returnstatus'] = $stream->getContents();
  89. }
  90.  
  91. //$data['sms_returntext'] = $this->return_status($data['sms_returnstatus']);
  92.  
  93. //remove cache due to after send the sms
  94. //Cache::forget('sms_credit');
  95.  
  96. return $data;
  97. }
  98.  
  99.  
  100. /*
  101. * Return SMS Server Status
  102. */
  103. public function return_status($code)
  104. {
  105. //only take the 4 digi
  106. $return_code = substr($code, 0, 4);
  107. switch($return_code)
  108. {
  109. case '1701':
  110. $sms_returntext = 'Message Sent Successfully.';
  111. break;
  112. case '1702':
  113. $sms_returntext = 'Invalid Username/Password.';
  114. break;
  115. case '1703':
  116. $sms_returntext = 'Internal Server Error.';
  117. break;
  118. case '1704':
  119. $sms_returntext = 'Insufficient Credits.';
  120. //send email to treeswift/acc department
  121.  
  122. break;
  123. case '1705':
  124. $sms_returntext = 'Invalid Mobile Number';
  125. break;
  126. case '1706':
  127. $sms_returntext = 'Invalid Message / Invalid SenderID';
  128. break;
  129. case '1707':
  130. $sms_returntext = 'Transfer Credits Successful';
  131. break;
  132. case '1708':
  133. $sms_returntext = 'Account not existing for Credits Transfer';
  134. break;
  135. case '1709':
  136. $sms_returntext = 'Invalid Credits Value for Credits Transfer';
  137. break;
  138. case '1718':
  139. $sms_returntext = 'Duplicate record received';
  140. break;
  141. default:
  142. $sms_returntext = 'Invalid Code';
  143. break;
  144. }
  145. return $sms_returntext;
  146. }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement