# پرس‌و‌جوها (Query)

# مشخصات کاربر Me

در این پرس و جو می توانیم مشخصات کاربری را دریافت کنیم اطلاعاتی بسیاری مانند شماره کاربری زرین پال ZP. شماره ملی و... که در ادامه مثال زده میشود


  • id شماره کاربری (ZP.)

  • referrer_user_id

  • company_rid

  • company_name | نام حقوقی |

  • company_registered_at | تاریخ ثبت

  • email| ایمیل|

  • avatar| تصویر پروفایل|

  • first_name| نام کوچک|

  • last_name| نام خانوادگی|

  • full_name| نام و نام خانوادگی|

  • cell_number| شماره تلفن همراه|

  • notification_preferences| فعال بودن موارد اطلاع رسانی|

  • verifications| مدارک تایید شده|

  • addresses| آدرس|

  • ssn| کد ملی|

  • gender| جنسیت|

  • mail_subscription | عضویت در خبرنامه|

  • level | سطح عضویت|
  • roles | نقش کاربری|
  • verification_step | مراحل تایید کاربر|
  • birthday | تاریخ تولد|
  • personal_link | لینک شخصی|
  • terminals | درگاه ها پرداخت|
  • signature | امضاء|
  • is_suspend | وضعیت توقیف|
  • ws_id | اتصال به سوکت برای دریافت نوتیفیکیشن ها|

در ادامه چند مثال خواهیم زد تا بیشتر با فیلد های این پرس و جو آشنا بشیم

مثال

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

query {
Me {
    id
    email
    avatar
    first_name
    last_name
    full_name
    cell_number
}
}

پاسخ

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


{
  "data": {
    "Me": {
      "id": "23134",
      "email": "alireza.yousefi98@gmail.com",
      "avatar": "https://www.gravatar.com/avatar/5545d8a8b37f41cd0493bc6e94c62910/?s=128&r=g&d=mm",
      "first_name": "علیرضا",
      "last_name": "یوسفی",
      "full_name": "علیرضا یوسفی",
      "cell_number": "09375115259"
    }
  }
}

# تیکت‌ها

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


در تیکت ها با فیلد id شروع می کنیم و جلوتر می رویم

Tickets

  • id شماره تیکت ها
  • offset صرف نظر از تعداد اولیه مد نظر
  • limit محدودیت در نمایش تعداد

در پرس و جو فوق تعیین می کنیم از 5 تیکت اول گذر کند و تعداد1 تیکت را نمایش دهد

query {
Tickets (offset:5, limit:1){
    id
}
}

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

{
  "data": {
    "Tickets": [
      {
        "id": "139710180138"
      }
    ]
  }
}

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

Tickets

  • title عنوان تیکت
  • priority اولویت
  • created_at زمان شروع تیکت
  • updated_at زمان آخرین تغییر
  • department دپارتمان تیکت -- * دارای دو فیلد id و titile (عنوان دپارتمان) هست
    • id شماره دپارتمان
    • titile عنوان دپارتمان
  • second_user کاربر متصل شده * دارای دو فیلد id و name (نام کاربر) هست
    • id شماره کاربر
    • name نام کاربر
  • assigned_userپشتیبان متصل شده - دارای دو فیلد idو name (نام پشتیبان)
    • id شماره کاربری پشتیبان
    • name نام پشتیبان
query {
Tickets (offset:5, limit:1){
    id
    title
priority
  created_at
  updated_at
  department {
    id
    title
  }
  second_user {
    id
    name
  }
  assigned_user {
    id
    name
  }
}
}

پاسخ

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

{
  "data": {
    "Tickets": [
      {
        "id": "139710180138",
        "title": "xzczxvxcvxczvxc",
        "priority": "LOW",
        "created_at": "2019-01-08T11:50:59+03:30",
        "updated_at": "2020-01-20T16:57:34+03:30",
        "department": {
          "id": "6",
          "title": "افزونه ها و فنی"
        },
        "second_user": {
          "id": "4",
          "name": "نیما نورافشان"
        },
        "assigned_user": {
          "id": "664125",
          "name": "محمد سعادتی"
        }
      }
    ]
  }
}

در ادامه با مثالی پیش میریم برای دریافت پیام های ثبت شده در تیکت

Tickets

  • replies جواب های داده شده در تیکت -- دارای 7 فیلد
    • id
    • ticket_id شماره تیکت
    • user اطلاعات کاربر که دارای 3 فیلد هست
      • id شماره کاربری زرین پال ZP
      • name نام پاسخ دهنده
      • avatar تصویر پروفایل
    • content متن پیام ها
    • attachment فایل پیوست شده
    • created_at ساخته شده
    • updated_at بروز شده
query { Tickets (offset:5,limit:1)
  {
    id
  replies{
    id
    ticket_id
    user {
      id
      name
      avatar
    }
    content
    attachment
    created_at
    updated_at
  }
 } 
}

پاسخ

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


{
  "data": {
    "Tickets": [
      {
        "id": "139707150297",
        "replies": [
          {
            "id": "2239",
            "ticket_id": "139707150297",
            "user": {
              "id": "4",
              "name": "نیما نورافشان",
              "avatar": "https://www.gravatar.com/avatar/b0aa44a327b2ea11ba37862ca65418d4/?s=128&r=g&d=mm"
            },
            "content": " تست تیکت تست تست تست تست",
            "attachment": null,
            "created_at": "2018-10-07T09:37:00+03:30",
            "updated_at": null
          },
          {
            "id": "2241",
            "ticket_id": "139707150297",
            "user": {
              "id": "355924",
              "name": "آرزو اشراقی",
              "avatar": "https://www.gravatar.com/avatar/1f54bc8e70ec8f77a5eaca7c5b114009/?s=128&r=g&d=mm"
            },
            "content": "با سلام و احترام\r\nلیالبلتلنتاانتا \r\nبا سپاس\r\nآرزو اشراقی (کارشناس زرین پال)",
            "attachment": null,
            "created_at": "2018-10-07T12:50:05+03:30",
            "updated_at": null
          },
        ]
      }
    ]
  }
}

# کارت‌ها

در پرس و جو برای کارت ها مواردی چون شماره کارت به صورت پن مسک ِ تاریخ انقضا کارت و مواردی از این قبیل را می توانید دریافت کنید


Cards

  • id
  • status وضعیت کارت
  • user_id شماره کاربری زرین پال
  • pan شماره کارت به صورت پن مسک
  • issuing_bank اطلاعات بانک صادر کننده کارت که دارای سه فیلد زیر هست
    • name نام بانک
    • slug نام کوتاه
    • slug_image : تصویر لوگو بانک
  • created_at تاریخ افزودن کارت
  • expired_at تاریخ انقضا کارت
  • updated_at تاریخ بروزرسانی
  • deleted_at تاریخ حذف کارت

مثال

query  {
  
  Cards (offset:1,limit:1){
    id
    status
    user_id
    pan
    issuing_bank {
         name
         slug
         slug_image
    }
    created_at
    expired_at
    updated_at
    deleted_at
  } 
}

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

{
  "data": {
    "Cards": [
      {
        "id": "164",
        "status": "ACTIVE",
        "user_id": "23134",
        "pan": "603799******3883",
        "issuing_bank": {
          "name": "بانک ملی",
          "slug": "Melli",
          "slug_image": "https://cdn.zarinpal.com/panel/v1/assets/images/Melli.png"
        },
        "created_at": "2018-02-13T10:00:31+03:30",
        "expired_at": "2022-04-18",
        "updated_at": "2018-02-13T10:00:33+03:30",
        "deleted_at": null
      }
    ]
  }
}

حساب بانکی

فیلد های مورد استفاده

BankAccounts

# id

# status

# iban

# issuing_bank

# created_at

# updated_at

# expired_at

# deleted_at

query {BankAccounts {
  
  id
  status
  iban
  is_legal
  issuing_bank {
    slug_image
    name
    slug
  }
  expired_at
  created_at
  updated_at
  deleted_at
 } 
}

پاسخ

پاسخ درخواست فوق را در زیر مانند زیر باید باشد

{
  "data": {
    "BankAccounts": [
      {
        "id": "353",
        "status": "ACTIVE",
        "iban": "IR030570026580012681400101",
        "is_legal": false,
        "issuing_bank": {
          "slug_image": "https://cdn.zarinpal.com/panel/v1/assets/images/Pasargad.png",
          "name": "بانک پاسارگاد",
          "slug": "Pasargad"
        },
        "expired_at": null,
        "created_at": "2017-12-30T13:21:43+03:30",
        "updated_at": "2019-12-10T12:39:49+03:30",
        "deleted_at": null
      }
    ]
  }
}

# درگاه‌ها

توسط این فیلد ها می توان اطلاعات کاملی از درگاه را دریافت کرد

# Terminals


# id

شناسه منحصر به فرد درگاه


# status

وضعیت درگاه


# owner_id

شناسه زرین پال دارنده درگاه


# mcc_id

فلان فلان


# preferred_bank_account_id

فلان فلان


# domain

دامنه درگاه


# support_phone

شماره پشتیبانی


# key

مرچنت کد صادر شده


# name

نام سایت


# description

توضیحات سایت


# flag

فلان فلان


لوگوی پذیرنده


# zarin_gate

وضعیت زرین گیت


# psp

حروف اختصار پس اس پی


# status

وضعیت


# merchant_id

کد مرچنت


# terminal_id

ترمینال ایدی


# created_at

تاریخ درخواست


# updated_at

تاریخ بروزرسانی

query { Terminals(offset:1,limit:1)
  {
  id
  status
   owner_id 
    mcc_id
preferred_bank_account_id
    domain
    support_phone
    key
    name
    description
    flag
    logo
zarin_gate {
  psp
  status
  merchant_id
  terminal_id
}  
    created_at
    updated_at
    
  }
}

پاسخ

پاسخ زیر را دریافت خواهید کرد

{
  "data": {
    "Terminals": [
      {
        "id": "238",
        "status": "ACTIVE",
        "owner_id": "23134",
        "mcc_id": "36",
        "preferred_bank_account_id": "353",
        "domain": "golroz.com",
        "support_phone": "09375115259",
        "key": "1344b5d4-0048-11e8-94db-005056a205be",
        "name": "گل رز",
        "description": "سفارش آنلاین گل و هدیه",
        "flag": "NORMAL",
        "logo": "https://logoland.zarinpal.com/95799ddd2e13c953fdffb71a2eb67a55",
        "zarin_gate": [
          {
            "psp": "Pna",
            "status": "Active",
            "merchant_id": "01474133",
            "terminal_id": "01492820"
          },
          {
            "psp": "Asan",
            "status": "InProgressShaparakAsan",
            "merchant_id": null,
            "terminal_id": null
          },
          {
            "psp": "Pep",
            "status": "Active",
            "merchant_id": "4660459",
            "terminal_id": "1848088"
          }
        ],
        "created_at": "2018-01-23T19:16:59+03:30",
        "updated_at": "2020-01-26T13:32:08+03:30"
      }
    ]
  }
}

# زرین لینک

در پرس و جو زرین لینک فیلتر دیگری نیز به غیر از offset و limit و pagination وجود دارد با نام filter که یکی از سه مقدار ALL , ACTIVE و TRASH را دریافت می کند

ZarinLinks

# id

# terminal_id

# title

# amount

# description

# show_receipt

# is_coupon_active

# limit

# required_fields

  • input
  • status
  • placeholder

# successful_redirect_url

# failed_redirect_url

# created_at

# updated_at

# deleted_at

query {ZarinLinks (offset:4 limit:1 filter:ACTIVE) {
  
  id
  terminal_id
  link
  title
  amount
  description
  show_receipt
  is_coupon_active
  limit
  required_fields {
    input
    status
    placeholder
    
  }
  successful_redirect_url
  failed_redirect_url
  created_at
  updated_at
  deleted_at
 } 
}

##سشن

#####Session

id timeline { created_time created_reference canceled_time in_bank_time in_bank_name settled_time verified_time verified_reference reconciled_time reconciled_id } terminal_id reference_id session_tries { id session_id payment_id payer_user { id name avatar } payer_ip init_time verify_time status token rrn card_pan card_info { slug_image slug name } created_at } type description amount fee