لینک پرداخت
لینک پرداخت نیازی به کد ندارد؛ از پنل ساخته و به مشتری داده میشود. اگر میخواهید در اپ/سایت خودتان دکمهی «پرداخت» به لینک وصل کنید، بدون کلید API:
GET /public/links/{slug}اطلاعات لینک (عنوان، مبلغ ثابت یا بازه).POST /public/links/{slug}/paymentsبا{ "amount": "…" }(اگر مبلغ آزاد است) →checkoutUrl.
این پرداختها callback ندارند؛ مشتری در پایان رسید میبیند و شما در پنل/ربات اعلان میگیرید.
sandbox
- پروژهی آزمایشی کلید
sk_test_میدهد؛ پرداختهایشsandbox: trueاست، کارمزد ندارد، به اعتبار و گوشی آنلاین نیاز ندارد، و هرگز با پیامک واقعی تطبیق نمیخورد (و برعکس). - واریز را با
POST /v1/sandbox/simulate-depositشبیهسازی کنید:
outcome | نتیجه |
|---|---|
match | تأیید خودکار → وبهوک payment.confirmed |
base_amount | مبلغ بدون کد → واریزی نامشخص با پیشنهاد (تا تأیید دستی را تست کنید) |
wrong_amount | مبلغ اشتباه → واریزی نامشخص |
custom | مبلغ دلخواه با amount |
همان شبیهساز از پنل فروشنده (تب «شبیهساز» پروژهی آزمایشی) هم در دسترس است.
کدهای خطا
error.code | HTTP | معنی |
|---|---|---|
validation_error | 422 | ورودی نامعتبر؛ details فیلدها را میگوید |
unauthorized | 401 | کلید نامعتبر یا باطل |
not_found | 404 | پرداخت/لینک پیدا نشد |
merchant_credit_exhausted | 402 | اعتبار فروشنده تمام شده |
no_card_available | 503 | کارتی در دسترس نیست |
callback_host_not_allowed | 422 | میزبان callback مجاز نیست |
not_sandbox | 403 | شبیهساز با کلید live |
payment_not_pending | 409 | پرداخت در وضعیت قابل شبیهسازی نیست |
link_unavailable | 410 | لینک غیرفعال/منقضی |
rate_limited | 429 | درخواست زیاد؛ details.retryAfterSeconds |
بهترین عملها
idپرداخت را کنار سفارش ذخیره کنید؛ باorderIdهم میتوانید پیدا کنید.- وبهوک و verify هر دو را پیاده کنید و پردازش را idempotent نگه دارید.
- secret را در سرور نگ ه دارید؛ هرگز در مرورگر یا اپ موبایل.
- برای هر سایت یک پروژه و برای هر محیط (تست/واقعی) کلید جدا.
- مهلت پرداخت را با رفتار مشتریهایتان تنظیم کنید (پیشفرض ۱۵ دقیقه).