Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
rezathecoder opened this issue Nov 15, 2023 · 2 comments
Assignees
Labels
feature New feature or request needs a developer A deveoper is needed to work on this

Comments

@rezathecoder
Copy link

توضیح خطا
در هنگام استفاده از متد _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)

خطا به احتمال زیاد در خط زیر اتفاق میافتد:

var callbackResult = await ZarinPalHelper.CreateCallbackResultAsync(_httpContextAccessor.HttpContext.Request,

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

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

  • Package Name: Parbad
  • Version: 3.9.1
  • Package Name: Parbad.Gateway.ZarinPal
  • Version: 1.4.1

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

  • ASP.NET CORE Web Api
  • .NET 7
@Sina-Soltani
Copy link
Owner

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

@Sina-Soltani Sina-Soltani added feature New feature or request needs a developer A deveoper is needed to work on this labels Nov 15, 2023
@rezathecoder
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request needs a developer A deveoper is needed to work on this
Projects
None yet
Development

No branches or pull requests

2 participants