מקרה בוחן

אתר להגרלת נכסים עם שלוש דרכי תשלום, והגרלה שהאתר לא מכריע בה

אנשים קונים כרטיסים ממוספרים להגרלה שהפרס בה הוא נכס. כרטיס אשראי, העברה בנקאית או קריפטו, עם חשבון או בלי, בשלוש שפות.

התפקיד שלי

זה מוצר של לקוח, לא שלי, ואני לא מציין כאן את שם הלקוח. ההגרלה, הפרסים, הכללים והקונים הם של הלקוח. החלק שלי הוא התוכנה: אני המפתח היחיד במאגר שלו, 321 קומיטים לאורך שבעה חודשים ב-2026, ואני עדיין מתחזק אותו.

המצב

הלקוח כבר הריץ את ההגרלות האלה על ערכת נושא של חנות, כשהתשלום נשלח החוצה לקישור חיצוני. אבל הגרלה על נכס היא לא חנות. קונה רוצה כרטיס ממוספר והוכחה שהוא קיים, המארגן צריך לדעת בדיוק כמה כרטיסים נמצאים בחוץ ומי מחזיק בהם, וביום ההגרלה כולם צריכים לראות שהמספר הזוכה היה כרטיס אמיתי ששולם.

האילוץ

הכסף נכנס דרך שלוש דלתות וצריך להגיע למונה אחד. תשלום בכרטיס אשראי מאשר את עצמו בתוך שניות. העברה בנקאית מחכה שאדם יאשר אותה. תשלום בקריפטו מחכה שספק התשלומים יקרא בחזרה. שלושתם צריכים להסתיים באותו דבר: כרטיס ממוספר שמונפק פעם אחת בדיוק, ואף פעם לא כרטיס אחד יותר ממה שההגרלה מכילה.

ההגרלה צריכה להיות אמינה, ולכן האתר לא בוחר את הזוכה. ההגרלה נערכת מחוץ לאתר, ואחריה מנהל המערכת רושם את המספר הזוכה. התפקיד של האתר הוא החצי המשעמם שחשוב: לסרב למספר שהוא לא כרטיס אמיתי ששולם, לרשום את הזוכה ולסגור את ההגרלה בצעד אחד ויחיד, ולפרסם דף הוכחה שכל אחד יכול לפתוח.

קונה לא צריך חשבון. זה טוב למכירות וקשה לכל השאר: הכרטיס צריך להגיע לאורח בצורה שהוא יכול לשמור, הרכישות שלו צריכות להתחבר לחשבון אם הוא יפתח אחד אחר כך, וטופס הזמנה ציבורי צריך לעמוד מול בוטים.

מה בניתי

האתר בפרודקשן ואני עדיין מעלה אליו גרסאות. מה האתר עושה:

  • אתר ציבורי בשלוש שפות שנפתח בשפה של הגולש: ההגרלות, דף לכל הגרלה, זוכים, שאלות נפוצות, בלוג, הדפים המשפטיים.
  • רכישה בשלושה שלבים: בוחרים כרטיסים או חבילה, עונים על שאלת מיומנות עם הגבלת זמן, משלמים. כאורח או מתוך חשבון, לעצמכם או כמתנה.
  • כרטיס אשראי, העברה בנקאית עם אסמכתה שמנהל מערכת מאשר ושפגה מעצמה אם הכסף לא מגיע, וקריפטו דרך ספק מתארח שהקריאות החוזרות שלו נבדקות לפי חתימה.
  • מנגנון הקצאת כרטיסים אחד שמשותף לשלושתם: מספרים רציפים בני שש ספרות, אישור שמעובד פעם אחת בלבד, וסירוב למכור מעבר לגודל ההגרלה. הכרטיס מגיע כקובץ PDF באימייל, ומשימת רקע מנסה שוב לשלוח אימיילים שלא יצאו.
  • קופונים, קודי שותפים וקישורי הפניה, עם כרטיס חינם אחרי מספר קבוע של הפניות שהסתיימו בתשלום.
  • רישום ההגרלה: האתר בודק שהמספר הזוכה הוא כרטיס ששולם, רושם את הזוכה ונועל את ההגרלה באותה פעולה, ואז מציג דף הוכחה ציבורי.
  • מערכת ניהול בשתי שפות: הגרלות, משתתפים, העברות והזמנות קריפטו לאישור, תשלומים, החזרים כספיים, קופונים, קישורי תשלום, קובצי ייצוא וכלי ניוזלטר עם הסרה בלחיצה אחת.
  • החלקים השקטים: בדיקת בוטים והגבלות קצב על הזמנות, גיבוי יומי עם התראת בוקר אם הוא חסר, וניטור שמחפש הזמנות תקועות כמו ״שולם אבל האימייל לא נשלח״.

המספרים

  • 3אמצעי תשלום (כרטיס אשראי, העברה בנקאית, קריפטו)
  • 3שפות באתר הציבורי
  • 10משימות רקע מתוזמנות
  • 153מקרי בדיקה אוטומטיים, ב-16 קבצים
  • 321קומיטים לאורך שבעה חודשים ב-2026

אלה ספירות הנדסיות, שנקראו מהקבצים ומההיסטוריה של הפרויקט עצמו. אין בדף הזה מספר כרטיסים, אין הכנסות, אין מספר קונים, אין שם של שותף ואין שם של לקוח. אלה שייכים ללקוח, וזה שלו לפרסם.

מה עשיתי ומה לא עשיתי

זה העסק של מישהו אחר. לא אני תכננתי את ההגרלה, בחרתי את הפרסים, כתבתי את הכללים או ערכתי את ההגרלה, ושום דבר בדף הזה הוא לא טענה על איך ההגרלות הלכו. מה שהוא מראה צר יותר: אני יודע לקחת עסק שמטפל בכסף של אנשים אחרים, להחליף את האתר שמתחתיו, ולהחזיק אותו רץ לבד במשך שבעה חודשים.

אני האדם היחיד במאגר, ואני עובד כל יום עם עוזר קוד מבוסס AI. החצי השני של ההרגל הזה הוא ביקורת: קוד התשלומים עבר ארבעה סבבי ביקורת ביום ההשקה שלו וביומיים שאחריו, וכל ממצא נסגר בקומיט משלו.

מה הייתי עושה אחרת: לכתוב את הבדיקות לפני הכסף. שלושת אמצעי התשלום עלו לאוויר ב-8 במאי 2026, וקובץ הבדיקות האוטומטיות הראשון הגיע ב-25 במאי.

רוצים משהו כזה?

ספרו לי מה אתם בונים, או מה אתם עדיין עושים ידנית, ואני אגיד לכם איך הייתי ניגש לזה. בלי התחייבות.