Advertisement
Guest User

Untitled

a guest
May 3rd, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 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. $username = config('sms.username');
  35. $password = config('sms.password');
  36. //$checksms_url = 'username='.$username.'&password='.$password;
  37.  
  38. $client = New Client([
  39. // Base URI is used with relative requests
  40. 'base_uri' => config('sms.base_url'),
  41. // You can set any number of default request options.
  42. 'timeout' => 2.0,
  43. ]);
  44.  
  45. if($encoding == 'UTF16')
  46. {
  47. $type = 3;
  48. //API written it require to convert to hex form
  49. $message = bin2hex(iconv('UTF-8', 'UTF-16BE', $message));
  50.  
  51. $sendsms_url = 'username='.$username.'&password='.$password.
  52. '&message='.$message.'&mobile='.$valid_mobile.'&sender='.$sender.'&type='.$type;
  53.  
  54. //$response = $client->request('GET', config('sms.credit_url').$checksms_url);
  55. $response = $client->request('GET', config('sms.send_url').$sendsms_url);
  56.  
  57. $stream = $response->getBody();
  58. $data['sms_returnstatus'] = $stream->getContents();
  59. //$data['sms_returnstatus'] = $this->curl->simple_get($sendsms_url);
  60.  
  61. }
  62. else
  63. {
  64. //it must be urlencode or else it won't work
  65. $message = html_entity_decode($message, ENT_QUOTES, 'utf-8');
  66. $message = urlencode($message);
  67. $type = 1;
  68. $sendsms_url = 'username='.$username.'&password='.$password.
  69. '&message='.$message.'&mobile='.$valid_mobile.'&sender='.$sender.'&type='.$type;
  70.  
  71. $response = $client->request('GET', config('sms.send_url').$sendsms_url);
  72.  
  73. $stream = $response->getBody();
  74. $data['sms_returnstatus'] = $stream->getContents();
  75. }
  76.  
  77. //$data['sms_returntext'] = $this->return_status($data['sms_returnstatus']);
  78.  
  79. //remove cache due to after send the sms
  80. //Cache::forget('sms_credit');
  81.  
  82. return $data;
  83. }
  84.  
  85.  
  86. /*
  87. * Return SMS Server Status
  88. */
  89. public function return_status($code)
  90. {
  91. //only take the 4 digi
  92. $return_code = substr($code, 0, 4);
  93. switch($return_code)
  94. {
  95. case '1701':
  96. $sms_returntext = 'Message Sent Successfully.';
  97. break;
  98. case '1702':
  99. $sms_returntext = 'Invalid Username/Password.';
  100. break;
  101. case '1703':
  102. $sms_returntext = 'Internal Server Error.';
  103. break;
  104. case '1704':
  105. $sms_returntext = 'Insufficient Credits.';
  106. //send email to treeswift/acc department
  107.  
  108. break;
  109. case '1705':
  110. $sms_returntext = 'Invalid Mobile Number';
  111. break;
  112. case '1706':
  113. $sms_returntext = 'Invalid Message / Invalid SenderID';
  114. break;
  115. case '1707':
  116. $sms_returntext = 'Transfer Credits Successful';
  117. break;
  118. case '1708':
  119. $sms_returntext = 'Account not existing for Credits Transfer';
  120. break;
  121. case '1709':
  122. $sms_returntext = 'Invalid Credits Value for Credits Transfer';
  123. break;
  124. case '1718':
  125. $sms_returntext = 'Duplicate record received';
  126. break;
  127. default:
  128. $sms_returntext = 'Invalid Code';
  129. break;
  130. }
  131. return $sms_returntext;
  132. }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement