در صورتی که کسبوکار شما بصورتی است که پذیرنده شما باید برای دریافت پول ابتدا ضمانت انجام کاری را بدهد، این سرویس به شما کمک میکند تا پول را بصورت مسدود شده ثبت کنید تا کاربر نتواند تسویه کند و پس از انجام تعهد خود از طریق فراخوانی متد رفع مسدودی پول را از حالت مسدود در آورده و به کاربر اجازه تسویه بدهید.
فرآیند پرداخت بر روی درگاههای اینترنتی 4 مرحله دارد:
1. ساخت پرداخت: مشخصات پرداختی که می خواهد انجام شود را مانند مبلغ پرداخت و `redirectUrl` که آدرسی از سایت شماست که کاربر پس از پرداخت باید به آن هدایت شود را مشخص می کنید و در قبال آن یک `code` دریافت می کنید
2. هدایت به درگاه: کاربر را به همراه کدی که در مرحله قبلی دریافت شده است به آدرس درگاه `redirect` میکنید
3. برگشت از درگاه بانکی تکمیل فرایند پرداخت: پس از اینکه پرداخت توسط کاربر انجام شد، کاربر را به همراه یک `refid` که کد تراکنش است به آدرس `redirectUrl` شما ارسال می کنیم و شما باید از طرف سرور خودتان آن شماره پرداخت را تایید کنید
4. تایید پرداخت: در این مرحله باید `refid` را به همراه مبلغ تراکنش به متد تایید پرداخت ارسال کرده و فرایند پرداخت را نهایی نمایید.
برای انجام یک پرداخت کامل نیاز است حتما هر 4 مرحله انجام شود. در صورتی که مرحله چهارم یعنی تایید پرداخت تا ۱۵ دقیقه پس از پرداخت مشتری انجام نشود پول به حساب آنها برگشت داده میشود.
ذخیره شناسه لاگ پیپینگ برای پشتیبانی بهتر
در هر درخواست REST که به پیپینگ ارسال میکنید در پاسخ هر کدام هدری با نام X-PayPingRequest-ID وجود دارد که در صورت ذخیره کردن این شناسه در دیتابیس خود میتوانید در صورت وجود مشکل با دادن این شناسه به پشتیبانی فنی بهتر کمک کنید. نمونه آن در عکس زیر در POSTMAN نشان داده شده است.

پرداخت مسدود شده
به کمک این متد میتوانید برای پرداخت به چند نفر، کد پرداخت تولید کنید. این یک پرداخت مسدود شده میباشد و امکان جابجایی آن تا فراخوانی متد UnBlockMoney امکانپذیر نمیباشد.
برای ساخت یک پرداخت مسدود شده میتوانید از فرآیند زیر استفاده کنید:
1. ساخت پرداخت مسدود شده
برای ساخت پرداخت میبایست از متد `POST /v2/pay/BlockMoney` استفاده کنید.
}
,"payerName": "string"
] : "pairs"
}
,amount": 0"
,"name": "string"
,"userIdentity": "string"
,"description": "string"
{
,[
,"returnUrl": "string"
,"clientRefId": "string"
{

در پاسخ این متد `code` را دریافت میکنید.
{
"code": "xxxx"
}
نکته بسیار مهم: جهت جلوگیری از پرداخت ناموفق، حتما میبایست سایت شما بر روی بستر SSL باشد. در غیراز اینصورت پس از کلیک بر روی گزینه “تکمیل فرآیند”، خطای امنیتی بر روی مرورگر ظاهر میشود و تراکنش ناموفق خواهد شد. بنابراین باید حتما آدرس بازگشت سایت شما با پروتکل https همراه باشد.
2. هدایت کاربر به درگاه
کدی در مرحله قبل دریافت کردهاید را بصورت زیر در url اضافه کنید و کاربر را به آدرس زیر `Redirect` کنید
https://api.payping.ir/v2/pay/gotoipg/{code}
3. برگشت از درگاه بانکی تکمیل فرایند پرداخت
پس از پرداخت، اطلاعات پرداخت به آدرس `returnUrl` که در مرحله اول ساخت پرداخت مشخص شده است در بدنه درخواست بصورت زیر فرستاده میشود:
'curl --location --request POST 'returnUrl
'header 'Content-Type: application/x-www-form-urlencoded--
'=data-urlencode 'code--
'=data-urlencode 'refid--
'=data-urlencode 'clientrefid--
'=data-urlencode 'cardnumber--
'=data-urlencode 'cardhashpan--
4. تایید پرداخت
شما با استفاده از متد `POST /v2/pay/verify` و ارسال `refid` پرداخت را تایید میکنید
curl -X POST /https://api.payping.ir/v2/pay/verify
'H 'Accept: application/json-
'H 'Authorization: bearer YOUR_TOKEN-
'H 'Content-Type: application/json-
}' d-
,"refId": "string"
,"amount": int
}'
در پاسخ این متد `ViewModel` زیر را دریافت میکنید
}
,مبلغ : "amount"
,شماره کارت ماسک شده : "cardNumber"
,مقدار شماره کارت هش شده : "cardHashPan"
] : "merchants"
}
,مبلغ : "amount"
,کد پرداخت : "code"
,نام کاربری : "userName"
{
[
{
هر درگاه ممکن است شماره ماسک شده کارت و یا هش شماره کارت پرداخت کننده را در اختیار شما قراردهند. بنابراین حتما در صورتی که چک کردن شماره کارت برای شما اهمیت دارد هر ۲ پارامتر را چک کنید تا در صورت نبود یک مورد با پارامتر دیگر اطمینان حاصل کنید
خارج کردن پول از حالت مسدودی:
برای خارج کردن پول از حالت مسدود شده، باید از متد `POST /v2/pay/UnBlockMoney` و با ارسال `code` پرداخت، آن پرداخت را از بلوکه در بیاورید.
}
,"code": "string"
{

در صورت داشتن هرگونه سوال و نیاز به راهنمایی ، با پشتیبانی آنلاین سایت پیپینگ در ارتباط باشید.
به روز شده در: 1400/08/26