Passed
Push — feature/eco-2635-amazon-psd2-a... ( 3d1991...624fe6 )
by Volodymyr
07:20
created

PaymentController::preparePSD2Data()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 1
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Apache OSL-2
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Yves\AmazonPay\Controller;
9
10
use Generated\Shared\Transfer\AmazonpayPaymentTransfer;
1 ignored issue
show
Bug introduced by
The type Generated\Shared\Transfer\AmazonpayPaymentTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
11
use Generated\Shared\Transfer\CheckoutErrorTransfer;
1 ignored issue
show
Bug introduced by
The type Generated\Shared\Transfer\CheckoutErrorTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
12
use Generated\Shared\Transfer\CheckoutResponseTransfer;
1 ignored issue
show
Bug introduced by
The type Generated\Shared\Transfer\CheckoutResponseTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
13
use Generated\Shared\Transfer\QuoteTransfer;
1 ignored issue
show
Bug introduced by
The type Generated\Shared\Transfer\QuoteTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
14
use Spryker\Shared\Config\Config;
15
use Spryker\Yves\Kernel\Controller\AbstractController;
16
use SprykerEco\Shared\AmazonPay\AmazonPayConfig;
17
use SprykerEco\Shared\AmazonPay\AmazonPayConstants;
18
use SprykerEco\Yves\AmazonPay\Plugin\Provider\AmazonPayControllerProvider;
19
use Symfony\Component\HttpFoundation\JsonResponse;
20
use Symfony\Component\HttpFoundation\Request;
21
22
/**
23
 * @method \SprykerEco\Client\AmazonPay\AmazonPayClientInterface getClient()
24
 * @method \SprykerEco\Yves\AmazonPay\AmazonPayFactory getFactory()
25
 */
26
class PaymentController extends AbstractController
27
{
28
    public const URL_PARAM_REFERENCE_ID = 'reference_id';
29
    public const URL_PARAM_SELLER_ID = 'seller_id';
30
    public const URL_PARAM_ACCESS_TOKEN = 'access_token';
31
    public const URL_PARAM_SHIPMENT_METHOD_ID = 'shipment_method_id';
32
    public const QUOTE_TRANSFER = 'quoteTransfer';
33
    public const SHIPMENT_METHODS = 'shipmentMethods';
34
    public const SELECTED_SHIPMENT_METHOD_ID = 'selectedShipmentMethodId';
35
    public const AMAZONPAY_CONFIG = 'amazonpayConfig';
36
    public const IS_ASYNCHRONOUS = 'isAsynchronous';
37
    public const CART_ITEMS = 'cartItems';
38
    public const SUCCESS = 'success';
39
    public const ERROR_AMAZONPAY_PAYMENT_FAILED = 'amazonpay.payment.failed';
40
    public const IS_AMAZON_PAYMENT_INVALID = 'isAmazonPaymentInvalid';
41
    public const ADDRESS_BOOK_MODE = 'addressBookMode';
42
    public const ORDER_REFERENCE = 'orderReferenceId';
43
44
    public const PSD2_DATA = 'psd2Data';
45
    public const PSD2_DATA_KEY_AJAX_ENDPOINT = 'psd2AjaxEndpoint';
46
    public const PSD2_DATA_KEY_SELLER_ID = 'amazonSellerId';
47
    public const PSD2_DATA_KEY_AMAZON_ORDER_REFERENCE_ID = 'amazonOrderReferenceId';
48
49
    /**
50
     * @param \Symfony\Component\HttpFoundation\Request $request
51
     *
52
     * @return \Spryker\Yves\Kernel\View\View|\Symfony\Component\HttpFoundation\RedirectResponse
53
     */
54
    public function checkoutAction(Request $request)
55
    {
56
        $response = $this->executeCheckoutAction($request);
57
58
        if (!is_array($response)) {
0 ignored issues
show
introduced by
The condition is_array($response) is always false.
Loading history...
59
            return $response;
60
        }
61
62
        return $this->view($response, [], '@AmazonPay/views/checkout/checkout.twig');
63
    }
64
65
    /**
66
     * @param \Symfony\Component\HttpFoundation\Request $request
67
     *
68
     * @return array|\Symfony\Component\HttpFoundation\RedirectResponse
69
     */
70
    protected function executeCheckoutAction(Request $request)
71
    {
72
        $quoteTransfer = $this->getFactory()
73
            ->getQuoteClient()
74
            ->getQuote();
75
76
        if (!$this->isAllowedCheckout($quoteTransfer) || !$this->isRequestComplete($request)) {
77
            $this->addAmazonPayErrorFromQuote($quoteTransfer);
78
79
            return $this->buildRedirectInternalResponse();
80
        }
81
82
        $this->storeAmazonPaymentIntoQuote($request, $quoteTransfer);
83
84
        $data = [
85
            static::QUOTE_TRANSFER => $quoteTransfer,
86
            static::CART_ITEMS => $this->getCartItems($quoteTransfer),
87
            static::AMAZONPAY_CONFIG => $this->getAmazonPayConfig(),
88
            static::PSD2_DATA => $this->preparePSD2Data($quoteTransfer),
89
        ];
90
91
        if ($this->isAmazonPaymentInvalid($quoteTransfer)) {
92
            $data[static::ORDER_REFERENCE] = $this->getAmazonPaymentOrderReferenceId($quoteTransfer);
93
            $data[static::ADDRESS_BOOK_MODE] = AmazonPayConfig::DISPLAY_MODE_READONLY;
94
        }
95
96
        return $data;
97
    }
98
99
    /**
100
     * @param \Symfony\Component\HttpFoundation\Request $request
101
     *
102
     * @return \Symfony\Component\HttpFoundation\Response
103
     */
104
    public function setOrderReferenceAction(Request $request)
105
    {
106
        $quoteTransfer = $this->getFactory()
107
            ->getQuoteClient()
108
            ->getQuote();
109
110
        if (!$this->isAmazonPayment($quoteTransfer)) {
111
            return $this->buildRedirectInternalResponse();
112
        }
113
114
        $quoteTransfer->getAmazonpayPayment()
115
            ->setOrderReferenceId(
116
                $request->request->get(static::URL_PARAM_REFERENCE_ID)
117
            );
118
119
        return new JsonResponse([static::SUCCESS => true]);
120
    }
121
122
    /**
123
     * @param \Symfony\Component\HttpFoundation\Request $request
124
     *
125
     * @return \Spryker\Yves\Kernel\View\View|\Symfony\Component\HttpFoundation\RedirectResponse
126
     */
127
    public function getShipmentMethodsAction(Request $request)
128
    {
129
        $response = $this->executeShipmentMethodsAction($request);
130
131
        if (!is_array($response)) {
0 ignored issues
show
introduced by
The condition is_array($response) is always false.
Loading history...
132
            return $response;
133
        }
134
135
        return $this->view($response, [], '@AmazonPay/views/get-shipment-methods/get-shipment-methods.twig');
136
    }
137
138
    /**
139
     * @param \Symfony\Component\HttpFoundation\Request $request
140
     *
141
     * @return array|\Symfony\Component\HttpFoundation\RedirectResponse
142
     */
143
    protected function executeShipmentMethodsAction(Request $request)
1 ignored issue
show
Unused Code introduced by
The parameter $request is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

143
    protected function executeShipmentMethodsAction(/** @scrutinizer ignore-unused */ Request $request)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
144
    {
145
        $quoteTransfer = $this->getFactory()
146
            ->getQuoteClient()
147
            ->getQuote();
148
149
        if (!$this->isAmazonPayment($quoteTransfer)) {
150
            $this->addAmazonPayErrorFromQuote($quoteTransfer);
151
152
            return $this->buildRedirectInternalResponse();
153
        }
154
155
        $quoteTransfer = $this->getClient()
156
            ->addSelectedAddressToQuote($quoteTransfer);
157
        $this->saveQuoteIntoSession($quoteTransfer);
158
        $shipmentMethods = $this->getFactory()
159
            ->getShipmentClient()
160
            ->getAvailableMethods($quoteTransfer);
161
162
        return [
163
            static::SELECTED_SHIPMENT_METHOD_ID => $this->getCurrentShipmentMethodId($quoteTransfer),
164
            static::SHIPMENT_METHODS => $shipmentMethods->getMethods(),
165
            static::IS_AMAZON_PAYMENT_INVALID => $this->isAmazonPaymentInvalid($quoteTransfer),
166
        ];
167
    }
168
169
    /**
170
     * @param \Symfony\Component\HttpFoundation\Request $request
171
     *
172
     * @return \Spryker\Yves\Kernel\View\View|\Symfony\Component\HttpFoundation\RedirectResponse
173
     */
174
    public function updateShipmentMethodAction(Request $request)
175
    {
176
        $response = $this->executeShipmentMethodAction($request);
177
178
        if (!is_array($response)) {
0 ignored issues
show
introduced by
The condition is_array($response) is always false.
Loading history...
179
            return $response;
180
        }
181
182
        return $this->view($response, [], '@AmazonPay/views/shipment-method/shipment-method.twig');
183
    }
184
185
    /**
186
     * @param \Symfony\Component\HttpFoundation\Request $request
187
     *
188
     * @return array|\Symfony\Component\HttpFoundation\RedirectResponse
189
     */
190
    protected function executeShipmentMethodAction(Request $request)
191
    {
192
        $quoteTransfer = $this->getFactory()->getQuoteClient()->getQuote();
193
194
        if (!$this->isAmazonPayment($quoteTransfer)) {
195
            $this->addAmazonPayErrorFromQuote($quoteTransfer);
196
197
            return $this->buildRedirectInternalResponse();
198
        }
199
200
        $quoteTransfer->getShipment()->setShipmentSelection(
201
            $request->request->get(static::URL_PARAM_SHIPMENT_METHOD_ID)
202
        );
203
        $quoteTransfer = $this->getClient()
204
            ->addSelectedShipmentMethodToQuote($quoteTransfer);
205
        $quoteTransfer = $this->getFactory()
206
            ->getCalculationClient()->recalculate($quoteTransfer);
207
        $this->saveQuoteIntoSession($quoteTransfer);
208
209
        return [
210
            static::QUOTE_TRANSFER => $quoteTransfer,
211
        ];
212
    }
213
214
    /**
215
     * @param \Symfony\Component\HttpFoundation\Request $request
216
     *
217
     * @return \Symfony\Component\HttpFoundation\Response
218
     */
219
    public function confirmPurchaseAction(Request $request)
1 ignored issue
show
Unused Code introduced by
The parameter $request is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

219
    public function confirmPurchaseAction(/** @scrutinizer ignore-unused */ Request $request)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
220
    {
221
        $quoteTransfer = $this->getFactory()->getQuoteClient()->getQuote();
222
223
        if (!$this->isAmazonPayment($quoteTransfer)) {
224
            $this->addAmazonPayErrorFromQuote($quoteTransfer);
225
226
            return $this->buildRedirectInternalResponse();
227
        }
228
229
        $checkoutResponseTransfer = $this->getFactory()->getCheckoutClient()->placeOrder($quoteTransfer);
230
        $this->saveQuoteIntoSession($quoteTransfer);
231
232
        if ($checkoutResponseTransfer->getIsSuccess()) {
233
            return $this->redirectResponseInternal(AmazonPayControllerProvider::SUCCESS);
234
        }
235
236
        $this->addAmazonPayErrorFromQuote($quoteTransfer);
237
        $this->setCheckoutErrorMessages($checkoutResponseTransfer);
238
239
        return $this->buildRedirectInternalResponse();
240
    }
241
242
    /**
243
     * @param \Symfony\Component\HttpFoundation\Request $request
244
     *
245
     * @return \Spryker\Yves\Kernel\View\View|\Symfony\Component\HttpFoundation\RedirectResponse
246
     */
247
    public function successAction(Request $request)
248
    {
249
        $response = $this->executeSuccessAction($request);
250
251
        if (!is_array($response)) {
0 ignored issues
show
introduced by
The condition is_array($response) is always true.
Loading history...
252
            return $response;
253
        }
254
255
        return $this->view($response, [], '@AmazonPay/views/success/success.twig');
256
    }
257
258
    /**
259
     * @param \Symfony\Component\HttpFoundation\Request $request
260
     *
261
     * @return array|\Symfony\Component\HttpFoundation\RedirectResponse
262
     */
263
    protected function executeSuccessAction(Request $request)
1 ignored issue
show
Unused Code introduced by
The parameter $request is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

263
    protected function executeSuccessAction(/** @scrutinizer ignore-unused */ Request $request)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
264
    {
265
        $this->getFactory()->getCustomerClient()->markCustomerAsDirty();
266
        $this->getFactory()->getCartClient()->clearQuote();
267
268
        return [
269
            static::IS_ASYNCHRONOUS => $this->isAsynchronous(),
270
            static::AMAZONPAY_CONFIG => $this->getAmazonPayConfig(),
271
        ];
272
    }
273
274
    /**
275
     * @param \Symfony\Component\HttpFoundation\Request $request
276
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
277
     *
278
     * @return void
279
     */
280
    protected function storeAmazonPaymentIntoQuote(Request $request, QuoteTransfer $quoteTransfer)
281
    {
282
        $amazonPaymentTransfer = $this->buildAmazonPaymentTransfer($request);
283
284
        $quoteTransfer->setAmazonpayPayment($amazonPaymentTransfer);
285
        $quoteTransfer = $this->getClient()
286
            ->handleCartWithAmazonPay($quoteTransfer);
287
        $this->saveQuoteIntoSession($quoteTransfer);
288
    }
289
290
    /**
291
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
292
     *
293
     * @return void
294
     */
295
    protected function saveQuoteIntoSession(QuoteTransfer $quoteTransfer)
296
    {
297
        $this->getFactory()
298
            ->getQuoteClient()
299
            ->setQuote($quoteTransfer);
300
    }
301
302
    /**
303
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
304
     *
305
     * @return int|null
306
     */
307
    protected function getCurrentShipmentMethodId(QuoteTransfer $quoteTransfer)
308
    {
309
        if ($quoteTransfer->getShipment() === null || $quoteTransfer->getShipment()->getMethod() === null) {
310
            return null;
311
        }
312
313
        return $quoteTransfer->getShipment()->getMethod()->getIdShipmentMethod();
314
    }
315
316
    /**
317
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
318
     *
319
     * @return \ArrayObject|\Generated\Shared\Transfer\ItemTransfer[]
320
     */
321
    protected function getCartItems(QuoteTransfer $quoteTransfer)
322
    {
323
        return $quoteTransfer->getItems();
324
    }
325
326
    /**
327
     * @param \Symfony\Component\HttpFoundation\Request $request
328
     *
329
     * @return bool
330
     */
331
    protected function isRequestComplete(Request $request)
332
    {
333
        return (
334
            $request->query->get(static::URL_PARAM_REFERENCE_ID) !== null &&
335
            $request->query->get(static::URL_PARAM_ACCESS_TOKEN) !== null
336
        );
337
    }
338
339
    /**
340
     * @param \Symfony\Component\HttpFoundation\Request $request
341
     *
342
     * @return \Generated\Shared\Transfer\AmazonpayPaymentTransfer
343
     */
344
    protected function buildAmazonPaymentTransfer(Request $request)
345
    {
346
        $amazonPaymentTransfer = new AmazonpayPaymentTransfer();
347
        $amazonPaymentTransfer->setOrderReferenceId($request->query->get(static::URL_PARAM_REFERENCE_ID));
348
        $amazonPaymentTransfer->setAddressConsentToken($request->query->get(static::URL_PARAM_ACCESS_TOKEN));
349
350
        return $amazonPaymentTransfer;
351
    }
352
353
    /**
354
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
355
     *
356
     * @return bool
357
     */
358
    protected function isAllowedCheckout(QuoteTransfer $quoteTransfer)
359
    {
360
        return $quoteTransfer->getTotals() !== null;
361
    }
362
363
    /**
364
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
365
     *
366
     * @return bool
367
     */
368
    protected function isLogoutRedirect(QuoteTransfer $quoteTransfer)
369
    {
370
        if ($this->isAmazonPaymentInvalid($quoteTransfer)) {
371
            return false;
372
        }
373
374
        if ($this->getAmazonPayConfig()->getCaptureNow() &&
375
            $quoteTransfer->getAmazonpayPayment() !== null
376
            && $quoteTransfer->getAmazonpayPayment()->getResponseHeader() !== null
377
            && !$quoteTransfer->getAmazonpayPayment()->getResponseHeader()->getIsSuccess()
378
        ) {
379
            return true;
380
        }
381
382
        return false;
383
    }
384
385
    /**
386
     * @param \Symfony\Component\HttpFoundation\Request $request
387
     *
388
     * @return \Symfony\Component\HttpFoundation\RedirectResponse
389
     */
390
    protected function buildRedirectExternalResponse(Request $request)
391
    {
392
        if ($request->headers->get('Referer') === null) {
0 ignored issues
show
introduced by
The condition $request->headers->get('Referer') === null is always false.
Loading history...
393
            return $this->buildRedirectInternalResponse();
394
        }
395
396
        return $this->redirectResponseExternal($request->headers->get('Referer'));
397
    }
398
399
    /**
400
     * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
401
     *
402
     * @return void
403
     */
404
    protected function setCheckoutErrorMessages(CheckoutResponseTransfer $checkoutResponseTransfer)
405
    {
406
        foreach ($checkoutResponseTransfer->getErrors() as $checkoutErrorTransfer) {
407
            $this->addErrorMessage(
408
                $this->translateCheckoutErrorMessage($checkoutErrorTransfer)
409
            );
410
        }
411
    }
412
413
    /**
414
     * @param \Generated\Shared\Transfer\CheckoutErrorTransfer $checkoutErrorTransfer
415
     *
416
     * @return string
417
     */
418
    protected function translateCheckoutErrorMessage(CheckoutErrorTransfer $checkoutErrorTransfer): string
419
    {
420
        $checkoutErrorMessage = $checkoutErrorTransfer->getMessage();
421
422
        return $this->getFactory()->getGlossaryStorageClient()->translate(
423
            $checkoutErrorMessage,
424
            $this->getLocale(),
425
            $checkoutErrorTransfer->getParameters()
426
        ) ?: $checkoutErrorMessage;
427
    }
428
429
    /**
430
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
431
     *
432
     * @return void
433
     */
434
    protected function addAmazonPayErrorFromQuote(QuoteTransfer $quoteTransfer)
435
    {
436
        if ($quoteTransfer->getAmazonpayPayment() === null
437
            || $quoteTransfer->getAmazonpayPayment()->getResponseHeader() === null
438
            || $quoteTransfer->getAmazonpayPayment()->getResponseHeader()->getErrorMessage() === null) {
439
            return;
440
        }
441
442
        $this->addErrorMessage(
443
            $quoteTransfer->getAmazonpayPayment()->getResponseHeader()->getErrorMessage()
444
        );
445
    }
446
447
    /**
448
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
449
     *
450
     * @return bool
451
     */
452
    protected function isAmazonPayment(QuoteTransfer $quoteTransfer)
453
    {
454
        return $quoteTransfer->getAmazonpayPayment() !== null;
455
    }
456
457
    /**
458
     * @return \Symfony\Component\HttpFoundation\RedirectResponse
459
     */
460
    protected function buildRedirectInternalResponse()
461
    {
462
        return $this->redirectResponseInternal($this->getPaymentRejectRoute());
463
    }
464
465
    /**
466
     * @return string
467
     */
468
    protected function getPaymentRejectRoute()
469
    {
470
        return Config::get(AmazonPayConstants::PAYMENT_REJECT_ROUTE);
471
    }
472
473
    /**
474
     * @return bool
475
     */
476
    protected function isAsynchronous()
477
    {
478
        return $this->getAmazonPayConfig()->getAuthTransactionTimeout() > 0
479
            && !$this->getAmazonPayConfig()->getCaptureNow();
480
    }
481
482
    /**
483
     * @return \SprykerEco\Shared\AmazonPay\AmazonPayConfigInterface
484
     */
485
    protected function getAmazonPayConfig()
486
    {
487
        return $this->getFactory()->createAmazonPayConfig();
488
    }
489
490
    /**
491
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
492
     *
493
     * @return bool
494
     */
495
    protected function isAmazonPaymentInvalid(QuoteTransfer $quoteTransfer)
496
    {
497
        if ($quoteTransfer->getAmazonpayPayment()->getResponseHeader() !== null
498
            && $quoteTransfer->getAmazonpayPayment()->getResponseHeader()->getIsInvalidPaymentMethod()) {
499
            return true;
500
        }
501
502
        return false;
503
    }
504
505
    /**
506
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
507
     *
508
     * @return string|null
509
     */
510
    protected function getAmazonPaymentOrderReferenceId(QuoteTransfer $quoteTransfer)
511
    {
512
        if ($quoteTransfer->getAmazonpayPayment() !== null && $quoteTransfer->getAmazonpayPayment()->getOrderReferenceId() !== null) {
513
            return $quoteTransfer->getAmazonpayPayment()->getOrderReferenceId();
514
        }
515
516
        return null;
517
    }
518
519
    /**
520
     * @param QuoteTransfer $quoteTransfer
521
     *
522
     * @return array
523
     */
524
    protected function preparePSD2Data(QuoteTransfer $quoteTransfer): array
525
    {
526
        return [
527
            static::PSD2_DATA_KEY_AJAX_ENDPOINT => $this->getApplication()->url(AmazonPayControllerProvider::PSD2_AJAX_ENDPOINT),
0 ignored issues
show
Bug introduced by
The constant SprykerEco\Yves\AmazonPa...der::PSD2_AJAX_ENDPOINT was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
528
            static::PSD2_DATA_KEY_SELLER_ID => $this->getAmazonPayConfig()->getSellerId(),
529
            static::PSD2_DATA_KEY_AMAZON_ORDER_REFERENCE_ID => $quoteTransfer->getAmazonpayPayment()->getOrderReferenceId(),
530
        ];
531
    }
532
}
533