by @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 -- מפתח אפליקציה מלוח הבקרה של טרנזילההזכירו למשתמש לאחסן אישורים בצורה מאובטחת (משתני סביבה, מנהל סודות) ולעולם לא לשמור אותם בקוד המקור.
הטמיעו את ה-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 לזרימה המלאה. נקודות עיקריות:
בדקו את שדה Response בכל תוצאת עסקה. 000 פירושו אושר -- כל דבר אחר הוא שגיאה.
שגיאות נפוצות לטיפול בקוד:
| קוד | משמעות | פעולה מומלצת |
|---|---|---|
| 004 | כרטיס סורב | בקשו מהמשתמש לנסות כרטיס אחר |
| 036 | כרטיס פג תוקף | בקשו מהמשתמש לעדכן פרטי כרטיס |
| 107 | סכום חורג מהמגבלה | הפחיתו סכום או פנו לבנק |
| 111 | מסוף לא מורשה לתשלומים | פנו לטרנזילה להפעלה |
| 125 | מסוף לא מורשה ל-Amex | פנו לטרנזילה להפעלה |
| 200 | שגיאת אפליקציה | נסו שוב; אם נמשך, בדקו פרמטרים |
| 900 | אימות 3DS נכשל | נסו ללא 3DS או בקשו מהמשתמש לאמת |
למדריך קודי השגיאה המלא (170+ קודים), עיינו ב-references/error-codes.md.
המשתמש אומר: "אני צריך להוסיף תשלום בכרטיס אשראי לדף התשלום שלי ב-Node.js" פעולות:
המשתמש אומר: "אני רוצה לחייב לקוחות 99 ש"ח כל חודש אוטומטית" פעולות:
המשתמש אומר: "הלקוח שלי רוצה לשלם 6,000 ש"ח ב-3 תשלומים" פעולות:
המשתמש אומר: "אני צריך לבצע החזר לעסקה מהשבוע שעבר, קוד אישור 0283456" פעולות:
references/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.
סוכנים נתמכים
ציון אמון
הסקיל יכול לגשת למשתני סביבה שעלולים להכיל סודות.
נמצאו 6 התאמות בקוד
by @skills-il
המרת מטבעות בזמן אמת מול בנק ישראל עם תמיכה בכל המטבעות
by @skills-il
אינטגרציה עם קארדקום לסליקת אשראי, הפקת חשבוניות מס וקבלות אוטומטית
by @skills-il
יצירה ואימות של חשבוניות אלקטרוניות בתקן רשות המסים הישראלית
רוצים לבנות סקיל משלכם? נסו את יוצר הסקילס · הגשת סקיל