From 1c6128611ca3c8f1f16d301075f5bc3b206a4cfe Mon Sep 17 00:00:00 2001 From: faryar Date: Tue, 19 Feb 2019 18:41:07 +0330 Subject: [PATCH 1/2] add colors --- phpunit.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpunit.xml b/phpunit.xml index 16bf6af..d02b343 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,4 +1,4 @@ - + ./test/RestTestCase.php From c4a9d9c3685028be7a431f0fb81cb1317e5c1d69 Mon Sep 17 00:00:00 2001 From: faryar Date: Tue, 19 Feb 2019 18:53:24 +0330 Subject: [PATCH 2/2] refactor --- src/Drivers/RestDriver.php | 84 +++++++++++++++++++------------------- src/Zarinpal.php | 28 ++++++------- 2 files changed, 55 insertions(+), 57 deletions(-) diff --git a/src/Drivers/RestDriver.php b/src/Drivers/RestDriver.php index fdbec84..abdb15b 100644 --- a/src/Drivers/RestDriver.php +++ b/src/Drivers/RestDriver.php @@ -20,11 +20,10 @@ public function request($inputs) { $result = $this->restCall('PaymentRequest.json', $inputs); - if ($result['Status'] == 100) { - return ['Authority' => $result['Authority']]; - } else { - return ['error' => $result['Status']]; - } + return $result['Status'] == 100 ? + ['Authority' => $result['Authority']] : + ['rror' => $result['Status']]; + } /** @@ -40,13 +39,13 @@ public function requestWithExtra($inputs) if ($result['Status'] == 100) { return ['Authority' => $result['Authority']]; - } else { - return [ - 'Status' => 'error', - 'error' => !empty($result['Status']) ? $result['Status'] : null, - 'errorInfo' => !empty($result['errors']) ? $result['errors'] : null, - ]; - } + } + return [ + 'Status' => 'error', + 'error' => !empty($result['Status']) ? $result['Status'] : null, + 'errorInfo' => !empty($result['errors']) ? $result['errors'] : null, + ]; + } /** @@ -65,18 +64,20 @@ public function verify($inputs) 'Status' => 'success', 'RefID' => $result['RefID'], ]; - } elseif ($result['Status'] == 101) { + } + if ($result['Status'] == 101) { return [ 'Status' => 'verified_before', 'RefID' => $result['RefID'], ]; - } else { - return [ - 'Status' => 'error', - 'error' => !empty($result['Status']) ? $result['Status'] : null, - 'errorInfo' => !empty($result['errors']) ? $result['errors'] : null, - ]; - } + } + + return [ + 'Status' => 'error', + 'error' => !empty($result['Status']) ? $result['Status'] : null, + 'errorInfo' => !empty($result['errors']) ? $result['errors'] : null, + ]; + } /** @@ -96,19 +97,21 @@ public function verifyWithExtra($inputs) 'RefID' => $result['RefID'], 'ExtraDetail' => $result['ExtraDetail'], ]; - } elseif ($result['Status'] == 101) { + } + if ($result['Status'] == 101) { return [ 'Status' => 'verified_before', 'RefID' => $result['RefID'], 'ExtraDetail' => $result['ExtraDetail'], ]; - } else { - return [ - 'Status' => 'error', - 'error' => !empty($result['Status']) ? $result['Status'] : null, - 'errorInfo' => !empty($result['errors']) ? $result['errors'] : null, - ]; - } + } + + return [ + 'Status' => 'error', + 'error' => !empty($result['Status']) ? $result['Status'] : null, + 'errorInfo' => !empty($result['errors']) ? $result['errors'] : null, + ]; + } /** @@ -124,13 +127,12 @@ public function unverifiedTransactions($inputs) if ($result['Status'] == 100) { return ['Status' => 'success', 'Authorities' => $result['Authorities']]; - } else { - return [ - 'Status' => 'error', - 'error' => !empty($result['Status']) ? $result['Status'] : null, - 'errorInfo' => !empty($result['errors']) ? $result['errors'] : null, - ]; - } + } + return [ + 'Status' => 'error', + 'error' => !empty($result['Status']) ? $result['Status'] : null, + 'errorInfo' => !empty($result['errors']) ? $result['errors'] : null, + ]; } /** @@ -146,9 +148,9 @@ public function refreshAuthority($inputs) if ($result['Status'] == 100) { return ['Status' => 'success', 'refreshed' => true]; - } else { - return ['Status' => 'error', 'error' => $result['Status']]; - } + } + return ['Status' => 'error', 'error' => $result['Status']]; + } /** @@ -173,9 +175,7 @@ private function restCall($uri, $data) $body = json_decode($rawBody, true); } - if (!isset($result['Status'])) { - $result['Status'] = -99; - } + $result['Status'] = !isset($result['Status']) ? -99 : $result['Status']; return $body; } @@ -188,10 +188,12 @@ private function restCall($uri, $data) public function setAddress($baseUrl) { $this->baseUrl = $baseUrl; + return $this; } public function enableSandbox() { $this->setAddress('https://sandbox.zarinpal.com/pg/rest/WebGate/'); + return $this; } } diff --git a/src/Zarinpal.php b/src/Zarinpal.php index 4c60a5d..2e41f88 100644 --- a/src/Zarinpal.php +++ b/src/Zarinpal.php @@ -42,22 +42,18 @@ public function request($callbackURL, $Amount, $Description, $Email = null, $Mob 'Amount' => $Amount, 'Description' => $Description, ]; - if (!is_null($Email)) { - $inputs['Email'] = $Email; - } - if (!is_null($Mobile)) { - $inputs['Mobile'] = $Mobile; - } - if (!is_null($additionalData)) { - $inputs['AdditionalData'] = $additionalData; - $results = $this->driver->requestWithExtra($inputs); - } else { - $results = $this->driver->request($inputs); - } + + + $inputs['Email'] =!is_null($Email) ? $Email :null; + + $inputs['Mobile'] =!is_null($Mobile) ? $Mobile :null; + + $inputs['AdditionalData'] =!is_null($additionalData) ? $additionalData : null ; + + $results = !is_null($additionalData) ? $this->driver->requestWithExtra($inputs) :$this->driver->request($inputs); + + $results['Authority'] = empty($results['Authority']) ? null : $results['Authority']; - if (empty($results['Authority'])) { - $results['Authority'] = null; - } $this->Authority = $results['Authority']; return $results; @@ -92,7 +88,7 @@ public function verify($amount, $authority) public function redirect() { header('Location: '.sprintf($this->redirectUrl, $this->Authority)); - die; + exit(); } /**