
مرورگر ممکن است صفحه بازگشت پرداخت را دوباره باز کند یا کاربر آن را تازه کند. سرویس مالی باید این تکرار را قابل پیشبینی بداند و اثر موفقیت را فقط یکبار اعمال کند.
شناسه تراکنش را یکتا نگه دارید
برای درخواست درگاه یک رکورد مستقل و شناسه قابل تطبیق ایجاد کنید. یک تراکنش موفق نباید بتواند به چند فاکتور نامرتبط وصل شود. محدودیت یکتایی دیتابیس در کنار منطق برنامه، از تکیه بر بررسیهای موقتی حافظه مطمئنتر است.
تغییر مالی را اتمی انجام دهید
پس از استعلام معتبر، وضعیت فاکتور و تراکنش باید با یک منطق هماهنگ تغییر کنند. اگر دو callback همزمان برسند، هرکدام نباید فرض کنند اولین درخواست هستند. قفل مناسب رکورد یا روش اتمی معادل، بخشی از طراحی این مسیر است. رسید میتواند دوباره نمایش داده شود، اما اثر مالی نباید تکرار شود.
پرداخت اضافه را پاک نکنید
ممکن است دو تراکنش واقعی برای یک فاکتور رخ دهد. در این حالت هر دو باید در سوابق باقی بمانند تا مدیریت بتواند تطبیق و رسیدگی کند. حذف رکورد دوم برای زیباتر شدن گزارش، شواهد مالی را از بین میبرد.
- تکرار callback را در آزمون بگنجانید.
- مبلغ و مالکیت فاکتور را سمت سرور بررسی کنید.
- وضعیت نامشخص را برای پیگیری نگه دارید.

