Sina-Soltani / Parbad

A free, open-source, integrated and extensible library which connects your web applications to online payment gateways. Gateways can be added or developed by you.
GNU Lesser General Public License v3.0
371 stars 81 forks source link

خطا در ریکوست وریفای درگاه پارسیان #269

Closed PooriaShariatzadeh closed 2 years ago

PooriaShariatzadeh commented 2 years ago

Bug description (wIthout specifiing the sensitive data) توضیح خطا (بدون ذکر کردن اطلاعات خصوصی درگاه بانکی)

Package name and version نام و نسخه پکیج

Web application type: نوع برنامه وب

سلام وخسته نباشید متسفانه متوجه شدیم که متد انتهایی (وریفای) در درگاه پارسیان 2 بار کال شده و هر دو بار ریکوست موفق برگشته و کلاینت برای یک خرید 10 ملیون تومانی دو بار اعتبار (یعنی 20 ملیون) دریافت کرده با ارتباطی که با تیم فنی تجارت الکترونیک پارسیان داشتیم متوجه شدیم که در حدود 1 ماه قبل تغییری در ریکوست وریفایشون داشتن و در صورتی که مجددا ریکوست وریفای رو کال کنیم در خواست موفق برمیگردونن (در صورتی که قبل از این ریکوست با (ارور قبلا وریفای شده برگشت داده میشده با توجه به اینکه لاجیک وریفای رو شما هندل میکنید باید به روز رسانی اتفاق بیفته و اینکه نمیدونم آیا در درگاه های دیگه هم همینطور هست یا نه و در پایان یک راه حل برای تست این موضوع هم به ما بدهید ممنون میشم

Sina-Soltani commented 2 years ago

درود

آیا قبل از وریفای کردن صورت حساب، وضعیت اون رو در متد Fetch بررسی کردید؟ متد Fetch که در واقع قبل از وریفای استفاده میشه، این وضعیت رو برای شما روشن میکنه

PooriaShariatzadeh commented 2 years ago

بله استفاده میکنم کد مشکلی نداره ما تمام تراکنش هامون رو هم بررسی کردیم تفریبا 1.5ساله بدون مشکل کار میکرده تا همین 1 ماه پیش که تغییری از طرف پی اس پی داده شده واعلام نکردن متاسفانه من با مسول فنی و برنامه نویس ارشدشون هم صحبت کردم تغییر رو قبول دارن اما زیر بار نمیرن که باید داکیومنتشون رو اصلاح بکنن و اطلاع رسانی انجام میدادن و میگن لاجیک شما ایراد دار IPG-Bill-Payment-Services.pdf اگر داکیومنت قدیمیشون رو بررسی کنید در صفحه 15 استتوس 1533 دیگه وجود خارجی نداره و متد کانفرمشون همیشه موفق هست و دیتای مربوط به تراکنش رو بر میگردونه پ.ن : الیته من بلافاصله سویچ کردم روی یک درگاه دیگه با توجه به امکان خوب شما و تصمیم دارم دیگه هیچوقت از پارسیان استفاده نکنم(به دلیل ضعفشون در پذیرش اشتباه در عدم اطلاع رسانی) و به شما هم خبر دادم تا لایبرری خوبتون کوچک ترین ایرادی نداشته باشه بازم ممنون از اینکه انقدر سریع پاسخ میدید و بدون هیچ چشمداشتی این ریپاسیتوری رو به روز میکنید مثل شما تو ایران کم پیدا میشه

PooriaShariatzadeh commented 2 years ago

image (اگر دو با این متد کال بشه هر دو بار نتیجه مثبت هست در صورتی که قبلا اینطور نبوده( بار دوم خطا برگشت داده میشده

Sina-Soltani commented 2 years ago

بله استفاده میکنم کد مشکلی نداره ما تمام تراکنش هامون رو هم بررسی کردیم تفریبا 1.5ساله بدون مشکل کار میکرده تا همین 1 ماه پیش که تغییری از طرف پی اس پی داده شده واعلام نکردن متاسفانه من با مسول فنی و برنامه نویس ارشدشون هم صحبت کردم تغییر رو قبول دارن اما زیر بار نمیرن که باید داکیومنتشون رو اصلاح بکنن و اطلاع رسانی انجام میدادن و میگن لاجیک شما ایراد دار

متاسفانه تیم های طراحی درگاه‌های بانکی در ایران، سطح دانش کافی برای انجام چنین پروژه‌هایی ندارن و نتیجش میشه درگاه‌هایی که هر کدوم مشکلات خاص خودش رو داره. یکی از دلایل درست کردن این پکیج در حدود ۶ سال پیش هم همین بود که راه حلی وجود داشته باشه که تمام مشکلات فعلی این درگاه‌ها رو پوشش بده

اما در رابطه با سوالی که بنده در ابتدا پرسیدم آیا مطمئن هستید که وضعیت متد Fetch رو بررسی میکنید؟

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

نمونه مثال موجود رو لطفا بررسی کنید https://github.com/Sina-Soltani/Parbad.Samples/blob/master/Web/Parbad.Sample.AspNetCore/Controllers/PaymentController.cs#L61 همونطور که در مثال می بینید، وضعیت صورت حسابی که از درگاه بانکی به وب سایت شما میاد، همون ابتدا توسط متد Fetch قابل پیگیری هست که آیا قبلا وریفای شده یا اینکه قبلا بررسی شده یا خیر

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

خواهش میکنم لطف دارید

PooriaShariatzadeh commented 2 years ago

خیر به این شکل چک نمیشد من کد رو اصلاح کردم که invoice.IsAlreadyVerified رو هم بررسی کنه باز هم ممنون از پیگیریتون