diff --git a/src/Api/Transaction/Transaction.php b/src/Api/Transaction/Transaction.php index 3596a66..5d2e9f6 100644 --- a/src/Api/Transaction/Transaction.php +++ b/src/Api/Transaction/Transaction.php @@ -336,12 +336,16 @@ public function setCustomer($data = []) /** * This method sests a single callback for both the success and Error * @param string $primaryCallbackURL A url for callbacks from the hubtel server - * @return function + * @return self */ public function callback($primaryCallbackURL) { - return $this->setPrimaryCallbackURL($primaryCallbackURL) - ->setSecondaryCallbackURL($primaryCallbackURL); + if (is_string($primaryCallbackURL)) { + $this->setPrimaryCallbackURL($primaryCallbackURL) + ->setSecondaryCallbackURL($primaryCallbackURL); + } + + return $this; } /** @@ -352,6 +356,7 @@ public function callback($primaryCallbackURL) public function setCallback($data = []) { if (is_array($data)) { + if (array_key_exists('callbackOnFail', $data)) { $this->setSecondaryCallbackURL($data['callbackOnFail']); } @@ -369,21 +374,11 @@ public function setCallback($data = []) } if (array_key_exists('callback', $data)) { - if (is_array($data['callback']) && array_key_exists('success', $data['callback'])) { - $this->setPrimaryCallbackURL($data['callback']['success']); - } - - if (is_array($data['callback']) && array_key_exists('error', $data['callback'])) { - $this->setSecondaryCallbackURL($data['callback']['error']); - } - - if (is_string($data['callback'])) { - $this->callback($data['callback']); - } + $this->setCallback($data['callback']); } } - return $this; + return $this->callback($data); } /** * Sets the URL to call when the payment fails or is unsuccessfull