לזרימת התשלום של Grow יש שלב שרוב האינטגרציות מפספסות - העסקה אינה סופית עד שהשרת שלך מאשר אותה. מה באמת עושים createPaymentProcess ו-approveTransaction, ולמה תשלומים משנים לך את הרישום החשבונאי.
עיקרי הדברים
- השם השתנה. משולם היא כיום Grow, והתיעוד נמצא ב-grow.business/api-developers - חיפוש השם הישן מחזיר חומר ותיק שעשוי לא להתאים לממשק הנוכחי.
- הזרימה דו-שלבית: createPaymentProcess פותח את דף התשלום, ואחרי הקולבק השרת שלך קורא ל-approveTransaction. דילוג על השלב השני הוא הדרך שבה תשלום נראה מוצלח ולא נסגר.
- פריסה לתשלומים היא יכולת מרכזית בשוק הישראלי והיא משנה את הרישום החשבונאי. יש להחליט עם רואה החשבון אם המסמך משקף את הסכום המלא או את התשלום, לפני הבנייה.
- הקולבק הוא מקור האמת, לא הדפדפן. לקוח שסוגר את הלשונית אחרי התשלום לעולם לא חוזר לדף שלך, אבל השרת שלך עדיין שומע על זה.
הדבר הראשון שכדאי לדעת הוא ששם המוצר השתנה: משולם היא כיום Grow, והתיעוד למפתחים יושב ב-grow.business/api-developers. חיפוש "משולם API" עדיין מחזיר חומר, אבל חלקו ותיק ולא בהכרח תואם לממשק הנוכחי - שווה לפתוח את התיעוד הרשמי ולא להסתמך על דוגמה שמצאת.
הזרימה - וההבדל שמפיל אינטגרציות
הדפוס המרכזי הוא דו-שלבי, וזו הנקודה שהכי חשוב להבין:
createPaymentProcess- השרת שלך יוצר תהליך תשלום. מקבל בחזרה דף תשלום שאפשר להטמיע ב-iframe או להפנות אליו.- הלקוח משלם בדף של Grow. פרטי הכרטיס לא עוברים דרכך.
- Grow מודיעה לשרת שלך בקולבק.
approveTransaction- השרת שלך מאשר את העסקה.
השלב הרביעי הוא מה שרוב האנשים מפספסים. אינטגרציה שמקבלת את הקולבק, מסמנת את ההזמנה כמשולמת, ולא קוראת ל-approveTransaction - תיראה כאילו היא עובדת בבדיקות, כי דף התשלום החזיר הצלחה. בפועל העסקה לא נסגרה כמו שצריך, וזה מתגלה בהתאמה מול הדוחות.
למה יש שני שלבים בכלל: זה נותן לשרת שלך הזדמנות לאמת לפני האישור הסופי - שהסכום נכון, שההזמנה קיימת, שהיא לא כבר שולמה. זו לא בירוקרטיה, זו נקודת בקרה, וכדאי להשתמש בה.
מה לעשות בין השלבים
ברגע שהקולבק מגיע ולפני approveTransaction:
- להצליב את הסכום מול ההזמנה בצד השרת. אם הוא לא תואם - לא לאשר, ולסמן לבדיקה.
- לבדוק שההזמנה לא כבר שולמה. קולבקים יכולים להגיע פעמיים.
- לתעד את התשובה המלאה לפני שממשיכים. אם משהו ייכשל בהמשך, זו הראיה.
תשלומים - היכולת שמשנה את הרישום
פריסה לתשלומים (עד 12) היא יכולת מרכזית בשוק הישראלי, ובניגוד לרוב הפיצ'רים היא לא רק עניין של סליקה - היא עניין חשבונאי.
השאלה שצריך לשאול את רואה החשבון של העסק, לפני שכותבים קוד:
כשלקוח משלם ב-6 תשלומים, האם המסמך משקף את הסכום המלא במועד העסקה, או שכל תשלום מייצר רישום משלו?
לשתי הגישות יש היגיון, והתשובה תלויה בשיטת הדיווח של העסק. מה שלא לגיטימי הוא שהמפתח יחליט לבד - זו החלטה שקובעת מתי מוכרת ההכנסה.
ההשלכה המעשית: המערכת שלך צריכה לדעת גם את הסכום הכולל וגם את מספר התשלומים, ולשמור את שניהם. אם שמרת רק את מה שנגבה החודש, איבדת את ההקשר.
הקולבק הוא מקור האמת
כמו בכל סולק - קארדקום, טרנזילה, PayPlus - ההפניה בדפדפן אינה אמינה כמנגנון עדכון.
לקוח שסוגר את הלשונית ברגע שהתשלום עבר, שהאינטרנט שלו נופל, או שפשוט לא ממתין - לא יחזור לדף שלך. אם שם אתה מסמן את ההזמנה כמשולמת, היא תישאר "ממתינה" למרות שהכסף נגבה.
הכלל: הקולבק מעדכן את מצב ההזמנה ומפעיל את approveTransaction. הדפדפן מציג מסך תודה. אף פעם לא להפך.
ונקודת הקצה של הקולבק חייבת להיות אידמפוטנטית - אותה הודעה יכולה להגיע פעמיים, ואסור שזה יסמן שתי הזמנות משולמות או ישלח שני משלוחים.
מי מפיק את המסמך
ההחלטה שחוזרת בכל פרויקט שמחבר סליקה והנהלת חשבונות: אם הסולק מוגדר להפיק מסמך אוטומטית והמערכת שלך גם מפיקה דרך מערכת החשבוניות, נוצרים שני מסמכי מס על עסקה אחת.
זה מתגלה בסוף החודש, אצל רואה החשבון. לבחור צד אחד ולתעד אותו לפני שכותבים שורה.
אבטחה
- לא לגעת בפרטי כרטיס. הם מוזנים בדף של Grow. אל תעביר, אל תתעד, אל תשמור - אחרת אתה נכנס להיקף PCI DSS.
- לאמת את הקולבק. נקודת קצה ציבורית שמסמנת הזמנות כמשולמות ומפעילה אישור עסקה היא יעד מובן מאליו. אין להסתמך על סודיות הכתובת.
- סודות בצד השרת בלבד. פרטי הגישה מאפשרים גבייה בשם העסק - לא בקוד המקור, לא בלוגים, ולא בדפדפן.
צ'קליסט לפני העלייה לאוויר
- לפתוח את התיעוד ב-
grow.business/api-developers- לא לחפש "משולם", השם השתנה. - לוודא ש-
approveTransactionנקרא בכל מסלול מוצלח. זו הבדיקה שהכי מרבים לפספס. - לבדוק את התרחיש שבו הלקוח משלם וסוגר מיד את הלשונית - האם ההזמנה עודכנה?
- לבדוק קולבק כפול - האם ההזמנה סומנה פעמיים?
- לקבל מרואה החשבון בכתב איך נרשמת עסקה בתשלומים.
- לוודא שאין הפקת מסמך כפולה.
- לבדוק כישלון אמיתי, לא רק הצלחה.
להשוואה בין הסולקים הישראליים, ראה השוואת סולקים ישראליים למפתחים.
שאלות נפוצות
האם משולם ו-Grow זה אותו דבר?
כן - משולם עברה מיתוג מחדש ל-Grow, והתיעוד למפתחים מפורסם ב-grow.business/api-developers. חיפוש השם הישן עדיין מחזיר תוצאות, אבל חלק מהחומר הזה קדם לממשק הנוכחי, ולכן כדאי לעבוד מהתיעוד הרשמי ולא מדוגמה ותיקה שמוצאים בפורום או בפוסט.
מה עושה approveTransaction בזרימה של Grow?
הוא סוגר את העסקה מהשרת שלך אחרי שהקולבק מגיע. הזרימה היא createPaymentProcess, הלקוח משלם בדף של Grow, Grow קוראת חזרה לשרת שלך, ואז אתה קורא ל-approveTransaction. דילוג על השלב האחרון מייצר אינטגרציה שנראית תקינה בבדיקות - דף התשלום דיווח הצלחה - בזמן שהעסקה מעולם לא נסגרה כראוי.
מה צריך לקרות בין הקולבק של Grow לאישור העסקה?
ולידציה. להצליב את הסכום מול ההזמנה בצד השרת ולסרב לאשר אם הוא לא תואם, לוודא שההזמנה לא כבר שולמה כי קולבקים יכולים לחזור, ולתעד את התשובה המלאה לפני שממשיכים. התכנון הדו-שלבי קיים בדיוק כדי לתת לך את נקודת הבקרה הזו - כדאי להשתמש בה ולא לאשר בעיוורון.
איך צריך לרשום תשלום בפריסה בהנהלת החשבונות?
זו החלטה של רואה החשבון של העסק, לא של המפתח. יש לשאול במפורש אם המסמך צריך לשקף את הסכום המלא במועד העסקה או שכל תשלום מייצר רישום משלו - לשתיהן יש היגיון, והתשובה תלויה בשיטת הדיווח של העסק. המערכת שלך חייבת לשמור גם את הסכום הכולל וגם את מספר התשלומים בכל מקרה, אחרת ההקשר אובד.
האם לעדכן סטטוס הזמנה בהפניה של Grow או בקולבק?
בקולבק. ההפניה בדפדפן תלויה בכך שהלקוח יישאר בדף, וכל מי שסוגר את הלשונית ברגע שהתשלום עובר לא חוזר - וההזמנה נשארת ממתינה בזמן שהכסף נגבה. יש להשתמש בקולבק לעדכון המצב ולהפעלת approveTransaction, להשאיר את ההפניה למסך תודה בלבד, ולהפוך את נקודת הקצה של הקולבק לאידמפוטנטית.
להמשך קריאה
שירות רלוונטי
אינטגרציות
לגרום למערכות שאתם כבר משלמים עליהן לדבר זו עם זו.
על הכותב
יהונתן סעדיה
מהנדס פרילנסר לאוטומציה, אתרים ו-MVP
אני יהונתן סעדיה, מהנדס בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.
בוא נעבוד יחדיש לך פרויקט דומה?
ספר לי מה אתה מנסה להפוך לאוטומטי או לבנות, ואומר לך מהי הדרך המהירה והאמינה ביותר ליישם את זה.
