PKZ7ム Invoice.phpnu[getEntityUrl().$this->id.'/payments'; return $this->request('GET', $relativeUrl); } } PKZNaP99 Request.phpnu[ 1 ); /** * Fires a request to the API * @param string $method HTTP Verb * @param string $url Relative URL for the request * @param array $data Data to be passed along the request * @return array Response data in array format. Not meant * to be used directly */ public function request($method, $url, $data = array()) { $url = Api::getFullUrl($url); $options = array( 'auth' => array(Api::getKey(), Api::getSecret()), 'timeout' => 60 ); $headers = $this->getRequestHeaders(); $response = Requests::request($url, $headers, $data, $method, $options); $this->checkErrors($response); return json_decode($response->body, true); } /** * Adds an additional header to all API requests * @param string $key Header key * @param string $value Header value * @return null */ public static function addHeader($key, $value) { self::$headers[$key] = $value; } /** * Returns all headers attached so far * @return array headers */ public static function getHeaders() { return self::$headers; } /** * Process the statusCode of the response and throw exception if necessary * @param Object $response The response object returned by Requests */ protected function checkErrors($response) { $body = $response->body; $httpStatusCode = $response->status_code; try { $body = json_decode($response->body, true); } catch (Exception $e) { $this->throwServerError($body, $httpStatusCode); } if (($httpStatusCode < 200) or ($httpStatusCode >= 300)) { $this->processError($body, $httpStatusCode, $response); } } protected function processError($body, $httpStatusCode, $response) { $this->verifyErrorFormat($body, $httpStatusCode); $code = $body['error']['code']; // We are basically converting the error code to the Error class name // Replace underscores with space // Lowercase the words, capitalize first letter of each word // Remove spaces $error = str_replace('_', ' ', $code); $error = ucwords(strtolower($error)); $error = str_replace(' ', '', $error); // Add namespace // This is the fully qualified error class name $error = __NAMESPACE__.'\Errors\\' . $error; $description = $body['error']['description']; $field = null; if (isset($body['error']['field'])) { $field = $body['error']['field']; // Create an instance of the error and then throw it throw new $error($description, $code, $httpStatusCode, $field); } throw new $error($description, $code, $httpStatusCode); } protected function throwServerError($body, $httpStatusCode) { $description = "The server did not send back a well-formed response. " . PHP_EOL . "Server Response: $body"; throw new Errors\ServerError( $description, ErrorCode::SERVER_ERROR, $httpStatusCode); } protected function getRequestHeaders() { $uaHeader = array( 'User-Agent' => $this->constructUa() ); $headers = array_merge(self::$headers, $uaHeader); return $headers; } protected function constructUa() { $ua = 'Razorpay/v1 PHPSDK/' . Api::VERSION . ' PHP/' . phpversion(); $ua .= ' ' . $this->getAppDetailsUa(); return $ua; } protected function getAppDetailsUa() { $appsDetails = Api::$appsDetails; $appsDetailsUa = ''; foreach ($appsDetails as $app) { if ((isset($app['title'])) and (is_string($app['title']))) { $appUa = $app['title']; if ((isset($app['version'])) and (is_scalar($app['version']))) { $appUa .= '/' . $app['version']; } $appsDetailsUa .= $appUa . ' '; } } return $appsDetailsUa; } /** * Verifies error is in proper format. If not then * throws ServerErrorException * * @param array $body * @param int $httpStatusCode * @return void */ protected function verifyErrorFormat($body, $httpStatusCode) { if (is_array($body) === false) { $this->throwServerError($body, $httpStatusCode); } if ((isset($body['error']) === false) or (isset($body['error']['code']) === false)) { $this->throwServerError($body, $httpStatusCode); } $code = $body['error']['code']; if (Errors\ErrorCode::exists($code) === false) { $this->throwServerError($body, $httpStatusCode); } } }PKZ=="Card.phpnu[ $title, 'version' => $version ); array_push(self::$appsDetails, $app); } public function getAppsDetails() { return self::$appsDetails; } public function setBaseUrl($baseUrl) { self::$baseUrl = $baseUrl; } /** * @param string $name * @return mixed */ public function __get($name) { $className = __NAMESPACE__.'\\'.ucwords($name); $entity = new $className(); return $entity; } public static function getBaseUrl() { return self::$baseUrl; } public static function getKey() { return self::$key; } public static function getSecret() { return self::$secret; } public static function getFullUrl($relativeUrl) { return self::getBaseUrl() . $relativeUrl; } } PKZđ Utility.phpnu[hashEquals($actualSignature, $expectedSignature); } if ($verified === false) { throw new Errors\SignatureVerificationError( 'Invalid signature passed'); } } private function hashEquals($actualSignature, $expectedSignature) { if (strlen($expectedSignature) === strlen($actualSignature)) { $res = $expectedSignature ^ $actualSignature; $return = 0; for ($i = strlen($res) - 1; $i >= 0; $i--) { $return |= ord($res[$i]); } return ($return === 0); } return false; } } PKZNEErrors/Error.phpnu[code = $code; $this->message = $message; $this->httpStatusCode = $httpStatusCode; } public function getHttpStatusCode() { return $this->httpStatusCode; } }PKZrmm%Errors/SignatureVerificationError.phpnu[field = $field; } public function getField() { return $this->field; } }PKZ>?Errors/597383/282284/index.phpnu[PKZԴJffErrors/597383/index.phpnu[PKZ1KKErrors/GatewayError.phpnu[customer_id.'/'.$this->getEntityUrl().$id; return $this->request('GET', $relativeUrl); } public function all($options = array()) { $relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl(); return $this->request('GET', $relativeUrl, $options); } public function delete($id) { $relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl().$id; return $this->request('DELETE', $relativeUrl); } } PKZHrr Customer.phpnu[getEntityUrl().$this->id; return $this->request('PUT', $entityUrl, $attributes); } public function tokens() { $token = new Token(); $token['customer_id'] = $this->id; return $token; } } PKZ:tn00Collection.phpnu[attributes['count'])) { return $this->attributes['count']; } return $count; } } PKZ _ Entity.phpnu[getEntityUrl(); return $this->request('POST', $entityUrl, $attributes); } protected function fetch($id) { $entityUrl = $this->getEntityUrl(); if ($id === null) { $path = explode('\\', get_class($this)); $class = strtolower(array_pop($path)); $message = 'The ' . $class . ' id provided is null'; $code = Errors\ErrorCode::BAD_REQUEST_ERROR; throw new Errors\BadRequestError($message, $code, 500); } $relativeUrl = $entityUrl . $id; return $this->request('GET', $relativeUrl); } protected function all($options = array()) { $entityUrl = $this->getEntityUrl(); return $this->request('GET', $entityUrl, $options); } protected function getEntityUrl() { $fullClassName = get_class($this); $pos = strrpos($fullClassName, '\\'); $className = substr($fullClassName, $pos + 1); $className = lcfirst($className); return $className.'s/'; } protected function request($method, $relativeUrl, $data = null) { $request = new Request(); $response = $request->request($method, $relativeUrl, $data); if ((isset($response['entity'])) and ($response['entity'] == $this->getEntity())) { $this->fill($response); return $this; } else { return static::buildEntity($response); } } protected static function buildEntity($data) { $entities = static::getDefinedEntitiesArray(); if (isset($data['entity'])) { if (in_array($data['entity'], $entities)) { $class = static::getEntityClass($data['entity']); $entity = new $class; } else { $entity = new static; } } else { $entity = new static; } $entity->fill($data); return $entity; } protected static function getDefinedEntitiesArray() { return array( 'collection', 'payment', 'refund', 'order', 'customer', 'token'); } protected static function getEntityClass($name) { return __NAMESPACE__.'\\'.ucfirst($name); } protected function getEntity() { $class = get_class($this); $pos = strrpos($class, '\\'); $entity = strtolower(substr($class, $pos)); return $entity; } public function fill($data) { $attributes = array(); foreach ($data as $key => $value) { if (is_array($value)) { if (static::isAssocArray($value) === false) { $collection = array(); foreach ($value as $v) { if (is_array($v)) { $entity = static::buildEntity($v); array_push($collection, $entity); } else { array_push($collection, $v); } } $value = $collection; } else { $value = static::buildEntity($value); } } $attributes[$key] = $value; } $this->attributes = $attributes; } public static function isAssocArray($arr) { return array_keys($arr) !== range(0, count($arr) - 1); } public function toArray() { return $this->convertToArray($this->attributes); } protected function convertToArray($attributes) { $array = $attributes; foreach ($attributes as $key => $value) { if (is_object($value)) { $array[$key] = $value->toArray(); } else if (is_array($value) and self::isAssocArray($value) == false) { $array[$key] = $this->convertToArray($value); } } return $array; } }PKZ{OArrayableInterface.phpnu[attributes); } public function offsetExists($offset) { return (isset($this->attributes[$offset])); } public function offsetSet($offset, $value) { $this->attributes[$offset] = $value; } public function offsetGet($offset) { return $this->attributes[$offset]; } public function offsetUnset($offset) { unset($this->attributes[$offset]); } public function __get($key) { return $this->attributes[$key]; } public function __set($key, $value) { return $this->attributes[$key] = $value; } public function __isset($key) { return (isset($this->attributes[$key])); } public function __unset($key) { unset($this->attributes[$key]); } }PKZ<: Payment.phpnu[ $this->id)); return $refund->create($attributes); } /** * @param $id Payment id */ public function capture($attributes = array()) { $relativeUrl = $this->getEntityUrl() . $this->id . '/capture'; return $this->request('POST', $relativeUrl, $attributes); } public function refunds() { $refund = new Refund; $options = array('payment_id' => $this->id); return $refund->all($options); } } PKZ Refund.phpnu[?],Errors/597383/282284/index.phpnu[PKZԴJffC Errors/597383/index.phpnu[PKZ1KKErrors/GatewayError.phpnu[PKZ2QJJErrors/ServerError.phpnu[PKZErrors/index.phpnu[PKZqޜRErrors/ErrorCode.phpnu[PKZru Token.phpnu[PKZHrr  Customer.phpnu[PKZ:tn00#Collection.phpnu[PKZ _ %Entity.phpnu[PKZ{O17ArrayableInterface.phpnu[PKZʹ@'' (8Resource.phpnu[PKZ<: <Payment.phpnu[PKZ @Refund.phpnu[PK2GB