سرویس تست (Sandbox)
محیط آزمایشی فینوپال برای شبیهسازی کامل جریان پرداخت بدون اتصال به PSP واقعی و بدون برداشت وجه است. پذیرنده میتواند با همان API محیط عملیاتی، درخواست پرداخت بسازد، صفحه درگاه آزمایشی را ببیند و نتیجه موفق یا ناموفق را تست کند.
در حالت Sandbox هیچ مبلغ واقعی از کارت کسر نمیشود. این محیط فقط برای توسعه و تست یکپارچهسازی است.
نحوه فعالسازی
- همان endpointهای درگاه پرداخت فینوپال را صدا بزنید (Request / Redirect / Callback / Verify).
- اگر درگاه در حالت آزمایشی باشد، بهجای بانک واقعی به صفحه Sandbox هدایت میشوید.
URL
https://sandbox.finopal.ir
جریان پرداخت آزمایشی
- ارسال درخواست به POST /api/v1/payment/request با همان پارامترهای محیط واقعی.
- دریافت
authorityو هدایت کاربر به /api/v1/payment/redirect/{authority}. - باز شدن صفحه درگاه آزمایشی (فرم شبیهسازیشده بانک).
- ورود کد امنیتی و رمز دوم (تستی) ، سپس انتخاب نتیجه با دکمههای «پرداخت موفق» یا «پرداخت ناموفق».
- بازگشت به Callback فینوپال و سپس به
callback_urlپذیرنده. - تایید نهایی با POST /api/v1/payment/verify.
نمونه Request
بدنه درخواست با محیط عملیاتی یکسان است:
POST
https://payment.finopal.ir/api/v1/payment/request
JSON
{
"merchant_id": "YOUR_MERCHANT_ID",
"amount": 1000000,
"callback_url": "https://yoursite.com/payment/callback",
"order_id": "ORD-1001",
"description": "تست سندباکس",
"mobile": "09120000000"
}
در پاسخ، مشابه محیط واقعی، فیلدهایی مثل authority و payment_url برمیگردد و کاربر به صفحه Sandbox هدایت میشود.
صفحه درگاه آزمایشی
- مدت اعتبار نشست: ۱۰ دقیقه. بعد از اتمام زمان، صفحه غیرفعال میشود.
- کد امنیتی: فقط عدد ۵ رقمی (قالب #####).
- رمز دوم: الزامی است (۴ تا ۱۲ رقم). دکمه «درخواست رمز پویا» فقط ظاهری است.
- شماره کارت / CVV / تاریخ انقضا در فرم وارد نمیشود (فقط نمایش نمادین).
دکمههای شبیهسازی نتیجه
| دکمه | نتیجه | Status در Callback |
|---|---|---|
| پرداخت موفق | تراکنش موفق ثبت میشود | Status=0 / status=OK |
| پرداخت ناموفق | تراکنش ناموفق ثبت میشود | Status=-1 / status=NOK |
| انصراف | تراکنش لغو میشود | Status=-138 |
Callback و Verify
پس از انتخاب نتیجه در صفحه Sandbox، کاربر به Callback فینوپال برمیگردد. در این حالت پارامتر sandbox=1 ارسال میشود.
پذیرنده مانند محیط واقعی باید Authority و Status را بررسی کند و در صورت موفقیت، متد Verify را فراخوانی کند.
POST
https://sandbox.finopal.ir/api/v1/payment/verify
JSON
{
"merchant_id": "YOUR_MERCHANT_ID",
"authority": "FP...",
"amount": 1000000
}
نکات مهم
- ساختار API سندباکس با محیط عملیاتی یکی است؛ فقط مقصد نهایی بانک شبیهسازی میشود.
- برای تست کامل، هر دو مسیر موفق و ناموفق را قبل از اتصال به محیط واقعی بررسی کنید.
- اگر سرویس Sandbox در دسترس نباشد، ممکن است fallback داخلی بدون نمایش UI استفاده شود.
- مستندات اتصال واقعی را از بخش «راهنمای اتصال» مطالعه کنید.