نمونه کد سی‌شارپ

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

نسخه
v1.0.0
پلتفرم
.NET 6+
توسعه‌دهنده
فینوپال

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

مرچنت‌کد را از پنل کاربری بردارید. 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 یعنی روی خریدار است. اگر تأیید با خطای شبکه برگشت، پرداخت تازه نسازید و اول استعلام بگیرید.