} throw new Exception('PIN is incorrect.'); } } else { //remote } } catch (Exception $e) { setError($e->getMessage()); } return false; } } $server = new Zend\Json\Server\Server(); function setError($msg = null, $code = 404, $data = null) { global $server; $server->fault($msg, $code, $data); } $server->setClass('NitroCard')->setTarget('https://' . $_SERVER['SERVER_NAME'] . '/' . $_SERVER['SCRIPT_NAME'])->setDescription('NitroCard Server API')->setEnvelope(Zend\Json\Server\Smd::ENV_JSONRPC_2); if (isset($_GET['smd'])) { echo $server->getServiceMap(); exit; } if ('GET' == $_SERVER['REQUEST_METHOD']) { echo "Access denied."; exit; } if ('POST' == $_SERVER['REQUEST_METHOD']) { $response = $server->handle(); echo $response; }
<?php require_once __DIR__ . '/../../vendor/autoload.php'; require_once 'Calculator.php'; // Check authentication if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] !== 'username' || $_SERVER['PHP_AUTH_PW'] !== 'password') { header('WWW-Authenticate: Basic realm="PHP JSON-RPC Server"'); header('HTTP/1.1 401 Unauthorized'); exit; } // Instantiate the JSON-RPC server $server = new \Zend\Json\Server\Server(); $server->setClass('Calculator'); $server->handle();