nsedit/includes/wefactauth.inc.php
2018-05-20 22:22:06 +03:00

81 lines
2.1 KiB
PHP

<?php
include_once 'config.inc.php';
include_once 'misc.inc.php';
/* This class is written by Wefact. See https://www.wefact.nl/wefact-hosting/apiv2/
*/
class WeFactAPI
{
private $url;
private $responseType;
private $apiKey;
public function __construct()
{
global $wefactapiurl;
global $wefactapikey;
$this->url = $wefactapiurl;
$this->api_key = $wefactapikey;
}
public function sendRequest($controller, $action, $params)
{
if (is_array($params)) {
$params['api_key'] = $this->api_key;
$params['controller'] = $controller;
$params['action'] = $action;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, '10');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
$curlResp = curl_exec($ch);
$curlError = curl_error($ch);
if ($curlError != '') {
$result = [
'controller' => 'invalid',
'action' => 'invalid',
'status' => 'error',
'date' => date('c'),
'errors' => [$curlError]
];
} else {
$result = json_decode($curlResp, true);
}
return $result;
}
}
function do_wefact_auth($u, $p)
{
$wefact = new WeFactApi();
$r = $wefact->sendRequest('debtor', 'show', [
'DebtorCode' => $u]);
if (isset($r['status']) && $r['status'] == 'success') {
$r = $wefact->sendRequest('debtor', 'checklogin', [
'Username' => $u,
'Password' => $p
]);
if (isset($r['status']) && $r['status'] == 'success') {
if (get_user_info($u) == false) {
add_user($u);
}
return true;
}
return false;
} else {
return -1;
}
}