forked from opensourcepos/opensourcepos
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSms_lib.php
More file actions
77 lines (63 loc) · 2.78 KB
/
Copy pathSms_lib.php
File metadata and controls
77 lines (63 loc) · 2.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
namespace app\Libraries;
use CodeIgniter\Encryption\Encryption;
use CodeIgniter\Encryption\EncrypterInterface;
use Config\OSPOS;
use Config\Services;
/**
* SMS library
*
* Library with utilities to send texts via SMS Gateway (requires proxy implementation)
*/
class Sms_lib
{
/**
* SMS sending function
* Example of use: $response = sendSMS('4477777777', 'My test message');
*/
public function sendSMS(int $phone, string $message): bool
{
$config = config(OSPOS::class)->settings;
$encrypter = Services::encrypter();
$password = $config['msg_pwd'];
if (!empty($password)) {
$password = $encrypter->decrypt($password);
}
$username = $config['msg_uid'];
$originator = $config['msg_src'];
$response = false;
// If any of the parameters is empty return with a false
if (empty($username) || empty($password) || empty($phone) || empty($message) || empty($originator)) { // TODO: This if/else needs to be flipped. and shortened. No else needed in the code example below.
// $parameters = [$username, $password, $phone, $message, $originator];
// if (count(array_filter($parameters)) === 5) {
// $response = true;
// $message = rawurlencode($message);
// }
// echo $username . ' ' . $password . ' ' . $phone . ' ' . $message . ' ' . $originator;
} else {
$response = true;
// TODO: These comments should be moved to the documentation. As is, they tend to get out of date.
// make sure passed string is url encoded
$message = rawurlencode($message); // TODO: $message needs to be passed by reference if you want this line to actually do anything
// Add call to send a message via 3rd party API here
// Some examples
/*
* $url = "http://xxx.xxx.xxx.xxx/send_sms?username=$username&password=$password&src=$originator&dst=$phone&msg=$message&dr=1";
*
* $c = curl_init();
* curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
* curl_setopt($c, CURLOPT_URL, $url);
* $response = curl_exec($c);
* curl_close($c);
*/
// This is a textmarketer.co.uk API call, see: http://wiki.textmarketer.co.uk/display/DevDoc/Text+Marketer+Developer+Documentation+-+Wiki+Home
/*
* $url = 'https://api.textmarketer.co.uk/gateway/'."?username=$username&password=$password&option=xml";
* $url .= "&to=$phone&message=".urlencode($message).'&orig='.urlencode($originator);
* $fp = fopen($url, 'r');
* $response = fread($fp, 1024);
*/
}
return $response;
}
}