Skip to content

Commit d4082bb

Browse files
author
Mike
committed
Added shipping to SagePay
1 parent 1d62cc4 commit d4082bb

File tree

2 files changed

+45
-3
lines changed

2 files changed

+45
-3
lines changed

example/index.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,13 @@
136136
$gateway->initialize((array) $app['session']->get($sessionVar));
137137

138138
$params = $app['session']->get($sessionVar.'.purchase', array());
139+
139140
$params['returnUrl'] = str_replace('/purchase', '/completePurchase', $app['request']->getUri());
140141
$params['cancelUrl'] = $app['request']->getUri();
142+
143+
144+
145+
141146
$card = new Omnipay\Common\CreditCard($app['session']->get($sessionVar.'.card'));
142147

143148
return $app['twig']->render('request.twig', array(
@@ -157,13 +162,39 @@
157162
// load POST data
158163
$params = $app['request']->get('params');
159164
$card = $app['request']->get('card');
165+
$items = new Omnipay\Common\ItemBag;
166+
$items->add(array(
167+
'id' => 'ABC123',
168+
'name' => 'Food',
169+
'quantity' => 1,
170+
'price' => '1.00',
171+
'tax' => '2.00',
172+
));
173+
/*
174+
$items->add(array(
175+
'id' => 'ZZZ1234',
176+
'name' => 'Food2',
177+
'quantity' => 1,
178+
'price' => '1.00',
179+
'tax' => '1.00',
180+
));
181+
*/
182+
$params['tax'] = "2.00";
183+
$params['shipping'] = "1.00";
160184

161185
// save POST data into session
162186
$app['session']->set($sessionVar.'.purchase', $params);
163187
$app['session']->set($sessionVar.'.card', $card);
164188

165189
$params['card'] = $card;
166190
$params['clientIp'] = $app['request']->getClientIp();
191+
//$params['lowProfile'] = true;
192+
$params['items'] = $items;
193+
194+
/*
195+
print_r($params);
196+
die();
197+
*/
167198
$response = $gateway->purchase($params)->send();
168199

169200
return $app['twig']->render('response.twig', array(

src/Omnipay/SagePay/Message/ServerAuthorizeRequest.php

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ public function getData()
2121
$items = $this->getItems();
2222

2323
if ($items) {
24-
25-
$data['Basket'] = count($items);
24+
$i = count($items);
2625
foreach ($items as $n => $item) {
2726

2827
$data['Basket'] .= ':' . $item->getId()." - ".$item->getName();
@@ -32,9 +31,21 @@ public function getData()
3231
$data['Basket'] .= ':' . $this->formatCurrency($item->getPrice() + $item->getTax());
3332
$data['Basket'] .= ':' . $this->formatCurrency($item->getQuantity() * ($item->getPrice() + $item->getTax()));
3433
}
35-
3634
}
3735

36+
if($this->getShipping())
37+
{
38+
$i++;
39+
$data['Basket'] .= ':' . 'Delivery';
40+
$data['Basket'] .= ':' . '1';
41+
$data['Basket'] .= ':' . $this->getShipping();
42+
$data['Basket'] .= ':' . '---';
43+
$data['Basket'] .= ':' . $this->getShipping();
44+
$data['Basket'] .= ':' . $this->getShipping();
45+
}
46+
47+
if(isset($data['Basket'])) $data['Basket'] = $i.$data['Basket'];
48+
3849
return $data;
3950
}
4051

0 commit comments

Comments
 (0)