آموزش‌ها

مستندات API

اتصال درگاه ایزی گیت به وب‌سایت شما

آموزش اتصال درگاه ایزی گیت

قسمت ۱

ثبت‌نام و ساخت حساب ایزی گیت

در این قسمت حساب می‌سازید و اطلاعات کسب‌وکارتان را وارد می‌کنید.

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

  1. 1

    ثبت‌نام کنید

    به صفحه ثبت‌نام ایزی گیت بروید و ایمیل و رمز عبورتان را وارد کنید. پس از تایید ایمیل، وارد داشبورد می‌شوید.

    اطلاعات درگاه (نام فروشگاه، آدرس Callback و…) را تکمیل کنید تا درگاه برای پذیرش پرداخت آماده شود.

در ایزی گیت هیچ احراز هویتی (KYC) انجام نمی‌شود و نیازی به ارسال مدرک یا مدرک هویتی ندارید.

ایزی گیت به تمام کشورها و ملیت‌ها سرویس ارائه می‌دهد.

قسمت ۲

دریافت ارزها و شبکه‌های قابل پذیرش

در این قسمت لیست ارز و شبکه‌هایی را می‌گیرید که برای درگاه سایتتان فعال شده‌اند.

برای پذیرش پرداخت در سایتتان، ابتدا باید بدانید مشتری‌تان می‌تواند با کدام ارز و روی کدام شبکه پرداخت کند.

این لیست را قبلاً در داشبورد، صفحه Gateway، برای همان درگاه انتخاب کرده‌اید. API زیر همان تنظیمات را برمی‌گرداند.

  1. 1

    ApiKey درگاه را از داشبورد بردارید

    وارد داشبورد ایزی گیت شوید و به صفحه Gateway بروید. ApiKey همان درگاهی که می‌خواهید به سایتتان وصل کنید را کپی کنید.

    این ApiKey را محرمانه نگه دارید و ترجیحاً از سرور خودتان صدا بزنید تا در مرورگر مشتری‌تان دیده نشود.

  2. 2

    لیست ارز و شبکه را بگیرید

    یک درخواست GET به آدرس زیر بزنید و ApiKey را به‌جای {apiKey} در انتهای مسیر URL قرار دهید. نیازی به هدر Authorization یا پارامتر ApiKey نیست.

    پاسخ، آرایه‌ای از ارزهاست؛ هر ارز شبکه‌های فعال خودش را در networkDetails دارد. همین‌ها را در صفحه پرداخت سایتتان به مشتری‌تان نشان دهید.

GEThttps://api.ezgate.org/api/PortalWallet/GetPortalCurrenciesByToken/{apiKey}
نمونه Python
import requests

API_KEY = "YOUR_API_KEY"
url = f"https://api.ezgate.org/api/PortalWallet/GetPortalCurrenciesByToken/{API_KEY}"

response = requests.get(url, headers={"accept": "*/*"})
payload = response.json()

if payload.get("statusCode") != 200:
    raise RuntimeError(payload.get("message") or "Could not load currencies")

currencies = payload.get("data") or []
نمونه پاسخ
{
  "statusCode": 200,
  "message": "success",
  "errors": null,
  "data": [
    {
      "currencyId": 3,
      "currencySymbol": "BTC",
      "currencyTitle": "Bitcoin",
      "currencyLogoUrl": "https://chante.app/images2/BTC.png",
      "decimals": 6,
      "hasMemo": false,
      "networkDetails": [
        {
          "id": 16,
          "name": "BTC",
          "symbol": "BTC",
          "networkFee": 0.004
        }
      ]
    },
    {
      "currencyId": 1,
      "currencySymbol": "USDT",
      "currencyTitle": "Tether",
      "currencyLogoUrl": "https://chante.app/images2/USDT.png",
      "decimals": 2,
      "hasMemo": false,
      "networkDetails": [
        {
          "id": 19,
          "name": "BSC (BEP20)",
          "symbol": "BNB",
          "networkFee": 2
        }
      ]
    }
  ],
  "count": 2
}

فیلدهای هر ارز

نامنوعتوضیح
currencyIdnumberشناسه ارز
currencySymbolstringنماد ارز؛ مثلاً USDT
currencyTitlestringنام انگلیسی ارز
currencyLogoUrlstringآدرس لوگوی ارز
decimalsnumberتعداد رقم اعشار مجاز برای مبلغ
hasMemobooleanاگر true باشد شبکه به memo یا تگ نیاز دارد
networkDetailsarrayشبکه‌هایی که این ارز روی آن‌ها برای درگاه شما فعال است

فیلدهای هر شبکه (networkDetails)

نامنوعتوضیح
idnumberشناسه شبکه؛ همان networkId مرحله بعد
namestringنام نمایشی شبکه
symbolstringنماد شبکه؛ مثلاً TRX یا BNB
networkFeenumberکارمزد شبکه

قسمت ۳

ساخت سفارش و هدایت مشتری به پرداخت

در این قسمت سفارش را می‌سازید و مشتری‌تان را به صفحه پرداخت می‌فرستید.

وقتی مشتری‌تان ارز و شبکه را انتخاب کرد، با یک درخواست POST سفارش را در ایزی گیت ایجاد کنید.

ApiKey درگاه را به‌جای {apiKey} در انتهای مسیر URL قرار دهید. نیازی به هدر Authorization یا apiKey در بدنه نیست.

  1. 1

    فیلدهای درخواست را آماده کنید

    amount مبلغ دقیق رمزارزی است که مشتری‌تان باید بپردازد؛ نه مبلغ فیات.

    currencyId و networkId را از پاسخ API مرحله قبل بردارید (currencyId هر ارز و id داخل networkDetails).

    ApiKey درگاه را از داشبورد، صفحه Gateway، کپی کنید و در انتهای آدرس، به‌جای {apiKey} بگذارید.

  2. 2

    refNumber یکتا بسازید

    refNumber شناسه سفارش شما نزد ایزی گیت است و نباید تکراری باشد. اگر یک مقدار را دوباره بفرستید، ساخت سفارش شکست می‌خورد.

    می‌توانید از همان شناسه سفارش سایت خودتان (order id) مستقیماً استفاده کنید؛ نیازی نیست مقدار جداگانه‌ای بسازید. فقط مطمئن شوید برای هر سفارش یکتاست.

  3. 3

    نام دامنه سایت را در هدر Origin بفرستید

    درخواست CreateOrder باید نام دامنه سایت شما را در هدر Origin (و در صورت امکان Referer) ارسال کند؛ بدون این هدر، درخواست پذیرفته نمی‌شود.

    نام دامنه ارسالی باید دقیقاً با دامنه آدرس Callback ثبت‌شده در داشبورد (صفحه Gateway، جزئیات درگاه) یکی باشد. مثلاً اگر Callback شما برابر https://back.yourdomain.ir/app/v1/crypto/verify-payment است، مقدار Origin باید https://back.yourdomain.ir باشد؛ در غیر این صورت با خطا مواجه می‌شوید.

    یعنی همان Origin ای که برای Callback ثبت کرده‌اید را باید در درخواست ساخت سفارش هم بفرستید؛ این هدر را در سرور خودتان ست کنید، نه در مرورگر مشتری.

  4. 4

    مشتری‌تان را به paymentUrl بفرستید

    در پاسخ موفق، فیلد مهم paymentUrl است. کافی است مشتری‌تان را به همین لینک هدایت کنید؛ صفحه پرداخت ایزی گیت بقیه کار را انجام می‌دهد.

    پس از پرداخت یا انقضا، وضعیت سفارش با callback به همان آدرسی اعلام می‌شود که در داشبورد، صفحه Gateway، بخش جزئیات تنظیم کرده‌اید.

POSThttps://api.ezgate.org/api/Order/CreateOrder/{apiKey}

تولید refNumber یکتا

ساده‌ترین راه این است که refNumber را همان شناسه سفارش سایت خودتان بگذارید تا بعداً با callback تطبیقش بدهید. اگر چنین شناسه‌ای ندارید، از UUID استفاده کنید.

نمونه Python
import uuid

# Option 1: reuse your own order id from your site
ref_number = "YOUR_ORDER_ID"
# e.g. "ORD-1842" or "10000231"

# Option 2: generate a random unique value (UUID hex)
ref_number = uuid.uuid4().hex
# e.g. "3f1a9c0e8b4d47c2a6f5d1e0c9b8a7d6"

# Never send the same refNumber twice to ezGate

نمونه کد ساخت سفارش

نمونه Python
import uuid
import requests

API_KEY = "YOUR_API_KEY"
url = f"https://api.ezgate.org/api/Order/CreateOrder/{API_KEY}"

ref_number = uuid.uuid4().hex

# Origin must match the domain of your registered callback URL
# e.g. callback https://back.yourdomain.ir/app/v1/crypto/verify-payment
#      Origin   https://back.yourdomain.ir
ORIGIN = "https://back.yourdomain.ir"

response = requests.post(
    url,
    headers={
        "accept": "*/*",
        "Content-Type": "application/json",
        "Origin": ORIGIN,
        "Referer": f"{ORIGIN}/",
    },
    json={
        "amount": 1,
        "refNumber": ref_number,
        "currencyId": 1,
        "networkId": 19,
    },
)
payload = response.json()

if payload.get("statusCode") != 200:
    raise RuntimeError(payload.get("message") or "Could not create order")

order = payload["data"]
payment_url = order["paymentUrl"]
# Redirect your customer to payment_url
نمونه پاسخ
{
  "statusCode": 200,
  "message": "success",
  "errors": null,
  "data": {
    "orderId": "55ebaf2b-04b4-415e-8b45-797c913c9a45",
    "refNumber": "test",
    "currency": {
      "symbol": "USDT",
      "persianName": "",
      "name": "Tether",
      "id": 1
    },
    "walletAddress": "0x4584b610A34c9898d52d4E571f8708740993fE1C",
    "paymentUrl": "https://ezgate.org/pay/55ebaf2b-04b4-415e-8b45-797c913c9a45",
    "expiresAt": "2026-08-27T15:36:13.89"
  },
  "count": 1
}

بدنه درخواست

نامنوعتوضیح
amountnumberمبلغ دقیق رمزارز که مشتری‌تان باید پرداخت کند
refNumberstringشناسه یکتای سفارش؛ نباید تکراری باشد
currencyIdnumberاز API مرحله قبل؛ فیلد currencyId
networkIdnumberاز API مرحله قبل؛ فیلد id داخل networkDetails

فیلدهای data در پاسخ

نامنوعتوضیح
orderIdstringشناسه سفارش در ایزی گیت
refNumberstringهمان مقداری که ارسال کردید
currencyobjectاطلاعات ارز سفارش
walletAddressstringآدرس ولت اختصاصی این سفارش
paymentUrlstringلینک صفحه پرداخت؛ مشتری‌تان را به اینجا هدایت کنید
expiresAtstringزمان انقضای سفارش

نرخ تبدیل به هر رمزارز را خود شما محاسبه و تعیین می‌کنید؛ ایزی گیت صرفاً مقدار کریپتویی که اعلام کرده‌اید را از مشتری دریافت می‌کند.

ApiKey درگاه را به‌جای {apiKey} در انتهای مسیر URL بگذارید؛ هدر Authorization یا apiKey در بدنه دیگر لازم نیست.

در تمام درخواست‌ها — از جمله CreateOrder — نام دامنه سایت را در هدر Origin (یا Referer) بفرستید و حتماً دقت کنید با دامنه آدرس Callback ثبت‌شده یکی باشد. مثال: Callback برابر https://back.yourdomain.ir/app/v1/crypto/verify-payment پس Origin برابر https://back.yourdomain.ir است. اگر Origin با دامنه Callback فرق داشته باشد، درخواست خطا می‌خورد.

نتیجه پرداخت با callback به URLای می‌رسد که در جزئیات درگاه (صفحه Gateway) ثبت کرده‌اید. نیازی نیست بعد از هدایت مشتری‌تان منتظر بمانید؛ callback وضعیت را به سرور شما اعلام می‌کند.

امنیت درخواست: ایزی گیت دامنه مبدأ درخواست را با دامنه آدرس Callback درگاه شما مقایسه می‌کند. اگر هدر Origin یا Referer بفرستید، دامنه آن باید با دامنه Callback یکی باشد؛ در غیر این صورت خطای «Site origin does not match the site callback» دریافت می‌کنید. درخواست‌های سرور-به-سرور که Origin/Referer نمی‌فرستند، بدون این بررسی پردازش می‌شوند.

قسمت ۴

دریافت نتیجه پرداخت با Callback

در این قسمت با پترن آدرس Callback آشنا می‌شوید؛ همان آدرسی که ایزی گیت نتیجه پرداخت را به آن اعلام می‌کند.

پس از آنکه مشتری‌تان پرداخت را انجام داد یا سفارش منقضی شد، ایزی گیت نتیجه را با یک درخواست GET به آدرس Callback شما می‌فرستد.

این آدرس همان است که در داشبورد، صفحه Gateway، در بخش جزئیات درگاه برای همان درگاه ثبت کرده‌اید.

  1. 1

    آدرس Callback را در داشبورد تنظیم کنید

    وارد داشبورد ایزی گیت شوید، به صفحه Gateway بروید و در جزئیات درگاه، آدرس Callback خودتان را ثبت کنید. این آدرس باید از اینترنت قابل دسترسی باشد.

    اگر آدرس Callback تنظیم نکرده باشید، ایزی گیت جایی برای اعلام نتیجه پرداخت ندارد.

  2. 2

    پترن آدرس Callback

    ایزی گیت یک درخواست GET به آدرسی که ثبت کرده‌اید می‌فرستد و نتیجه را در پارامترهای زیر قرار می‌دهد. به‌جای {callbackUrl} دقیقاً همان آدرس Callback خودتان را بگذارید؛ یعنی آدرسی که در داشبورد تنظیم کرده‌اید.

  3. 3

    مقادیر status

    پارامتر status نتیجه پرداخت را نشان می‌دهد: Complete یعنی پرداخت کامل شده، WaitForCharge یعنی پرداخت ثبت شده و در انتظار تایید شبکه است، Pending یعنی سفارش هنوز در انتظار پرداخت است و Cancel یعنی پرداخت لغو شده است.

    با مقدار Complete سفارش مشتری را در سامانه خودتان نهایی کنید.

  4. 4

    دامنه Callback را در هدر Origin بفرستید

    نام دامنه آدرس Callback ثبت‌شده باید در هدر Origin (یا Referer) درخواست‌های شما — از جمله ساخت سفارش — ارسال شود و با دامنه همان Callback دقیقاً یکسان باشد.

    مثلاً اگر Callback شما برابر https://back.yourdomain.ir/app/v1/crypto/verify-payment است، Origin باید https://back.yourdomain.ir باشد؛ در غیر این صورت درخواست خطا می‌خورد.

پترن آدرس Callback

همان آدرسی که در داشبورد برای درگاه‌تان ثبت کرده‌اید را به‌جای {callbackUrl} بگذارید.

پترن
{callbackUrl}?refNumber={refNumber}&status={status}&orderId={orderId}

# به جای {callbackUrl} همان آدرس Callback را بگذارید
# که در داشبورد، صفحه Gateway، بخش جزئیات درگاه ثبت کرده‌اید.
# مقدار status یکی از این‌هاست:
# Cancel | Complete | WaitForCharge | Pending

پارامترهای Callback

نامنوعتوضیح
refNumberstringهمان refNumber که هنگام ساخت سفارش ارسال کردید
statusstringنتیجه پرداخت؛ یکی از Cancel، Complete، WaitForCharge، Pending
orderIdstringشناسه سفارش در ایزی گیت

مقادیر status

نامنوعتوضیح
Completestringپرداخت با موفقیت انجام شد
WaitForChargestringپرداخت ثبت شده و در انتظار تایید شبکه است
Pendingstringسفارش در انتظار پرداخت مشتری است
Cancelstringپرداخت لغو شد

نام دامنه سایتی که در Callback ثبت کرده‌اید باید در هدر Origin (یا Referer) درخواست‌ها بیاید و با دامنه Callback یکی باشد؛ مثلاً برای Callback برابر https://back.yourdomain.ir/app/v1/crypto/verify-payment باید Origin برابر https://back.yourdomain.ir ارسال شود و الا خطا می‌خورد.

قسمت ۵

استعلام وضعیت سفارش

در این قسمت علاوه بر Callback، وضعیت هر سفارش را مستقیم از ایزی گیت استعلام می‌کنید.

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

کافی است orderId سفارش را که از پاسخ CreateOrder گرفته‌اید در پارامترهای URL زیر بفرستید.

  1. 1

    درخواست استعلام را بفرستید

    یک درخواست GET به آدرس زیر بزنید و orderId سفارش را به‌جای {orderId} بگذارید.

    پارامترهای scan، expire و cancel رفتار استعلام را کنترل می‌کنند؛ برای یک استعلام ساده هر سه را false بگذارید.

  2. 2

    وضعیت را از پاسخ بخوانید

    در پاسخ، فیلد status وضعیت سفارش را نشان می‌دهد و می‌تواند Complete، WaitForCharge، Pending یا Cancel باشد.

    مقدار amount مبلغ سفارش و depositedAmount مبلغ واریزشده توسط مشتری است.

GEThttps://api.ezgate.org/api/Order/GetPaymentInvoice?orderId={orderId}&scan=false&expire=false&cancel=false

نمونه کد استعلام وضعیت سفارش

نمونه Python
import requests

url = "https://api.ezgate.org/api/Order/GetPaymentInvoice"

params = {
    "orderId": "YOUR_ORDER_ID",
    "scan": "false",
    "expire": "false",
    "cancel": "false",
}

response = requests.get(url, params=params, headers={"accept": "*/*"})
payload = response.json()

if payload.get("statusCode") != 200:
    raise RuntimeError(payload.get("message") or "Could not get order status")

order = payload["data"]
# order["status"] is one of: Complete | WaitForCharge | Pending | Cancel
نمونه پاسخ
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "errors": null,
  "data": {
    "orderId": "11111111-2222-3333-4444-555555555555",
    "refNumber": "ORD-1001",
    "amount": 25.5,
    "ezgateAmount": 0,
    "depositedAmount": 25.5,
    "currencySymbol": "USDT",
    "currencyLogoUrl": "https://chante.app/images2/USDT.png",
    "networkName": "BSC (BEP20)",
    "networkSymbol": "BNB",
    "networkLogoUrl": null,
    "walletAddress": "0x0000000000000000000000000000000000000000",
    "status": "Complete",
    "createDate": "2026-01-01T10:00:00.0000000",
    "expiresAt": "2026-01-01T10:15:00.0000000",
    "expiresAtUnix": 1767262500,
    "timeoutMinutes": 15,
    "hasCallback": true,
    "redirectUrl": "https://example.com/callback?refNumber=ORD-1001&status=Complete&orderId=11111111-2222-3333-4444-555555555555",
    "timeoutRedirectUrl": "https://example.com/callback?refNumber=ORD-1001&status=Complete&orderId=11111111-2222-3333-4444-555555555555",
    "portalTitle": "My Store",
    "portalLogoUrl": "https://example.com/portal-logo.png"
  },
  "count": 1
}

پارامترهای درخواست

نامنوعتوضیح
orderIdstringشناسه سفارش در ایزی گیت؛ از پاسخ CreateOrder
scanbooleanکنترل رفتار استعلام
expirebooleanکنترل رفتار استعلام
cancelbooleanکنترل رفتار استعلام

فیلدهای data در پاسخ

نامنوعتوضیح
orderIdstringشناسه سفارش در ایزی گیت
refNumberstringشناسه سفارش شما
amountnumberمبلغ سفارش
depositedAmountnumberمبلغ واریزشده توسط مشتری
currencySymbolstringنماد ارز سفارش
networkNamestringنام شبکه پرداخت
walletAddressstringآدرس ولت سفارش
statusstringوضعیت سفارش؛ یکی از Complete، WaitForCharge، Pending، Cancel
expiresAtstringزمان انقضای سفارش
hasCallbackbooleanآیا برای این درگاه Callback تنظیم شده است
redirectUrlstringآدرس بازگشت پس از تغییر وضعیت
portalTitlestringعنوان درگاه

این API جایگزین Callback نیست؛ Callback نتیجه پرداخت را به‌صورت خودکار اعلام می‌کند و این درخواست برای استعلام لحظه‌ای وضعیت سفارش است.

آموزش نصب افزونه ووکامرس

افزونه ووکامرس

نصب و راه‌اندازی افزونه ووکامرس

با افزونه رسمی ووکامرس ایزی گیت، بدون کدنویسی درگاه پرداخت رمزارزی را به فروشگاه خود اضافه کنید.

اگر فروشگاه شما با ووکامرس ساخته شده است، ساده‌ترین راه پذیرش پرداخت رمزارزی استفاده از افزونه رسمی ایزی گیت است.

در این قسمت فایل افزونه را از همین صفحه دانلود می‌کنید، از ایزی گیت API Key می‌سازید و درگاه را در ووکامرس فعال می‌کنید.

دانلود افزونه ووکامرس

فایل افزونه را از همین صفحه دانلود کنید. نسخه متناسب با زبان فروشگاه خود را انتخاب کنید؛ هر دو نسخه از یک درگاه و یک API Key استفاده می‌کنند.

  1. 1

    افزونه را نصب و فعال کنید

    فایل افزونه را از همین صفحه دانلود کنید. سپس در پیشخوان وردپرس به مسیر افزونه‌ها > افزودن > بارگذاری افزونه بروید، فایل zip را انتخاب کنید و پس از نصب، افزونه را فعال کنید.

  2. 2

    از ایزی گیت API Key بگیرید

    به وب‌سایت ایزی گیت (ezgate.org) مراجعه کرده و در کمتر از یک دقیقه ثبت‌نام کنید.

    وارد پنل کاربری خود شوید و یک API Key (کلید دسترسی) جدید بسازید و آن را کپی کنید. این کلید را محرمانه نگه دارید.

  3. 3

    تنظیمات پرداخت ووکامرس را باز کنید

    در پیشخوان وردپرس به مسیر ووکامرس > پیکربندی > پرداخت‌ها بروید. درگاه پرداخت ایزی گیت را پیدا کرده و روی «مدیریت» کلیک کنید.

  4. 4

    اتصال و شروع فروش

    در صفحه باز شده، API Key دریافتی از ایزی گیت را در کادر مربوطه جای‌گذاری کنید.

    گزینه فعال‌سازی درگاه را روشن کنید و تنظیمات را ذخیره کنید. از این پس مشتریان شما می‌توانند با رمزارز پرداخت کنند.

برای ساخت API Key و مدیریت درگاه، وارد پنل کاربری ایزی گیت در ezgate.org شوید.

پس از هر پرداخت، افزونه وضعیت سفارش را در ووکامرس به‌صورت خودکار به‌روزرسانی می‌کند؛ نیازی به تنظیم دستی Callback ندارید.