Open rezathecoder opened 9 months ago
درود در حال حاضر این پکیج به صورت ۱۰۰٪ وب هست و امکان استفاده در برنامه هایی مثل BackgroundService میسر نیست. باید توسعه داده بشه.
خیلی ممنون از پاسخگوییتون خارج از BackgroundService هم مشکل وجود داره چون وقتی با استفاده از TrackingNumber میخوایم invoice رو دریافت کنیم همچنان به پارامترهای ارسالی در درخواست Http مراجعه میکنه درصورتی که باید سراغ دیتابیس بره. فرض بفرمایید یک اکشنی داریم که میخوایم در اون پرداخت های معطل رو از زرین پال استعلام بگیریم (وریفای کنیم) و این اکشن توسط مدیریت سایت کال میشه و نه کاربر پرداخت کننده. در این صورت مقادیر Authority و Status در درخواست Http موجود نیستند چون از طرف زرین پال اکشن کال نشده.
توضیح خطا در هنگام استفاده از متد
_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: نوع برنامه وب