پرداخت شناسهدار، راهکاری موثر جهت تسهیل وصول مطالبات مالی میباشد که در حقیقت مکمل سایر روشهای پرداختیست که افراد و سازمانها از آن استفاده میکنند. به کمک پرداخت شناسهدار، پذیرندگان زرینپال میتوانند مطالبات مالی خود از مشتریان را بدون محدودیت در مبلغ تراکنش و روش پرداخت دریافت کنند.
برای استفاده از این سرویس، در مرحله اول نیاز به دریافت شناسه درگاه دارید. برای مشاهده شناسه پرداخت خود میتوانید از کوئری زیر استفاده کنید:
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:/invoice/{{data.InvoiceAdd.id}}
مثال
https:/invoice/10010011649004
ارجاع کاربر به صفحه پرداخت بانک برای پرداخت شناسه ساخته شده در این روش نیاز هست ایدی سشن ساخته شده را قرار دهید
https:/pg/StartPay/{{data.InvoiceAdd.sessions.*.payer_info.order_id}}/BMca
مثال
https:/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"
}
}
]
}
]
}
}