Skip to main content

درگاه اینترنتی( مستقیم PSP )

مقدمه#

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

نکته 1 : سرویسها به صورت REST با متد POST و فرمت json قابل استفاده میباشد.

نکته 2 : آدرس پایه برای اتصال به تمامی وبسرویسها https://core.paystar.ir/api/direct میباشد. این آدرس را به ابتدای آدرس های نسبی معرفی شده در مستند بیافزایید. به عنوان مثال آدرس وبسریس create به شکل زیر تبدیل میشود.

  • https://core.paystar.ir/api/direct/create

سرویس Create#

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

keyvalue
Content-Typeapplication/json
AuthorizationAuthorization

توجه: به جای <YOUR_GATEWAY_ID> مقدار شناسه درگاه خود که در پنل پی استار وجود دارد را قرار دهيد.

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

نام فیلدنوع دادهشرحاجباری
amountdoubleمبلغ تراکنشبله
order_idstringشناسه سفارسبله
callbackstringآدرس برگشتبله
signstringامضاءبله
namestringنام پرداخت کنندهخیر
phonestringتلفن پرداخت کنندهخیر
mailstringایمیل پرداخت کنندهخیر
descriptionstringتوضیحات پرداختخیر
callback_methodintegerمتد انتخابی برای بازگشت کاربر به سایت پذیرندهخیر

توجه:

• مبلغ تراکنش میبایست به ریال باشد و حداقل 5,000 ریال و حداکثر 500,000,000 ریال است. همچنين با توجه به تنظيمات کارمزد پایانه، سهم کارمزد پرداخت کننده به مبلغ افزوده خواهد شد.

• یکتایی شناسه سفارش در سامانه بررسی نمیشود. بهتر است به منظور جلوگيری از بروز خطا از شناسه یکتا استفاده شود. طول شناسه سفارش حداقل 1 و حداکثر 50 کاراکتر و شامل حروف و اعداد میباشد.

• آدرس برگشت باید با فرمت https://yoursite.ir/your/callback/url باشد. دامنه برگشت، باید دامنه اصلی سامانه که در هنگام ایجاد درگاه ثبت کرده اید باشد.

• برای ساخت امضا از متد HMAC و الگوریتم رمزنگاری SHA512 استفاده کنيد. کليد مورد نياز برای رمزنگاری، در هنگام ساخت درگاه در اختيار شما قرار میگيرد. آماده سازی داده ها برای امضا به صورت زیر میباشد:

amount#order_id#callback

پارامتر های خروجی (درصورت مجاز بودن درگاه برای تراکنش)

عنواننوع دادهشرح
statusintجدول وضعيت
messagestringپيام سيستم
DataPardakhtCreateDataجدول نوع داده PardakhtCreateData

پارامتر های خروجی (درصورت غیر مجاز بودن درگاه برای تراکنش)

عنواننوع دادهشرح
statusstringمقدار ثابت unauthenticated
actionstringمقدار ثابت PardakhtCreate
tagstringمقدار ثابت unauthenticated
messagestringپیام سیستم
dataarrayآرایه خالی
api_versionstringنسخه API

جدول نوع داده PardakhtCreateData

عنواننوع دادهشرح
tokenstringتوکن یکبار مصرف تراکنش
ref_numstringشناسه یکتای رهگيری تراکنش
order_idstringشناسه سفارش
payment_amountdoubleمبلغ نهایی پرداختی کاربر با اعمال کارمزد

توجه:

• مقدار ref_num را در دیتابيس ذخيره کنيد. از این شناسه در وبسرویس تایيد تراکنش استفاده خواهد شد.

پارامترهای تبادلی میان سایت فروشنده و سامانه پی استار#

درصورتی که پاسخ دریافتی از وبسرویس مرحله قبل (ایجاد تراکنش) موفق باشد و توکن یکبار مصرف را دریافت کرده باشيد، میتوانيد مشتری را با توکن دریافتی به سمت پی استار به آدرس زیر هدایت کنيد

  • https://core.paystar.ir/api/direct/payment

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

نام فیلدنوع دادهشرحاجباری
tokenstringتوکن دریافتی از وبسرویس createبله

توجه:

• برای هدایت کاربر به این صفحه میتوانید از متد GET یا POST استفاده کنید.

برگشت از درگاه به سایت پذیرنده

پس از انجام تراکنش ، کاربر به صفحه CallBack پذیرنده که در زمان ایجاد تراکنش مشخص شده، با ارسال فیلدهای زیر به صورت form-data و با متد POST هدایت خواهد شد. اگر در هنگام فراخوانی وبسرویس create ،پارامتر callback_method با مقدار عددی 1 ارسال شود، بازگشت به سایت پذیرنده با متد GET انجام میشود. در غیر اینصورت بازگشت به سایت پذیرنده با متد POST خواهد بود. بنابراین میبایست متد CallBack خود را با در نظر گرفتن این شرایط پیاده سازی و در وبسایت یا نرم افزار خود قرار دهید.

پارامترهای خروجی

عنواننوع دادهشرح
statusintجدول وضعیت
order_idstringشناسه سفارش (ارسال شده توسط پذیرنده)
ref_numstringشناسه یکتای رهگیری تراکنش
transaction_idstringشناسه تراکنش (موجود در پنل پی استار)
card_numberstringشماره کا رت پرداخت کننده
tracking_codestringکد رهگیری بانکی
signstringداده های امضا شده

توجه:

• درصورتی که وضعیت تراکنش ناموفق باشد(پرداخت انجام نشده باشد) فیلدهای sign , tracking_code , card_number برگشت داده نمی شود

سرویس verify#

پذیرنده بعد از گرفتن دادههای برگشتی از درگاه، درصورت موفق بودن تراکنش، از این سرویس جهت تایيدیه تراکنش ارسالی استفاده میکند. نکته مهم این است که پذیرنده نباید تا زمان دریافت وضعيت موفق از این سرویس، تراکنش را موفق در نظر بگيرد. درصورتی که تا 10 دقيقه بعد از تراکنش، این وبسرویس فراخوانی نشود، وضعيت تراکنش به صورت خودکار به ناموفق تغيير ميکند و مبلغ کسر شده از حساب مشتری طی 72 ساعت به حساب مشتری برگشت داده میشود. توجه داشته باشيد در صورتی که یکبار از این وبسریس پاسخ موفق دریافت کنيد، دیگر امکان فراخوانی وبسرویس را نخواهيد داشت و در صورت فراخوانی با پيام خطا مواجه خواهيد شد.

Header درخواست

keyvalue
Content-Typeapplication/json
AuthorizationAuthorization

توجه:

• به جای <YOUR_GATEWAY_ID> مقدار شناسه درگاه خود که در پنل پی استار وجود دارد را قرار دهيد.

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

نام فیلدنوع دادهشرحاجباری
ref_numstringشناسه یکتای رهگیری تراکنشبله
amountdoubleمبلغ تراکنشبله
signstringامضاءبله

توجه:

• برای ساخت امضا از متد HMAC و الگوریتم رمزنگاری SHA512 استفاده کنيد. کليد مورد نياز برای رمزنگاری، در هنگام ساخت درگاه در اختيار شما قرار میگيرد. آماده سازی دادهها برای امضا به صورت زیر میباشد:

amount#ref_num#card_number#tracking_code

پارامترهای خروجی (درصورت مجاز بودن درگاه)

عنواننوع دادهشرح
statusintجدول وضعیت
messagestringپیام سیستم
dataPardakhtVerifyDataجدول نوع داده PardakhtVerifyData

پارامترهای خروجی (درصورت غیر مجاز بودن درگاه)

عنواننوع دادهشرح
statusstringمقدار ثابت unauthenticated
actionstringمقدار ثابت PardakhtCreate
tagstringمقدار ثابت unauthenticated
messagestringپیام سیستم
dataarrayآرایه خالی
api_versionstringنسخه API

جدول نوع داده PardakhtVerifyData

عنواننوع دادهشرح
pricedoubleمبلغ تراکنش
ref_numstringشناسه یکتای رهگيری تراکنش

جدول کد های وضعیت#

عنوانdescriptionتوضیحات
1Okموفق
101-invalidRequestدرخواست نامعتبر (خطا در پارامترهای ورودی)
102-inactiveGatewayدرگاه فعال نیست
103-retryTokenتوکن تکراری است
104-amountLimitExceedمبلغ بیشتر از سقف مجاز درگاه است
105-invalidRefNumشناسه ref_num معتبر نیست
106-retryVerificationتراکنش قبلا وریفای شده است
107-badDataپارامترهای ارسال شده نامعتبر است
108-trNotVerifiableتراکنش را نمیتوان وریفای کرد
109-trNotVerifiedتراکنش وریفای نشد
198-paymentFailedتراکنش ناموفق
199-errorخطای سامانه