lifecell.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. class lifecell extends SendDogProto {
  3. /**
  4. * Loads Lifecell service config
  5. *
  6. * @return void
  7. */
  8. public function loadLifecellConfig() {
  9. $smsgateway = zb_StorageGet('SENDDOG_LIFECELL_GATEWAY');
  10. if (empty($smsgateway)) {
  11. $smsgateway = 'https://api.lifecell.com.ua/ip2sms/';
  12. zb_StorageSet('SENDDOG_LIFECELL_GATEWAY', $smsgateway);
  13. }
  14. $smslogin = zb_StorageGet('SENDDOG_LIFECELL_LOGIN');
  15. if (empty($smslogin)) {
  16. $smslogin = 'yourlogin';
  17. zb_StorageSet('SENDDOG_LIEFCELL_LOGIN', $smslogin);
  18. }
  19. $smspassword = zb_StorageGet('SENDDOG_LIFECELL_PASSWORD');
  20. if (empty($smspassword)) {
  21. $smspassword = 'yourpassword';
  22. zb_StorageSet('SENDDOG_LIFECELL_PASSWORD', $smspassword);
  23. }
  24. $smssign = zb_StorageGet('SENDDOG_LIFECELL_SIGN');
  25. if (empty($smssign)) {
  26. $smssign = 'Alphaname';
  27. zb_StorageSet('SENDDOG_LIFECELL_SIGN', $smssign);
  28. }
  29. $this->settings['LIFECELL_GATEWAY'] = $smsgateway;
  30. $this->settings['LIFECELL_LOGIN'] = $smslogin;
  31. $this->settings['LIFECELL_PASSWORD'] = $smspassword;
  32. $this->settings['LIFECELL_SIGN'] = $smssign;
  33. }
  34. /**
  35. * Returns set of inputs, required for Lifecell service configuration
  36. *
  37. * @return string
  38. */
  39. public function renderLifecellConfigInputs() {
  40. $inputs = wf_tag('h2') . __('Lifecell') . wf_tag('h2', true);
  41. $inputs .= wf_TextInput('editlifecellgateway', __('Lifecell API address'), $this->settings['LIFECELL_GATEWAY'], true, 30);
  42. $inputs .= wf_TextInput('editlifecelllogin', __('User login to access API'), $this->settings['LIFECELL_LOGIN'], true, 20);
  43. $inputs .= wf_TextInput('editlifecellpassword', __('User password for access API'), $this->settings['LIFECELL_PASSWORD'], true, 20);
  44. $inputs .= wf_TextInput('editlifecellsign', __('Lifecell') . ' ' . __('Sign') . ' (' . __('Alphaname') . ')', $this->settings['LIFECELL_SIGN'], true, 20);
  45. $smsServiceFlag = ($this->settings['SMS_SERVICE'] == 'lifecell') ? true : false;
  46. $inputs .= wf_RadioInput('defaultsmsservice', __('Use Lifecell as default SMS service'), 'lifecell', true, $smsServiceFlag);
  47. return ($inputs);
  48. }
  49. /**
  50. * Saves service settings to database
  51. *
  52. * @return void
  53. */
  54. public function saveSettings() {
  55. //Lifecell configuration
  56. if ($_POST['editlifecellgateway'] != $this->settings['LIFECELL_GATEWAY']) {
  57. zb_StorageSet('SENDDOG_LIFECELL_GATEWAY', $_POST['editlifecellgateway']);
  58. log_register('SENDDOG CONFIG SET LIFECELLGATEWAY `' . $_POST['editlifecellgateway'] . '`');
  59. }
  60. if ($_POST['editlifecelllogin'] != $this->settings['LIFECELL_LOGIN']) {
  61. zb_StorageSet('SENDDOG_LIFECELL_LOGIN', $_POST['editlifecelllogin']);
  62. log_register('SENDDOG CONFIG SET LIFECELLLOGIN `' . $_POST['editlifecelllogin'] . '`');
  63. }
  64. if ($_POST['editlifecellpassword'] != $this->settings['LIFECELL_PASSWORD']) {
  65. zb_StorageSet('SENDDOG_LIFECELL_PASSWORD', $_POST['editlifecellpassword']);
  66. log_register('SENDDOG CONFIG SET LIFECELLPASSWORD `' . $_POST['editlifecellpassword'] . '`');
  67. }
  68. if ($_POST['editlifecellsign'] != $this->settings['LIFECELL_SIGN']) {
  69. zb_StorageSet('SENDDOG_LIFECELL_SIGN', $_POST['editlifecellsign']);
  70. log_register('SENDDOG CONFIG SET LIFECELLSIGN `' . $_POST['editlifecellsign'] . '`');
  71. }
  72. }
  73. /**
  74. * Sends all sms storage via lifecell service
  75. *
  76. * @return void
  77. */
  78. public function lifecellPushMessages() {
  79. $result = '';
  80. $apiUrl = $this->settings['LIFECELL_GATEWAY'];
  81. $source = $this->safeEscapeString($this->settings['LIFECELL_SIGN']);
  82. $login = $this->settings['LIFECELL_LOGIN'];
  83. $password = $this->settings['LIFECELL_PASSWORD'];
  84. $allSmsQueue = $this->smsQueue->getQueueData();
  85. if (!empty($allSmsQueue)) {
  86. foreach ($allSmsQueue as $io => $eachsms) {
  87. $number = str_replace('+', '', $eachsms['number']); //numbers in international format without +
  88. $params = array('http' =>
  89. array(
  90. 'method' => 'POST',
  91. 'header' => array('Authorization: Basic ' . base64_encode($login . ":" . $password), 'Content-Type:text/xml'),
  92. 'content' => '<message><service id="single" source="' . $source . '"/>
  93. <to>' . $number . '</to>
  94. <body content-type="text/plain">' . $eachsms['message'] . '</body></message>'));
  95. $ctx = stream_context_create($params);
  96. $fp = @fopen($apiUrl, 'rb', FALSE, $ctx);
  97. if ($fp) {
  98. $response = @stream_get_contents($fp);
  99. }
  100. //remove old sent message
  101. $this->smsQueue->deleteSms($eachsms['filename']);
  102. }
  103. }
  104. }
  105. }