מפתחים ישראליים שבונים אינטגרציות תשלום מתמודדים עם נוף API מפוצל של טרנזילה עם דורות מרובים של נקודות קצה (CGI ישן, API V2, Hosted Fields), מושגי תשלום ייחודיים לישראל (תשלומים, סוגי אשראי, סליקה ברשת שב"א), ודפוסי אימות ייחודיים. ללא ידע מעמיק במוסכמות תשלום ישראליות, מפתחים מסתכנים בטיפול שגוי בחישובי תשלומים, בחירת נקודות קצה שגויות למטבעות שונים, או החמצת תכונות קריטיות כמו תמיכה בארנק Bit וזרימות 3D Secure.
יוצר: @skills-il
אינטגרציה עם טרנזילה לסליקת אשראי, תשלומים בתשלומים, טוקניזציה והחזרים
npx skills-il add skills-il/tax-and-finance --skill tranzila-payment-gatewayעזרו למשתמש לבחור את הגישה המתאימה לצרכיו:
| דפוס | תיאור | היקף PCI | מתאים ל- |
|---|---|---|---|
| Iframe | דף תשלום מתארח בטרנזילה | מינימלי (SAQ-A) | אינטגרציה מהירה, עמידה מינימלית בתקנות |
| Hosted Fields | שדות קלט מתארחים בטרנזילה | נמוך (SAQ-A-EP) | חווית checkout מותאמת עם PCI נמוך |
| API V2 (שרת-לשרת) | תקשורת ישירה מול API | מלא (SAQ-D) | חיוב טוקנים, תשלומים חוזרים, החזרים |
רוב בתי העסק הישראליים מתחילים עם Iframe לאיסוף תשלומים, ואז משתמשים ב-API V2 לפעולות צד-שרת כמו חיוב טוקנים והחזרים.
טרנזילה משתמשת באישורים שונים בהתאם לאינטגרציה:
עבור Iframe / Legacy CGI:
supplier -- שם מסוף (מסופק על ידי טרנזילה)TranzilaPW -- סיסמת עסקהעבור API V2:
X-tranzila-api-app-key -- מפתח אפליקציה מלוח הבקרה של טרנזילההזכירו למשתמש לאחסן אישורים בצורה מאובטחת (משתני סביבה, מנהל סודות) ולעולם לא לשמור אותם בקוד המקור.
Hosted Fields מאפשרים לכם לעצב את טופס התשלום שלכם בזמן שטרנזילה מטפלת בקלט הכרטיס בצורה מאובטחת:
<div> עבור מספר כרטיס, תפוגה, ו-CVVTranzilaTK ללא שנתוני כרטיס עוברים דרך השרת שלכםזה נותן שליטה מלאה בעיצוב תוך שמירה על עמידה ב-SAQ-A-EP PCI. ראו https://docs.tranzila.com/docs/payments-billing/o033w842qo397-hosted-fields.
הטמיעו את ה-iframe של טרנזילה בדף התשלום:
https://direct.tranzila.com/{supplier}/iframenew.phpsum, currency, cred_typeטפלו בתגובה דרך ה-notify_url:
Response: 000 = אושרTranzilaTK (טוקן) לחיובים עתידייםאשרו עסקה בצד השרת (מומלץ):
לחיוב טוקנים, החזרים ופעולות שאינן כוללות הזנת כרטיס:
חיוב טוקן:
POST https://secure5.tranzila.com/cgi-bin/tranzila31tk.cgi
Content-Type: application/x-www-form-urlencoded
supplier={terminal}&TranzilaPW={password}&TranzilaTK={token}&expdate={MMYY}&sum={amount}¤cy=1&cred_type=1ביצוע החזר:
השתמשו ב-tranmode=C{index} עם ConfirmationCode וה-index מהעסקה המקורית.
עיינו ב-references/api-parameters.md למדריך הפרמטרים המלא.
לתשלומים ישראליים יש מאפיינים ייחודיים שנבדלים מעיבוד בינלאומי:
תשלומים (tashlumim):
cred_type=8 לתשלומים רגיליםnpay (מספר תשלומים פחות 1), fpay (תשלום ראשון), spay (תשלומים הבאים)fpay + (npay * spay) חייב להיות שווה ל-sum הכוללסוגי אשראי (cred_type):
| ערך | סוג | תיאור |
|---|---|---|
| 1 | אשראי רגיל | חיוב רגיל לכרטיס אשראי |
| 2 | ויזה עדיף / אמקס אשראי | |
| 3 | חיוב מיידי | חיוב ישיר מהחשבון |
| 5 | לאומי מיוחד | |
| 8 | תשלומים | חלוקה למספר תשלומים |
| 9 | תשלומי מועדון | תשלומים במסגרת מועדון |
קודי מטבע:
| קוד | מטבע | תיאור |
|---|---|---|
| 1 | שקל חדש (ILS) | מטבע ברירת מחדל |
| 2 | דולר (USD) | |
| 3 | לירה שטרלינג (GBP) | |
| 7 | אירו (EUR) |
תעודת זהות:
חלק מהעסקאות דורשות פרמטר myid -- מספר תעודת זהות ישראלית בן 9 ספרות.
טוקנים מאפשרים לחייב לקוחות חוזרים בלי לטפל בנתוני כרטיס מחדש:
יצירת טוקן בתשלום הראשון:
TranzilaTKtranmode=K (טוקן בלבד), VK (אימות + טוקן), או AK (חיוב + טוקן)אחסון הטוקן בצורה מאובטחת:
חיוב הטוקן מאוחר יותר:
/cgi-bin/tranzila31tk.cgiTranzilaTK, expdate, sum, ו-currency3D Secure V2 מוסיף אימות בעל הכרטיס. עיינו ב-references/3ds-flow.md לזרימה המלאה. נקודות עיקריות:
טרנזילה תומכת ב-Bit (אפליקציית התשלום הנייד הפופולרית בישראל). הזרימה שונה מתשלום בכרטיס:
notify_url שלכםפרמטרים עיקריים: bit=1 להפעלת Bit, התגובה כוללת bit_url להפניית הלקוח. ראו https://docs.tranzila.com/docs/payments-billing/dcljft4y7sgj2-bit.
בקשות תשלום (TRAPI) מאפשרות לשלוח קישורי תשלום במייל או SMS ללא בניית דף checkout:
זה שימושי לחשבוניות, הזמנות טלפוניות, או כל תרחיש שבו צריך לגבות תשלום ללא טופס מוטמע.
לחיוב חוזר אוטומטי מעבר לחיוב טוקנים פשוט, טרנזילה מציעה הוראות קבע:
הוראות קבע הן תכונה בתשלום -- פנו לטרנזילה להפעלה במסוף שלכם. ראו https://docs.tranzila.com/docs/payments-billing/7lwf8jetxm6oq-create-a-standing-order.
לטרנזילה API חשבוניות להפקת מסמכי מס חתומים דיגיטלית ומאושרים על ידי רשות המיסים:
ראו https://docs.tranzila.com/docs/invoices/e6843c7e8bc43-invoices-api למדריך החשבוניות המלא.
בדקו את שדה Response בכל תוצאת עסקה. 000 פירושו אושר -- כל דבר אחר הוא שגיאה.
שגיאות נפוצות לטיפול בקוד:
| קוד | משמעות | פעולה מומלצת |
|---|---|---|
| 004 | כרטיס סורב | בקשו מהמשתמש לנסות כרטיס אחר |
| 036 | כרטיס פג תוקף | בקשו מהמשתמש לעדכן פרטי כרטיס |
| 107 | סכום חורג מהמגבלה | הפחיתו סכום או פנו לבנק |
| 111 | מסוף לא מורשה לתשלומים | פנו לטרנזילה להפעלה |
| 125 | מסוף לא מורשה ל-Amex | פנו לטרנזילה להפעלה |
| 200 | שגיאת אפליקציה | נסו שוב; אם נמשך, בדקו פרמטרים |
| 900 | אימות 3DS נכשל | נסו ללא 3DS או בקשו מהמשתמש לאמת |
למדריך קודי השגיאה המלא (170+ קודים), עיינו ב-references/error-codes.md.
המשתמש אומר: "אני צריך להוסיף תשלום בכרטיס אשראי לדף התשלום שלי ב-Node.js" פעולות:
המשתמש אומר: "אני רוצה לחייב לקוחות 99 ש"ח כל חודש אוטומטית" פעולות:
המשתמש אומר: "הלקוח שלי רוצה לשלם 6,000 ש"ח ב-3 תשלומים" פעולות:
המשתמש אומר: "אני צריך לבצע החזר לעסקה מהשבוע שעבר, קוד אישור 0283456" פעולות:
המשתמש אומר: "אני רוצה לאפשר ללקוחות לשלם עם Bit באתר שלי" פעולות:
bit=1 בבקשת התשלוםbit_url מהתגובההמשתמש אומר: "אני צריך לגבות תשלום מלקוח בטלפון" פעולות:
npm install tranzilajs. ראו: https://github.com/NirTatcher/tranzilajsreferences/api-parameters.md -- מדריך פרמטרים מלא של API טרנזילה לנקודות קצה CGI ישנות ו-API V2, כולל כותרות אימות, פרמטרי עסקה, פעולות טוקן, ושדות תשלומים. עיינו בקובץ זה בעת בניית בקשות API או דיבוג פרמטרים.references/error-codes.md -- רשימה מלאה של קודי תגובה של טרנזילה (000-999) עם משמעויות וטיפול מומלץ. עיינו בקובץ זה כאשר עסקה מחזירה קוד שאינו 000.references/3ds-flow.md -- מדריך מימוש 3D Secure V2 שלב-אחר-שלב לטרנזילה, כולל זרימת redirect, פרמטרי אימות, וטיפול חלופי. עיינו בקובץ זה בעת הוספת 3DS לאינטגרציה קיימת.scripts/validate_tranzila_response.py -- מאמת תגובת עסקה של טרנזילה: בודק קוד תגובה, מוודא נוכחות שדות נדרשים, ומסמן בעיות נפוצות (קוד אישור חסר, סכומים לא תואמים). הרצה: python scripts/validate_tranzila_response.py --helpסיבה: פרמטרים חסרים או לא תקינים בבקשת ה-API פתרון: ודאו שכל הפרמטרים הנדרשים קיימים: supplier, TranzilaPW, sum, ccno (או TranzilaTK), expdate. בדקו ששמות הפרמטרים מדויקים (case-sensitive).
סיבה: למסוף טרנזילה שלכם אין הרשאה לתשלומים פתרון: פנו לתמיכת טרנזילה (073-222-4444) להפעלת עיבוד תשלומים במסוף שלכם.
סיבה: נפוץ כשמשתמשים בנקודת קצה שגויה או חסר expdate
פתרון: חיובי טוקן משתמשים ב-/cgi-bin/tranzila31tk.cgi (לא tranzila31.cgi). כללו גם TranzilaTK וגם expdate.
סיבה: מסופי בדיקה וייצור מתנהגים שונה פתרון: ודאו את שם המסוף והסיסמה בייצור. חלק מהפעולות (כמו ביטול) מתנהגות שונה בייצור. פנו לתמיכת טרנזילה אם ההתנהגות שונה.
סיבה: שימוש בנקודת קצה שגויה למטבע
פתרון: ש"ח ודולר משתמשים ב-tranzila31.cgi. רב-מטבעי (אירו, לירה שטרלינג ועוד) דורש tranzila36a.cgi.
אני צריך להוסיף תשלומי כרטיס אשראי לאפליקציית Node.js/Express שלי באמצעות טרנזילה. הגדירו אינטגרציית iframe עם יצירת טוקן כדי שאוכל לחייב לקוחות מאוחר יותר. השתמשו במטבע ש"ח.
הלקוח שלי רוצה לשלם 12,000 ש"ח ב-6 תשלומים דרך טרנזילה. עזרו לי לחשב את הפרמטרים fpay, spay, ו-npay ולבנות את בקשת ה-API.
אני רוצה להציע Bit כאמצעי תשלום לצד כרטיסי אשראי בדף התשלום שלי באמצעות טרנזילה. הראו לי איך להתחיל תשלום Bit ולטפל בתגובה.
אני צריך לבצע החזר חלקי של 500 ש"ח על עסקת טרנזילה. יש לי את ConfirmationCode ו-index המקוריים. הראו לי את קריאת API ההחזר.
סוכנים נתמכים
ציון אמון
הסקיל יכול לגשת למשתני סביבה שעלולים להכיל סודות.
נמצאו 7 התאמות בקוד
שליפה וניתוח נתונים כלכליים מבנק ישראל: ריבית, מדד המחירים לצרכן, שערי חליפין ונתוני הלמ"ס. כולל גישת API ל-data.boi.org.il.
אינטגרציה עם קארדקום לסליקת אשראי, הפקת חשבוניות מס וקבלות אוטומטית
ניתוח מניות, מדדים ודיווחים בבורסה לניירות ערך בתל אביב. שימוש כשצריך מידע על מדדי ת"א-35, ת"א-125, ת"א-90, דיווחי מאיה, חברות רישום כפול, או ניתוח סקטורי של הבורסה.
רוצים לבנות סקיל משלכם? נסו את יוצר הסקילס · הגשת סקיל