From ea1163ecaad603c794b96a9667f4e580dc487f1c Mon Sep 17 00:00:00 2001 From: dimti Date: Tue, 13 Jul 2021 07:59:08 +0300 Subject: [PATCH] * change general omnipay-sberbank package source - fork from CvekCoding with revert pass default endpoint url and fix json_encode orderBundle array * correctly generate orderBundle cartItems --- classes/SberCheckout.php | 17 +++++++++-------- composer.json | 6 ++++++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/classes/SberCheckout.php b/classes/SberCheckout.php index 0021d55..51ab677 100644 --- a/classes/SberCheckout.php +++ b/classes/SberCheckout.php @@ -87,10 +87,7 @@ class SberCheckout extends PaymentProvider assert($request instanceof AuthorizeRequest); - // hacking private method - $reflectionMethod = new \ReflectionMethod(AbstractRequest::class, 'setParameter'); - $reflectionMethod->setAccessible(true); - $reflectionMethod->invoke($request, 'orderBundle', $this->getOrderBundle()); + $request->setOrderBundle($this->getOrderBundle()); $response = $request->send(); } catch (Throwable $e) { @@ -142,21 +139,25 @@ class SberCheckout extends PaymentProvider { $cartItems = []; + $items = []; + foreach ($this->order->products as $positionId => $product) { assert($product instanceof OrderProduct); - $cartItems['items'] = [ - 'positionId' => $positionId, + $items[] = [ + 'positionId' => $positionId + 1, 'name' => $product->name, 'quantity' => [ 'value' => $product->quantity, - 'measure' => '' + 'measure' => 'шт.' ], 'itemCode' => $product->variant_id ?? $product->product_id, - 'itemPrice' => $product->pricePostTaxes()->float, + 'itemPrice' => $product->pricePostTaxes()->integer, ]; } + $cartItems['items'] = $items; + return $cartItems; } diff --git a/composer.json b/composer.json index 8343ce9..035bc8b 100644 --- a/composer.json +++ b/composer.json @@ -11,5 +11,11 @@ "email": "info@wpstudio.ru" } ], + "repositories": [ + { + "type": "vcs", + "url": "https://github.com/dimti/omnipay-sberbank.git" + } + ], "minimum-stability": "dev" }