custanator / sberbank-ecom-acquiring-client

MIT License
0 stars 0 forks source link

Запрос на статус платежа возвращает ошибку, если указано поле merchantLogin. #1

Open div-abs opened 5 months ago

div-abs commented 5 months ago

Сбер выбрасывает ошибку, если при запросе статуса платежа указать merchantLogin.

Параметр merchantLogin добавляется в финальном методе execute, если при создании объекта параметр был указан.

digkill commented 1 month ago

div-abs Здравствуйте, вы решили данную проблему?

div-abs commented 1 month ago

div-abs Здравствуйте, вы решили данную проблему?

Добрый день, @digkill. Добавили дополнительную проверку в метод отправки запроса в файле src/Client.php:

diff --git a/src/Client.php b/src/Client.php
index ceb7fbd..4745b54 100644
--- a/src/Client.php
+++ b/src/Client.php
@@ -377,7 +377,7 @@ class Client
         $headers['Content-Type'] = 'application/json';
         $data['userName'] = $this->userName;
         $data['password'] = $this->password;
-        if (null !== $this->merchantLogin) {
+        if (null !== $this->merchantLogin && $action !== '/ecomm/gw/partner/api/v1/getOrderStatusExtended.do') {
             $data['merchantLogin'] = $this->merchantLogin;
         }
         $data = \json_encode($data);