مستندات پیپینگ
پروفایل محدود PAYPING_REST_V3 پرداخت تومانی را با API رسمی v3 شبیهسازی میکند. توکن و SimLabMerchantProof ساختگی را فقط در سرور پذیرنده نگه دارید. هیچ درخواست یا پرداختی به پیپینگ واقعی ارسال نمیشود.
BASE=https://<simlab-host>/api/sandbox/payping/<connection-id>
CREATE=$BASE/v3/pay
START=$BASE/v3/pay/start/<paymentCode>
VERIFY=$BASE/v3/pay/verifyدرخواست و بازگشت
POST JSON به CREATE شامل amount تومان، returnUrl ایمن، clientRefId یکتا و description است. پاسخ paymentCode و url صفحه بدون کارت دارد. درخواست تکراری با همان شناسه و همان داده، همان پرداخت را برمیگرداند؛ داده متفاوت رد میشود. مرورگر با فرم POST شامل status و data JSON برمیگردد. اطلاعات کارت ساخته یا نگهداری نمیشود و این بازگشت پرداخت را نهایی نمیکند.
تأیید سروری
سرور پذیرنده paymentRefId، paymentCode و amount را با داده ذخیرهشده تطبیق دهد و تأیید را با Bearer و proof فراخوانی کند. پاسخ 200 نخستین تأیید موفق است؛ تکرار موفق 409 با metaData.code=110 برمیگردد. پاسخ 202 به معنی انتظار و تلاش دوباره تأیید است، نه پرداخت جدید. محدودیت دهدقیقهای تأیید پس از پرداخت از مستند رسمی آمده است. مبلغ داخلی SimLab ریال است و فقط مضرب دقیق ده ریال تا سقف int32 تومان پذیرفته میشود. کارمزد صفر و UUID paymentCode انتخابهای همین شبیهسازند، نه تضمین درگاه واقعی. Refund، برگشت، sharing و استعلام در این پروفایل در دسترس نیستند.
نمونه درخواست سروری
مقدارهای آغازشده با YOUR_ و جاینگهدارهای امضا یا پاکت رمزنگاری را پیش از ارسال با اعتبارنامه ساختگی اتصال خود و محاسبه صحیح جایگزین کنید. این نمونه اطلاعات هیچ حسابی را شامل نمیشود. زمان و تاریخ درخواست را هنگام ارسال تازه کنید و امضا را از روی همان بدنه نهایی بسازید. نشانی بازگشت نمونه را هم با نشانی سایت آزمایشی خود عوض کنید.
POST /v3/pay
Content-Type: application/json
Authorization: Bearer YOUR_accessToken
X-SimLab-Merchant-Proof: YOUR_SimLabMerchantProof{
"amount": 25000,
"returnUrl": "https://merchant.example.test/payment/callback",
"clientRefId": "ORDER9001",
"description": "SimLab test payment"
}چکلیست اتصال و نهاییسازی
شناسه اتصال و اعتبارنامه ساختگی را از صفحه همین درگاه در داشبورد بردارید. مسیر سرویس را به SimLab تغییر دهید؛ نشانی بازگشت باید متعلق به سایت آزمایشی شما و در مرورگر قابل دسترس باشد. حروف بزرگ و کوچک نام فیلدها، روش HTTP و نوع بدنه را دقیقاً مطابق همین پروفایل نگه دارید.
- شروع صفحه پرداخت
- paymentCode/url پاسخ را با GET به /v3/pay/start/<paymentCode> در مرورگر ببرید.
- بازگشت به سایت
- POST فرم مرورگر با status و data JSON شامل clientRefId، paymentCode، amount، gatewayAmount و در موفقیت paymentRefId؛ موقت است.
- اطلاعاتی که باید نگه دارید
- clientRefId، مبلغ تومان، paymentCode و paymentRefId را نگه دارید و تطبیق دهید.
- معیار نهایی موفقیت
- POST /v3/pay/verify با paymentRefId، paymentCode و amount و دو هدر احراز؛ 200 موفق، 409/metaData.code=110 تکرار موفق و 202 هنوز در انتظار است.
- درخواست تکراری
- clientRefId/بدنه یکسان همان پرداخت؛ بدنه متفاوت تعارض. 409/110 موفقیت قبلی است و پرداخت تازه نیست.
- مهلتها
- Start ده دقیقه؛ Verify ده دقیقه پس از پرداخت.
- عملیات قابل استفاده
- ایجاد پرداخت، صفحه پرداخت و تأیید
- خارج از محدوده
- استعلام، تسهیم، برگشت، بازپرداخت و کارت واقعی
خطا در کدام مرحله رخ داده است؟
- پیش از دریافت توکن: مسیر، نوع بدنه، مبلغ و واحد پول، اعتبارنامه و امضای درخواست را بررسی کنید. پاسخ HTTP موفق بهتنهایی کافی نیست؛ کد نتیجه داخل بدنه نیز باید مطابق قرارداد موفق باشد.
- هنگام ورود به صفحه پرداخت: توکن همان اتصال، روش GET یا POST و اعتبار زمانی آن را بررسی کنید. کلید سروری را در فرم مرورگر یا نشانی صفحه قرار ندهید.
- هنگام بازگشت: نشانی ثبتشده، روش فرم یا پارامترهای نشانی و تطابق شناسه سفارش را بررسی کنید. ایجاد فرم بازگشت به معنی دریافت آن توسط سایت شما نیست؛ مرورگر ممکن است بسته شود.
- هنگام تأیید: مرجع، مبلغ و پایانه را از سفارش ذخیرهشده بخوانید و با پاسخ تطبیق دهید. ورودی بازگشت مرورگر قابل دستکاری است. خطای شبکه یا پایان مهلت را به پرداخت موفق تبدیل نکنید.
- پس از تأیید: اگر این پروفایل تسویه یا تأیید نهایی جدا دارد، آن را اجرا کنید. تکرار درخواست را طبق قواعد همین درگاه انجام دهید؛ برای همه درگاهها قاعده تکرار یکسان وجود ندارد.
در تاریخچه درخواستها، مرحله، کد HTTP و نتیجه فنی را کنار تراکنش مرتبط ببینید. شناسه درخواست برای پیگیری مفید است؛ کلید، رمز، توکن دسترسی و امضا را در پیام پشتیبانی قرار ندهید. رد شدن دسترسی ممکن است به حساب، اشتراک، اتصال یا اعتبارنامه مربوط باشد؛ پاسخ عمومی عمداً علت خصوصی حساب را افشا نمیکند.
سناریوهای آزمایش و دسترسی
درخواست ایجاد پرداخت را از سرور سایت خود بفرستید. در صفحهی پرداخت آزمایشی، نتیجهی دلخواه را همانجا انتخاب کنید: موفقیت، انصراف، خطای درگاه یا پایان مهلت. نتیجه از قبل انتخاب نمیشود. سپس بازگشت و تأیید سروری را در جزئیات همان پرداخت بررسی کنید.
پیشنمایش ادمین ورودی مبلغ، سفارش و خطای دلخواه دارد و حالتهای نمایشی بیشتری را نشان میدهد؛ تراکنش یا بازگشت واقعی نمیسازد. حالتهایی مانند موجودی ناکافی یا رمز نامعتبر در آن، نمایش رابطاند و نباید بهعنوان کد قطعی قرارداد همه درگاهها تعبیر شوند. با پایان اشتراک، تعلیق حساب یا غیرفعال شدن اتصال، عملیات جدید و بازپخش درخواستهای قبلی دوباره کنترل و ممکن است رد شوند؛ تاریخچه متعلق به شما خواندنی میماند.
باز کردن اتصال و بخش آزمایش این درگاه · تاریخچه درخواستها و تراکنشها · راهنمای اولین اتصال
مرز ایمنی
هیچ اعتبارنامه محیط عملیاتی، کلید خصوصی یا اطلاعات کارت واقعی را برای این شبیهساز استفاده نکنید. این قرارداد محدود SimLab ادعای گواهی همه نسخههای فعلی بانک نیست.
نمای عمومی درگاه