Skip to main content

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

مقدمه#

این مستند جهت ارائه به پذیرندگان پی استار جهت اتصال به درگاه پرداخت می باشد. در حالت کلی پذیرنده ابتدا می بایست یک درخواست ایجاد تراکنش ارسال و برای آغاز تراکنش یک توکن یکبار مصرف دریافت و آن را برای انجام تراکنش به سایت پست نماید. بعداز بازگشت مشتری از درگاه، اطلاعات وضعیت تراکنش به سمت پذیرنده برگشت داده می شود و پذیرنده پس از دریافت اطلاعات می بایست نسبت به 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

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

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

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

توجه:

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

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

• آدرس برگشت باید با فرمت 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بله

توجه:

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

برگشت از درگاه به صفحه CallBack پذیرنده

پس از انجام تراکنش، کاربر به صفحه CallBack پذیرنده که در زمان ایجاد تراکنش مشخص شده، با ارسال فيلدهای زیر به صورت data-form و با متد 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موفق
4-requiredInputParametersNotSatisfiedبرخی از فيلدهای ضروری ارسال نشده است
5-incorrectTerminalIdشناسه ترمينال معتبر نيست
6-incorrectAmountمبلغ نادرست است
7-lowAmountمبلغ کمتر از حداقل است
8-highAmountمبلغ بيشتر از حداکثر است
9-emptyOrderIdشناسه سفارش نميتواند خالی باشد
10-shortOrderIdطول شناسه سفارش کوتاه است
11-longOrderIdطول شناسه سفارش بلند است
12-paymentFailedتراکنش ناموفق
13-paymentDataNotValidتراکنش شناسایی نشد
14-inactiveTerminalترمينال فعال نيست
15-invalidCardNumberشماره کارت معتبر نيست
16-retryVerificationتراکنش قبال وریفای شده است
17-retryTokenتوکن تکراری است
23-invalidCallbackAddressآدرس برگشت معتبر نيست
24-shopIsInactiveفروشگاه فعال نيست
25-amountExceededLimitتراکنش بيشتر از سقف محدودیت می باشد
98-invalidSignatureامضا نامعتبر است
99-errorخطای سامانه