phpservermon/classes/txtmsg/txtmsgMollie.class.php

99 lines
3.1 KiB
PHP
Executable File

<?php
/**
* PHP Server Monitor
* Monitor your servers and websites.
*
* This file is part of PHP Server Monitor.
* PHP Server Monitor is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PHP Server Monitor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
*
* @package phpservermon
* @author Pepijn Over <pep@neanderthal-technology.com>
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@
* @link http://phpservermon.neanderthal-technology.com/
**/
class txtmsgMollie extends txtmsgCore {
// =========================================================================
// [ Fields ]
// =========================================================================
public $gateway = 1;
public $success = false;
public $reference = '';
// =========================================================================
// [ Methods ]
// =========================================================================
/**
* Select the gateway to use
*
* @param unknown_type $gateway
*/
public function setGateway($gateway) {
$this->gateway = $gateway;
}
public function setReference ($reference) {
$this->reference = $reference;
}
/**
* Send a text message to one or more recipients
*
* @param string $subject
* @param string $body
* @return boolean
*/
public function sendSMS($message) {
$recipients = implode(',', $this->recipients);
$result = $this->_auth_https_post('www.mollie.nl', '/xml/sms/',
'gateway='.urlencode($this->gateway).
'&username='.urlencode($this->username).
'&password='.urlencode($this->password).
'&originator='.urlencode($this->originator).
'&recipients='.urlencode($recipients).
'&message='.urlencode($message) .
(($this->reference != '') ? '&reference='.$this->reference : '')
);
$this->recipients = array();
list($headers, $xml) = preg_split("/(\r?\n){2}/", $result, 2);
$data = simplexml_load_string($xml);
$this->success = ($data->item->success == 'true');
return $this->success;
}
protected function _auth_https_post($host, $path, $data) {
$fp = @fsockopen($host,80);
$buf = '';
if ($fp) {
@fputs($fp, "POST $path HTTP/1.0\n");
@fputs($fp, "Host: $host\n");
@fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
@fputs($fp, "Content-length: " . strlen($data) . "\n");
@fputs($fp, "Connection: close\n\n");
@fputs($fp, $data);
while (!feof($fp)) {
$buf .= fgets($fp,128);
}
fclose($fp);
}
return $buf;
}
}
?>