نمونه کد .NET
کتابخانه .NET فینوپال برای پروژههای .NET 8 است و با REST به درگاه وصل میشود. مبلغها به ریال و حداقل ۱۰۰۰ ریال هستند. پیش از استفاده، راهنمای اتصال به درگاه را بخوانید.
نصب
در ویژوال استودیو از منوی 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 یعنی روی خریدار است. اگر تأیید با خطای شبکه برگشت، پرداخت تازه نسازید و اول استعلام بگیرید.