multipay icon indicating copy to clipboard operation
multipay copied to clipboard

خطای Trying to access array offset on value of type null هنگام اتصال به زرین پال

Open hamed-bolhasani opened this issue 4 years ago • 12 comments

با سلام.

کد من هنگام اتصال به درگاه بانکی وقتی روی حالت سندباکس هستش بدون مشکل وصل میشه ولی وقتی روی حالت نرمال میذارمش خطای بالا رو نشون میده

از این فایل vendor/shetabit/multipay/src/Drivers/Zarinpal/Strategies/Normal.php:104 و خط throw new PurchaseFailedException($result['errors']['message'], $result['errors']['code'])

 $result = json_decode($response->getBody()->getContents(), true);

        // some error has happened
        if (!empty($result['errors']) || empty($result['data']) || $result['data']['code'] != 100) {
            throw new PurchaseFailedException($result['errors']['message'], $result['errors']['code']);

        }

ما با استفاده از داکر پروژه رو میسازیم

php version: 7.4

RUN apt-get update &&
apt-get install -y libxml2-dev &&
docker-php-ext-install soap

RUN docker-php-ext-install soap

RUN composer install --no-scripts --no-autoloader --prefer-dist --no-dev
--working-dir=/var/www/html

RUN composer du RUN mkdir -p ./bootstrap/cache/ RUN chmod -R 777 ./bootstrap/cache/

RUN composer dump-autoload RUN php artisan cache:clear RUN php artisan config:clear RUN php artisan view:clear RUN php artisan route:clear

اینا رو داخل داکر گذاشتیم

hamed-bolhasani avatar Nov 30 '21 10:11 hamed-bolhasani

رسپانسی که از زرین پال میاد رو میشه چک کنید؟ مثل اینکه زرین پال رسپانس درستی نمیده

khanzadimahdi avatar Nov 30 '21 11:11 khanzadimahdi

لطفا ورژن پکیجی که استفاده میکنید رو نیز ذکر کنید

همچنین بعد از نصب وندور رو پابلیش کنید

khanzadimahdi avatar Nov 30 '21 11:11 khanzadimahdi

درایور زرین پال توی مسیر زیر موجود هست

https://github.com/shetabit/multipay/tree/master/src/Drivers/Zarinpal/Strategies

لطفا رسپانس زرین پال در حالت نرمال رو چک کنید

khanzadimahdi avatar Nov 30 '21 11:11 khanzadimahdi

رسپانسی که از زرین پال میاد رو میشه چک کنید؟ مثل اینکه زرین پال رسپانس درستی نمیده

بله چک کردم مقدارش null هست

hamed-bolhasani avatar Nov 30 '21 11:11 hamed-bolhasani

لطفا ورژن پکیجی که استفاده میکنید رو نیز ذکر کنید

همچنین بعد از نصب وندور رو پابلیش کنید

"shetabit/payment": "^4.0",

RUN php artisan vendor:publish --provider="Shetabit\Payment\Provider\PaymentServiceProvider" رو هم اضافه کردیم به داکر و اجرا میکنه پابلیش رو

hamed-bolhasani avatar Nov 30 '21 11:11 hamed-bolhasani

درایور زرین پال توی مسیر زیر موجود هست

https://github.com/shetabit/multipay/tree/master/src/Drivers/Zarinpal/Strategies

لطفا رسپانس زرین پال در حالت نرمال رو چک کنید

بله دقیقا همین فایلها رو پکیج نصبی ما داره

احساس میکنم زرین پال ایپی‌آیشو آپدیت کرده و پکیج شما هم نیاز به آپدیت داره

hamed-bolhasani avatar Nov 30 '21 11:11 hamed-bolhasani

میتونید کار اپدیت رو انجام بدید و درخواست مرج بزارید؟

khanzadimahdi avatar Nov 30 '21 12:11 khanzadimahdi

میتونید کار اپدیت رو انجام بدید و درخواست مرج بزارید؟

متاسفانه فرصتشو ندارم فعلا

hamed-bolhasani avatar Nov 30 '21 13:11 hamed-bolhasani

من هم بعضی اوقات داخل normal و روی سرور production این ارور میگیرم و بعضی پرداخت هام تایید نمیشوند

[2022-04-26 13:15:52] production.ERROR: Trying to access array offset on value of type null {"userId":111,"exception":"[object] (ErrorException(code: 0): Trying to access array offset on value of type null at /var/www/ghaem/vendor/shetabit/multipay/src/Drivers/Zarinpal/Strategies/Normal.php:169)
[stacktrace]
#0 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(231): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /var/www/ghaem/vendor/shetabit/multipay/src/Drivers/Zarinpal/Strategies/Normal.php(169): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->Illuminate\\Foundation\\Bootstrap\\{closure}()
#2 /var/www/ghaem/vendor/shetabit/multipay/src/Drivers/Zarinpal/Zarinpal.php(98): Shetabit\\Multipay\\Drivers\\Zarinpal\\Strategies\\Normal->verify()
#3 /var/www/ghaem/vendor/shetabit/multipay/src/Payment.php(269): Shetabit\\Multipay\\Drivers\\Zarinpal\\Zarinpal->verify()
#4 /var/www/ghaem/app/Http/Controllers/PaymentController.php(189): Shetabit\\Multipay\\Payment->verify()
#5 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\PaymentController->verify()
#6 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction()
#7 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/Route.php(261): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#8 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\\Routing\\Route->runController()
#9 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Route->run()
#10 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#11 /var/www/ghaem/app/Http/Middleware/Logindate.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#12 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\\Http\\Middleware\\Logindate->handle()
#13 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#15 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#16 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#17 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#19 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#20 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#21 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
#22 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#24 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#25 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#26 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#27 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\\Pipeline\\Pipeline->then()
#28 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\\Routing\\Router->runRouteWithinStack()
#29 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\\Routing\\Router->runRoute()
#30 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\\Routing\\Router->dispatchToRoute()
#31 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch()
#32 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#33 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\HandleCors->handle()
#35 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#37 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#39 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#40 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#42 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#43 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#45 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#46 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#47 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#48 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then()
#49 /var/www/ghaem/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#50 /var/www/ghaem/vendor/laravel/octane/src/ApplicationGateway.php(36): Illuminate\\Foundation\\Http\\Kernel->handle()
#51 /var/www/ghaem/vendor/laravel/octane/src/Worker.php(92): Laravel\\Octane\\ApplicationGateway->handle()
#52 /var/www/ghaem/vendor/laravel/octane/bin/swoole-server(117): Laravel\\Octane\\Worker->handle()
#53 [internal function]: {closure}()
#54 /var/www/ghaem/vendor/laravel/octane/bin/swoole-server(163): Swoole\\Server->start()
#55 {main}
"} 

اطلاعاتی بیشتر از این لاگ نکردم متاسفانه

erfantkerfan avatar May 04 '22 14:05 erfantkerfan

لطفا روی اون قسمت لاگ بزارید ببینید چی میاد که به نال میخوره. ممکنه به خاطر رسپانس زرین پال باشه. بعضی وقتا داره دیتا رو نال میفرسته سمت کلاینت

khanzadimahdi avatar May 04 '22 20:05 khanzadimahdi

سلام وقت بخیر من هم دقیقا همین مشکل دارم از سمت زرین پال ریسپانس هم فرستاده میشه

mohammad1383hz avatar Mar 13 '24 09:03 mohammad1383hz