اعتباریت مستندات فنی بازگشت به سایت

مستندات اتصال درگاه پرداخت

راهنمای گام‌به‌گام اتصال فروشگاه شما به درگاه پرداخت اعتباریت

مقدمه

درگاه پرداخت اعتباریت به فروشگاه شما اجازه می‌دهد مشتریان خرید خود را به‌صورت اقساطی یا از کیف پول و پرداخت آنلاین تسویه کنند. این درگاه مستقل است اما با قراردادِ استاندارد شتاب‌محور سازگار است، بنابراین اتصال آن مشابه هر درگاه ایرانی دیگری است. افزونهٔ سمت فروشگاه را خودتان بر اساس همین مستندات پیاده‌سازی می‌کنید.

جریان کلی پرداخت
  1. ۱ فروشگاه با فراخوانی «ایجاد پرداخت»، مبلغ سفارش را اعلام می‌کند و یک توکن و آدرس پرداخت دریافت می‌کند.
  2. ۲ کاربر به آدرس پرداخت هدایت می‌شود و در صفحهٔ اعتباریت پرداخت را کامل می‌کند.
  3. ۳ اعتباریت کاربر را به آدرس Callback فروشگاه بازمی‌گرداند و نتیجه را همراه توکن ارسال می‌کند.
  4. ۴ فروشگاه با فراخوانی «تأیید پرداخت»، نتیجه را قطعی و رسید را دریافت می‌کند.

پیش‌نیازها

برای اتصال، به کلیدهای اتصال فروشگاه خود نیاز دارید که در پنل فروشگاه، بخش «کلیدهای اتصال» در دسترس است. این کلیدها محرمانه‌اند و باید فقط در سمت سرور فروشگاه شما نگهداری شوند؛ هرگز آن‌ها را در سمت کاربر (مرورگر) قرار ندهید. همچنین باید در پنل فروشگاه «آدرس وب‌سایت» خود را ثبت کنید؛ این آدرس باید با https (دارای گواهی SSL معتبر) باشد و پس از تأیید نماد اعتماد الکترونیکی توسط اعتباریت، درگاه فعال می‌شود. درگاه فقط روی همان دامنهٔ ثبت‌شده کار می‌کند.

آدرس پایهٔ API
https://shivapay.gisoonline.ir/api/v1/payment

هر دو درخواست API با ارسال api_key و api_secret احراز هویت می‌شوند. تمام مبالغ به «تومان» و به‌صورت عدد صحیح هستند.

گام ۱: ایجاد پرداخت

با این فراخوانی یک سفارش باز می‌شود و توکن پرداخت به‌همراه آدرسی که باید کاربر را به آن هدایت کنید بازگردانده می‌شود. سفارش تا ۱۵ دقیقه معتبر است.

POST https://shivapay.gisoonline.ir/api/v1/payment/request
پارامتر نوع الزامی توضیح
api_key string بله کلید اتصال فروشگاه.
api_secret string بله کلید محرمانهٔ فروشگاه.
amount integer بله مبلغ سفارش به تومان (حداقل ۱۰۰۰).
callback_url string خیر آدرس بازگشت. باید با https و روی همان دامنهٔ وب‌سایت ثبت‌شدهٔ فروشگاه باشد (فقط www به‌عنوان معادل دامنهٔ اصلی پذیرفته می‌شود؛ زیردامنه‌های دیگر مجاز نیستند). اگر ارسال نشود، آدرس وب‌سایت ثبت‌شده در پنل فروشگاه استفاده می‌شود.
order_id string خیر شناسهٔ سفارش در سیستم شما (اختیاری) که در پاسخ‌ها بازگردانده می‌شود.
درخواست نمونه
{
  "api_key": "etb_1a2b3c4d5e6f7g8h",
  "api_secret": "xxxxxxxxxxxxxxxxxxxx",
  "amount": 2500000,
  "callback_url": "https://your-shop.ir/etebarit/callback",
  "order_id": "A-1024"
}
پاسخ نمونه
{
  "success": true,
  "status": 100,
  "token": "8f2a...e7b1",
  "order_id": "ORD-40027153",
  "merchant_order_id": "A-1024",
  "amount": 2500000,
  "expires_at": "2026-07-25T12:00:00+00:00",
  "payment_url": ".../pay/8f2a...e7b1"
}

گام ۲: هدایت کاربر به درگاه

پس از دریافت پاسخ موفق، کاربر را به مقدار payment_url هدایت کنید. کاربر در صفحهٔ اعتباریت هویت خود را با پیامک تأیید کرده و پرداخت را (اقساطی، از کیف پول یا آنلاین) کامل می‌کند.

گام ۳: بازگشت به فروشگاه

پس از پایان پرداخت، کاربر به آدرس Callback شما بازگردانده می‌شود و پارامترهای زیر به‌صورت query string اضافه می‌شوند. توجه کنید که این بازگشت به‌تنهایی سند پرداخت نیست؛ همیشه باید نتیجه را در گام بعد با «تأیید پرداخت» بررسی کنید.

پارامتر توضیح
token توکن پرداخت، همان مقدار گام ۱.
status نتیجهٔ اولیه: OK برای موفق، NOK برای ناموفق.
order_id شناسهٔ سفارش اعتباریت (ORD-xxxx).
merchant_order_id همان order_id که در گام ۱ فرستادید (در صورت ارسال).

گام ۴: تأیید پرداخت

با ارسال توکن، پرداخت را قطعی کنید. نخستین فراخوانی موفق کد ۱۰۰ و فراخوانی‌های تکراری کد ۱۰۱ را با همان reference_id بازمی‌گردانند؛ بنابراین اگر تأیید را دوباره فراخوانی کنید، سفارش دوبار تحویل داده نمی‌شود. اگر amount را بفرستید، باید دقیقاً با مبلغ سفارش برابر باشد.

POST https://shivapay.gisoonline.ir/api/v1/payment/verify
پارامتر نوع الزامی توضیح
api_key string بله کلید اتصال فروشگاه.
api_secret string بله کلید محرمانهٔ فروشگاه.
token string بله توکن پرداخت از گام ۱.
amount integer خیر مبلغ سفارش به تومان (اختیاری). در صورت ارسال، برای اطمینان بررسی می‌شود.
پاسخ نمونه
{
  "success": true,
  "status": 100,
  "order_id": "ORD-40027153",
  "merchant_order_id": "A-1024",
  "amount": 2500000,
  "reference_id": "483920157604",
  "paid_at": "2026-07-25T12:03:00+00:00"
}
فیلدهای رسید
پارامتر توضیح
order_id شناسهٔ سفارش اعتباریت (ORD-xxxx).
merchant_order_id شناسهٔ سفارش در سیستم شما.
amount مبلغ نهایی به تومان.
reference_id کد پیگیری یکتای پرداخت؛ آن را نزد خود ذخیره کنید.
paid_at زمان پرداخت به‌صورت ISO 8601.

کدهای وضعیت

همهٔ پاسخ‌ها با HTTP 200 و یک فیلد status بازمی‌گردند. کدهای مثبت موفقیت و کدهای منفی خطا هستند. فیلد success نیز درست یا نادرست بودن نتیجه را نشان می‌دهد.

کد معنی
100 عملیات با موفقیت انجام شد.
101 این پرداخت پیش‌تر تایید شده است.
-1 پارامترهای ارسالی نامعتبر است.
-2 کلید یا رمز درگاه نامعتبر است.
-3 این فروشگاه فعال نیست.
-4 آدرس بازگشت (callback) تعیین نشده است.
-5 توکن پرداخت یافت نشد.
-6 مبلغ ارسالی با مبلغ سفارش یکسان نیست.
-7 پرداخت هنوز تکمیل نشده است.
-8 پرداخت انجام نشد یا مهلت آن به پایان رسید.
-9 آدرس وب‌سایت فروشگاه هنوز برای اتصال درگاه تأیید نشده است؛ آن را در پنل فروشگاه وارد و منتظر تأیید بمانید.
-10 آدرس بازگشت باید https و روی همان دامنهٔ تأییدشدهٔ فروشگاه باشد.

نکات مهم

  • کلید محرمانه را هرگز در سمت کاربر یا کد قابل‌مشاهده قرار ندهید؛ فقط در سرور نگه دارید.
  • مبالغ همیشه به تومان و عدد صحیح‌اند. هیچ اطلاعاتی دربارهٔ نوع کالا ارسال یا ذخیره نمی‌شود.
  • هر سفارش ۱۵ دقیقه فرصت پرداخت دارد؛ پس از آن توکن منقضی می‌شود.
  • درگاه فقط برای وب‌سایتی فعال می‌شود که آدرس آن در پنل ثبت و توسط اعتباریت (با بررسی نماد اعتماد الکترونیکی) تأیید شده باشد. آدرس بازگشت نیز باید با https و روی همان دامنه باشد؛ در غیر این صورت درخواست با کد ۹- یا ۱۰- رد می‌شود.
  • تحویل کالا یا خدمت را فقط پس از دریافت کد ۱۰۰ یا ۱۰۱ از «تأیید پرداخت» انجام دهید، نه صرفاً با بازگشت Callback.
  • در صورت لو رفتن کلیدها، از پنل فروشگاه آن‌ها را بازتولید کنید؛ کلید قبلی بلافاصله باطل می‌شود.

افزونه‌های آماده

اگر از یکی از سیستم‌های زیر استفاده می‌کنید، به‌جای نوشتن افزونه، می‌توانید افزونهٔ آمادهٔ درگاه اعتباریت را دانلود و نصب کنید.

افزونهٔ ووکامرس (WooCommerce) v1.0.1
WooCommerce WordPress
دانلود افزونه
راهنمای نصب

۱) فایل zip دانلودشده را در وردپرس از «افزونه‌ها ← افزودن ← بارگذاری افزونه» نصب و فعال کنید. ۲) به «ووکامرس ← تنظیمات ← پرداخت‌ها ← اعتباریت» بروید و کلید اتصال و کلید محرمانهٔ فروشگاه را وارد کنید. ۳) واحد پول فروشگاه (تومان/ریال) را تنظیم و درگاه را فعال کنید. توجه: دامنهٔ فروشگاه ووکامرس باید همان آدرس وب‌سایتِ تأییدشده در پنل اعتباریت (با https) باشد.

درایور شتاب‌بیت (shetabit/multipay) v1.0.0
shetabit/multipay Laravel PHP
دانلود افزونه
راهنمای نصب

برای پروژه‌هایی که از پیش از shetabit/multipay (یا shetabit/payment لاراول) استفاده می‌کنند. ۱) فایل zip را باز کنید و کلاس src/Etebarit.php را در پروژه‌تان کپی کنید. ۲) درایور «etebarit» را در config/payment.php (بخش‌های drivers و map) ثبت و کلیدهای اتصال را وارد کنید. ۳) واحد پول (IRR/IRT) را تنظیم کنید؛ در حالت ریال، مبلغ به‌طور خودکار به تومان تبدیل می‌شود. راهنمای کامل در فایل README همراه است.