From 69aa01648097fba6b786107f401e5a95bca66924 Mon Sep 17 00:00:00 2001 From: Ben James Date: Sun, 18 May 2014 13:03:40 +0100 Subject: [PATCH] Attempt to create basket parameter to show line items in sagepay panel - requires tax to be implemented on common itembag Signed-off-by: Ben James --- src/Message/AbstractRequest.php | 22 ++++++++++++++++++++++ src/Message/DirectAuthorizeRequest.php | 2 ++ 2 files changed, 24 insertions(+) diff --git a/src/Message/AbstractRequest.php b/src/Message/AbstractRequest.php index 7738dea..4fb5d8e 100644 --- a/src/Message/AbstractRequest.php +++ b/src/Message/AbstractRequest.php @@ -110,6 +110,28 @@ protected function getBaseData() return $data; } + protected function getItemData() + { + $data = array(); + $items = $this->getItems(); + + if ($items) { + + $data['basket'] = count($items) . ':'; + + foreach ($items as $n => $item) { + $data['basket'] .= $item->getName() . ':'; + $data['basket'] .= $item->getQuantity() . ':'; + $data['basket'] .= $this->formatCurrency($item->getPrice()) . ':'; + $data['basket'] .= $item->getTax() . ':'; + $data['basket'] .= $this->formatCurrency($item->getFullPrice()) . ':'; + $data['basket'] .= $this->formatCurrency($item->getQuantity() * $item->getFullPrice()); + } + } + + return $data; + } + public function sendData($data) { $httpResponse = $this->httpClient->post($this->getEndpoint(), null, $data)->send(); diff --git a/src/Message/DirectAuthorizeRequest.php b/src/Message/DirectAuthorizeRequest.php index 8b2c502..cb9de82 100644 --- a/src/Message/DirectAuthorizeRequest.php +++ b/src/Message/DirectAuthorizeRequest.php @@ -50,6 +50,8 @@ protected function getBaseAuthorizeData() $data['DeliveryPhone'] = $card->getShippingPhone(); $data['CustomerEMail'] = $card->getEmail(); + $data = array_merge($data, $this->getItemData()); + return $data; }