نمونه کد .NET

کتابخانه .NET فینوپال برای پروژه‌های .NET 8 است و با REST به درگاه وصل می‌شود. مبلغ‌ها به ریال و حداقل ۱۰۰۰ ریال هستند. پیش از استفاده، راهنمای اتصال به درگاه را بخوانید.

نسخه
v1.0.0
بسته NuGet
FinoPal
توسعه‌دهنده
فینوپال

نصب

در ویژوال استودیو از منوی Tools گزینه NuGet Package Manager و سپس Manage NuGet Packages for Solution را باز کنید و FinoPal را جستجو کنید. از خط فرمان هم همین بسته نصب می‌شود.

dotnet add package FinoPal

معادل آن در فایل پروژه:

<PackageReference Include="FinoPal" Version="1.0.0" />

بسته هنوز روی nuget.org فهرست نشده است. تا زمان انتشار، پروژه FinoPal.csproj را از مخزن گیت‌هاب به سولوشن اضافه کنید.

درخواست پرداخت

مرچنت‌کد را از پنل کاربری بردارید. OrderId و توضیحات الزامی‌اند. توضیحات حداکثر ۲۵۵ کاراکتر است. خریدار را به PaymentUrl بفرستید. میزبان واقعی https://payment.finopal.ir و سندباکس https://sandbox.finopal.ir است.

using FinoPal;

using var finopal = new FinoPalClient("fino-xxxx-xxxx-xxxx-xxxx", sandbox: false);

var created = await finopal.RequestAsync(new PaymentRequest
{
    Amount = 10000,
    Description = "سفارش ۱۲۳۴۵",
    CallbackUrl = "https://shop.example/callback",
    OrderId = "ORD-12345",
});

تأیید پرداخت

بازگشت درگاه Authority و Status دارد. فقط وقتی Status=OK است تأیید کنید. مبلغ باید همان مبلغ درخواست باشد. کد ۱۰۰ تازه تأییدشده و کد ۱۰۱ قبلاً تأییدشده است.

if (FinoPalClient.ShouldVerify(status))
{
    var verified = await finopal.VerifyAsync(authority, amount);
}

استعلام، ریورس و کارمزد

var inquiry = await finopal.InquireAsync(authority);
await finopal.ReverseAsync(authority);
var fee = await finopal.CalculateFeeAsync(1000000);

FeeType برابر Merchant یعنی کارمزد روی پذیرنده و Payer یعنی روی خریدار است. اگر تأیید با خطای شبکه برگشت، پرداخت تازه نسازید و اول استعلام بگیرید.