پرش به مطلب اصلی

مفاهیم

جریان اتصال سایت شما به واریزیار همان الگوی آشنای درگاه‌های ایرانی است:

سایت شما واریزیار مشتری
│ POST /v1/payments ───────────────►│ (کارت + مبلغ یکتا) │
│ ◄── { id, checkoutUrl } ──────────│ │
│ redirect ─────────────────────────┼──────────────────────────────►│ صفحه‌ی پرداخت
│ │ ◄── پیامک واریز از گوشی فروشنده │
│ ◄── webhook payment.confirmed ────│ │
│ │── redirect به callbackUrl ────►│
│ POST /v1/payments/{id}/verify ───►│ │

واژه‌ها

واژهمعنی
پروژهیک سایت/کسب‌وکار با کلید API و کارت‌های خودش. حالت live یا sandbox
کلید APIkeyId عمومی (pk_live_…) و secret محرمانه (sk_live_…). برای sandbox: pk_test_ و sk_test_
پرداختیک درخواست دریافت پول با amountRequested (چیزی که خواسته‌اید) و amountFinal (چیزی که مشتری باید دقیقاً واریز کند)
callbackآدرسی در سایت شما که مشتری بعد از نتیجه به آن برمی‌گردد
verifyتأیید نهایی سمت سرور شما؛ تنها چیزی که باید به آن اعتماد کنید
وب‌هوکPOST امضاشده به سرور شما هنگام تغییر وضعیت

اعتماد

  • وضعیت داخل URL بازگشت قابل اعتماد نیست (مشتری می‌تواند دستکاری کند). سفارش را فقط وقتی تحویل دهید که verify بگوید verified: true، یا وب‌هوک با امضای معتبر payment.confirmed بدهد.
  • هر دو را پیاده کنید: وب‌هوک برای وقتی مشتری صفحه را بسته، verify برای وقتی برگشته.

واحد پول

همه‌ی مبالغ ریال و رشته هستند ("1000000" = ۱۰۰٬۰۰۰ تومان).