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
360 stars 80 forks source link

خطا در دریافت invoice با استفاده از Tracking Number #378

Open rezathecoder opened 9 months ago

rezathecoder commented 9 months ago

توضیح خطا در هنگام استفاده از متد _onlinePayment.FetchAsync(tackingNumber) درگاه زرین پال خطای null reference دریافت میشود.

System.NullReferenceException: Object reference not set to an instance of an object. at Parbad.Gateway.ZarinPal.ZarinPalGateway.FetchAsync(InvoiceContext context, CancellationToken cancellationToken) at Parbad.Internal.DefaultOnlinePayment.FetchAsync(Payment payment, CancellationToken cancellationToken)

خطا به احتمال زیاد در خط زیر اتفاق میافتد: https://github.com/Sina-Soltani/Parbad/blob/7feb4281fa26d1c8c3fc0305d8fc9f442e08d40d/src/Parbad.Gateway/ZarinPal/src/ZarinPalGateway.cs#L83

در این خط HttpContext نال هست چون من داخل Background Service دارم از این متد استفاده میکنم تا بتونم پرداخت های ناقص رو با زرین پال وریفای کنم. اما به نظر میرسه حتی اگر HttpContext هم نال نباشه این مسیر اشتباه هست چون اطلاعات وریفای از جمله Authority باید از دیتابیس خودمون برداشته بشه به جای خواندن از ریکوئست.

نام و نسخه پکیج

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

Sina-Soltani commented 9 months ago

درود در حال حاضر این پکیج به صورت ۱۰۰٪ وب هست و امکان استفاده در برنامه هایی مثل BackgroundService میسر نیست. باید توسعه داده بشه.

rezathecoder commented 9 months ago

خیلی ممنون از پاسخگوییتون خارج از BackgroundService هم مشکل وجود داره چون وقتی با استفاده از TrackingNumber میخوایم invoice رو دریافت کنیم همچنان به پارامترهای ارسالی در درخواست Http مراجعه میکنه درصورتی که باید سراغ دیتابیس بره. فرض بفرمایید یک اکشنی داریم که میخوایم در اون پرداخت های معطل رو از زرین پال استعلام بگیریم (وریفای کنیم) و این اکشن توسط مدیریت سایت کال میشه و نه کاربر پرداخت کننده. در این صورت مقادیر Authority و Status در درخواست Http موجود نیستند چون از طرف زرین پال اکشن کال نشده.