Skip to content

Commit 6ad88a3

Browse files
author
Fabian Pechstein
committed
[bug-fix] update server_side handler
1 parent a05842f commit 6ad88a3

3 files changed

Lines changed: 14 additions & 20 deletions

File tree

src/PayoneBundle/Ecommerce/PaymentManager/BsPayone.php

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use GuzzleHttp\Exception\GuzzleException;
1515
use PayoneBundle\Model\AbstractDataProcessor;
1616
use PayoneBundle\PayoneBundle;
17+
use PayoneBundle\Registry\CaptureQueueInterface;
1718
use PayoneBundle\Registry\IRegistry;
1819
use PayoneBundle\Registry\Registry;
1920
use PayoneBundle\Service\ServerToServerServiceInterface;
@@ -203,33 +204,35 @@ class BsPayone extends AbstractPayment implements \Pimcore\Bundle\EcommerceFrame
203204
* @var ServerToServerServiceInterface
204205
*/
205206
private $serverService;
207+
/**
208+
* @var CaptureQueueInterface
209+
*/
210+
private $captureQueue;
206211

207212

208213
/**
209214
* BsPayone constructor.
210215
* @param array $options
211216
* @param EngineInterface $templatingEngine
212-
* @param SessionInterface $session
213-
* @param FormFactoryInterface $formFactory
214217
* @param LoggerInterface $logger
215218
* @param IRegistry $registry
219+
* @param CaptureQueueInterface $captureQueue
216220
* @param ServerToServerServiceInterface $serverService
217221
* @throws \Exception
218222
*/
219-
public function __construct(array $options, EngineInterface $templatingEngine, SessionInterface $session, FormFactoryInterface $formFactory, LoggerInterface $logger, IRegistry $registry, ServerToServerServiceInterface $serverService)
223+
public function __construct(array $options, EngineInterface $templatingEngine, LoggerInterface $logger, IRegistry $registry, CaptureQueueInterface $captureQueue, ServerToServerServiceInterface $serverService)
220224
{
221-
$this->formFactory = $formFactory;
222225

223226
$this->processOptions(
224227
$this->configureOptions(new OptionsResolver())->resolve($options)
225228
);
226229
$this->templatingEngine = $templatingEngine;
227-
$this->session = $session;
228230
$this->mode = getenv('PAYONE_MODE');
229231

230232
$this->logger = $logger;
231233
$this->registry = $registry;
232234
$this->serverService = $serverService;
235+
$this->captureQueue = $captureQueue;
233236
}
234237

235238
/**
@@ -657,26 +660,17 @@ public function getInitPaymentRedirectUrl($config)
657660

658661
$redirectURL = $result['redirecturl'];
659662

660-
if ($result['status'] == "APPROVED") {
661-
662-
663-
if ($paymentType == self::METHOD_INVOICE || $paymentType == self::METHOD_PREPAYMENT) {
663+
if ( $paymentType == self::METHOD_PREPAYMENT) {
664+
if ($result['status'] == "APPROVED") {
664665
//commit the order already
665666
$checkoutManager = Factory::getInstance()->getCheckoutManager($cart);
666667
$checkoutManager->handlePaymentResponseAndCommitOrderPayment($result);
667668

668669
//change redirect to checkout complete
669670
$result['redirecturl'] = $config['completedURL'];
670671
$result['status'] = 'REDIRECT';
672+
$redirectURL = $result['redirecturl'];
671673
}
672-
673-
/*
674-
$redirectURL = $result['redirecturl'];
675-
if($paymentType == "PREPAYMENT"){
676-
$result['poll'] = $config['pollingURL']."?ref=". $result['reference'];
677-
}
678-
*/
679-
680674
}
681675

682676
if (!$redirectURL) {
@@ -980,6 +974,9 @@ public function handleResponse($response)
980974
$paymentStatus = StatusInterface::STATUS_AUTHORIZED;
981975
} else if ($response['reference'] !== null && (($response['txaction'] == 'paid'))) {
982976
$paymentStatus = StatusInterface::STATUS_CLEARED;
977+
// resolve capture
978+
$this->captureQueue->resolveCapture($response['txid']);
979+
983980
}
984981

985982
$status = new Status(

src/PayoneBundle/EventListener/CaptureListener.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ public function onPayoneResponse(PayoneResponseEvent $event)
7272
//do not resolve now.
7373
//$this->captureQueue->resolveCapture($event->getResponseParameters()['txid']);
7474

75-
7675
}
7776

7877
}

src/PayoneBundle/Resources/config/services.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ services:
2424
arguments:
2525
$options: []
2626
$templatingEngine: '@templating.engine.delegating'
27-
$session: '@session'
28-
$formFactory: '@form.factory'
2927
$serverService: '@PayoneBundle\Service\ServerToServerServiceInterface'
3028

3129

0 commit comments

Comments
 (0)