مستندات / زیرساخت پرداخت ایران

تطبیق UCP/MCP با زیرساخت پرداخت ایران

نمونه‌های جهانی تجارت عامل‌محور، پرداخت را از طریق Stripe یا شبکه‌های Visa/Mastercard مدل‌سازی می‌کنند. هیچ‌کدام از این‌ها در ایران به‌شکل معمول در دسترس نیست. این صفحه دقیقاً همان جایی‌ست که پروتکل باید با واقعیت شبکه‌ی بانکی داخلی سازگار شود.

شتاب شاپرک PSP

چرا این یک صفحه‌ی جداگانه لازم دارد

در UCP، مرحله‌ی نهایی تراکنش («تکمیل خرید») به‌شکلی طراحی شده که فرض می‌کند یک درگاه پرداخت با API مستقیم و توکن‌محور (مثل کارت ذخیره‌شده یا کیف پول دیجیتال بین‌المللی) در دسترس است. در ایران، پرداخت آنلاین همیشه از یک مسیر دیگر عبور می‌کند: شتاب (شبکه‌ی تسویه بین‌بانکی) و شاپرک (سوییچ متمرکز پرداخت الکترونیک که همه‌ی تراکنش‌های کارتی آنلاین کشور از آن رد می‌شوند). هر طراحی چک‌اوت برای ایران که این لایه را نادیده بگیرد، عملاً غیرقابل‌اجراست.

نقشه‌ی زیرساخت پرداخت ایران

  • شتاب — شبکه‌ی تسویه‌ی بین‌بانکی که تراکنش‌های کارت‌به‌کارت و کارتخوان را در سطح بانک مرکزی مسیریابی می‌کند.
  • شاپرک — سوییچ اجباری و متمرکز برای همه‌ی درگاه‌های پرداخت آنلاین کشور؛ هیچ کسب‌وکاری در ایران مجاز نیست مستقیم و بدون عبور از شاپرک، تراکنش کارتی آنلاین بپذیرد.
  • PSPهای مجاز — شرکت‌های پرداخت (مثل زرین‌پال، پی‌پینگ، آی‌دی‌پی، به‌پرداخت و مشابه) که مجوز اتصال به شاپرک دارند و درگاه پرداخت را در اختیار کسب‌وکارها می‌گذارند.
  • نبود دروازه‌ی بین‌المللی — به‌دلیل تحریم، Visa، Mastercard و PayPal در تراکنش داخلی نقشی ندارند؛ هر طرح پرداخت باید صد‌درصد روی زیرساخت داخلی سوار شود.

ناسازگاری اصلی: چک‌اوت بدون ریدایرکت در برابر تایید دومرحله‌ای

چک‌اوت عامل‌محور ایده‌آل، یک فراخوانی API ساده و بدون ریدایرکت مرورگر می‌خواهد (ایجنت مبلغ را می‌فرستد، تراکنش را از سرور به سرور تایید می‌کند). اما جریان استاندارد شاپرک مبتنی بر ریدایرکت به صفحه‌ی بانک و رمز پویا/رمز دوم کارت (OTP) است — گامی که ذاتاً نیازمند حضور و تایید لحظه‌ای خودِ کاربر انسانی روی صفحه‌ی بانک است، نه چیزی که یک ایجنت بتواند از طرف کاربر جایگزین کند (و اتفاقاً نباید هم بتواند — این لایه‌ی امنیتی دقیقاً برای جلوگیری از پرداخت خودکار بدون رضایت آنی صاحب کارت طراحی شده).

راه‌حل پیشنهادی: لایه‌ی Adapter پرداخت

به‌جای تلاش برای دور زدن تایید دومرحله‌ای (که هم از نظر امنیتی نادرست است و هم مغایر مقررات بانک مرکزی)، پیشنهاد این است که چک‌اوت عامل‌محور در ایران یک مرحله‌ی «تحویل به انسان» رسمی و از پیش‌طراحی‌شده داشته باشد:

  1. ایجنت سبد خرید نهایی را آماده و مبلغ را با کاربر تایید می‌کند (دقیقاً مطابق اصل Guardrail در ایجنت هوش مصنوعی)
  2. به‌جای فراخوانی مستقیم API پرداخت، ایجنت یک لینک درگاه شاپرک‌محور (از طریق PSP مجاز) برای همان تراکنش مشخص تولید می‌کند
  3. کاربر خودش روی همان لینک، رمز دوم/OTP را وارد و پرداخت را نهایی می‌کند — این تنها گامی است که عمداً «غیرخودکار» باقی می‌ماند
  4. ایجنت با callback استاندارد PSP، نتیجه‌ی نهایی (موفق/ناموفق) را دریافت و سفارش را تکمیل می‌کند

این مدل، هم با تجربه‌ی امروز خریدار ایرانی آشناست (چون همین جریان را برای هر خرید آنلاین دیگری هم طی می‌کند)، هم به هیچ مجوز یا استثنای خاصی از بانک مرکزی نیاز ندارد.

الزام بومی‌سازی داده

طبق مقررات بانک مرکزی، داده‌ی کارت و تراکنش کاربران ایرانی باید در مسیر PSPهای دارای مجوز داخلی پردازش شود و از این مسیر خارج نشود. این یعنی هر ایجنت خرید — حتی اگر خودِ مدل زبانی روی زیرساخت ابری خارج از ایران اجرا شود — نباید هرگز مستقیماً داده‌ی کارت را ببیند یا پردازش کند؛ نقش ایجنت باید محدود به «ساخت لینک درگاه» و «خواندن نتیجه‌ی نهایی تراکنش» بماند، نه دیدن اطلاعات حساس پرداخت در میانه‌ی مسیر.

سوالات متداول

آیا رمزارز راه‌حل این مشکل است؟

این صفحه عمداً وارد بحث رمزارز نمی‌شود — موضوع، جایگاه حقوقی و مقرراتی جدا و پیچیده‌ای دارد که فراتر از دامنه‌ی این مستندات فنی است.

آیا این یعنی پرداخت کاملاً خودکار در ایران غیرممکن است؟

برای تراکنش‌های کارتی معمول، بله — و این عمدی و به‌نفع امنیت کاربر است. آنچه واقعاً خودکار می‌شود، جست‌وجو، مقایسه و آماده‌سازی سفارش است؛ تاییدیه‌ی نهایی پرداخت همیشه دست خود کاربر باقی می‌ماند.