# پرداخت شناسه‌دار

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

کالکشن پست من (opens new window)

# شناسه درگاه (ترمینال آیدی)

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

query terminals {
  Terminals {
    id
    domain
  }
}

در پاسخ به این درخواست، پاسخی به این شکل دریافت می‌شود:

{
  "data": {
    "Terminals": [
      {
        "id": "1915487",
        "domain": "example.ir"
      },
      {
        "id": "191548856",
        "domain": "test.com"
      },
      {
        "id": "19154894",
        "domain": "test.example"
      }
    ]
  }
}

# ساخت پرداخت شناسه دار

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

  • terminal_id شناسه درگاه (ترمینال آیدی) که این سرویس برای آن فعال هست (اجباری)

  • amount مبلغ قابل پرداخت به ریال(اجباری)

  • fee_type کارمزد تراکنش که باید دارای یکی از مقادیر زیر باشد (اجباری)

    • MERCHANT کارمزد تراکنش از پذیرنده کسر می‌شود

    • PAYER کارمزد تراکنش از خریدار کسر میشود

  • description توضیحات تراکنش (اجباری)

  • note یادداشت برای تراکنش

  • callback_url آدرس بازگشت

  • payer_name نام پرداخت کننده(اجباری)

  • payer_mobile شماره همراه پرداخت کننده(اجباری)

  • payer_email ایمیل پرداخت کننده

  • notify_type ارسال اطلاع رسانی به پرداخت کننده از طریق ایمیل و یا پیامک(اجباری)

    • MOBILE اطلاع رسانی از طریق پیامک

    • EMAIL اطلاع رسانی از طریق ایمیل

    • MOBILE_EMAIL اطلاع رسانی با هر دو مورد


mutation InvoiceAdd($terminal_id: ID!, $amount: BigInteger!, $fee_type: TerminalFeeTypeEnum,
  $description: String!, $note: String, $callback_url: String, $payer_name: String!,
  $payer_mobile: String!, $payer_email: String, $notify_type: NotifyTypeEnum) 
  {
  InvoiceAdd(terminal_id: $terminal_id, amount: $amount, fee_type: $fee_type,
    description: $description, note: $note, callback_url: $callback_url, 
    payer_name: $payer_name, payer_mobile: $payer_mobile, payer_email: $payer_email,
    notify_type: $notify_type) 
    {
    id
    status
    sessions {
      id
      amount
      status
      payer_info {
        order_id
      }
    }
    amount
    fee
  }
}

Query Variables

{
  "terminal_id":"1915487",
  "amount":11000,
  "fee_type":"PAYER",
  "description":"test InvoiceAdd",
  "note":"",
  "callback_url":"https://example.com/callback",
  "payer_name":"علی علیپور",
  "payer_mobile":"09123456789",
  "payer_email":"info@test.com",
  "notify_type":"MOBILE"
}

در پاسخ به این درخواست، پاسخی به این شکل دریافت می‌شود:


{
  "data": {
    "InvoiceAdd": {
      "id": "10010011649004",
      "status": "PENDING",
      "sessions": [
        {
          "id": "346781920",
          "amount": 11000,
          "status": "INBANK",
          "payer_info": {
            "order_id": "1110154"
          }
        }
      ],
      "amount": 11000,
      "fee": 1000
    }
  }
}

# ارسال به درگاه

پس از ایجاد شناسه پرداخت با استفاده از یکی از دو روش زیر میتوانید کاربر را به صفحه پرداخت ارجاع کنید

فرستادن کاربر به صفحه واسط زرین پال - نمایش اطلاعات شناسه قابل پرداخت

ایدی شناسه پرداخت ساخته شده را در انتهای لینک زیر قرار میدهیم

https://zarinp.al/invoice/{{data.InvoiceAdd.id}}

مثال

https://zarinp.al/invoice/10010011649004

ارجاع کاربر به صفحه پرداخت بانک برای پرداخت شناسه ساخته شده در این روش نیاز هست ایدی سشن ساخته شده را قرار دهید

https://www.zarinpal.com/pg/StartPay/{{data.InvoiceAdd.sessions.*.payer_info.order_id}}/BMca

مثال

https://www.zarinpal.com/pg/StartPay/346781920/BMca

# وضعیت شناسه ها

برای بررسی وضعیت شناسه های ساخته شده از کوئری زیر استفاده میکنیم

  • terminal_id ایدی ترمینالی که این قابلیت برای آن فعال هست(اجباری)

  • id در صورت نیاز به بررسی یک شناسه پرداخت ایدی آن را قرار میدهیم

query invoice($terminal_id: ID, !$id: ID) {
  Invoice(terminal_id: $terminal_id, id:$id) {
    id
    description
    status
    sessions {
      id
      status
      amount
      payer_info {
        order_id
      }
    }
  }
}

Query Variables

{
  "terminal_id":"1915487",
  "id":""
}

در پاسخ به این درخواست، اگر یک ایدی خاص را وارد نکرده باشیم پاسخی به این شکل دریافت می‌شود:


{
  "data": {
    "Invoice": [
      {
        "id": "10010011749009",
        "description": "تست",
        "status": "PENDING",
        "sessions": [
          {
            "id": "346797285",
            "status": "INBANK",
            "amount": 16000,
            "payer_info": {
              "order_id": "1610127"
            }
          }
        ]
      },
      {
        "id": "10010011449005",
        "description": "تست",
        "status": "PENDING",
        "sessions": [
          {
            "id": "346780653",
            "status": "INBANK",
            "amount": 11000,
            "payer_info": {
              "order_id": "1110155"
            }
          }
        ]
      },
      {
        "id": "10010011149001",
        "description": "test InvoiceAdd",
        "status": "PENDING",
        "sessions": [
          {
            "id": "346755053",
            "status": "INBANK",
            "amount": 11000,
            "payer_info": {
              "order_id": "1110151"
            }
          }
        ]
      }
    ]
  }
}