WEBHOOK (וובהוק) - דיווח למערכת חיצונית - הוראת קבע ל צד ג'
דיווח למערכת חיצונית הוראת קבע
שימו לב.
עליך לדעת לטפל בדיווח כפול. ניתן לבדוק דיווחים כפולים לפי המספר עסקה עם פרטר InternalDealNumber.
מערכת הוראות קבע מאפשרת דיווח בעת שינוי סטטוס של ההוראה (עובד בפורטים 80 ו 443).
הגדרות :
לביצוע הגדרת הדיווח עבור בסרגל הכלים אל > הגדרות -> 6.הוראת קבע -> 1.הגדרות כלליות . יש להגיד לחלק "למפתחים"

1.יש לסמן דיווח למערכת חיצונית - פעיל.
2. כתובת לדיווח POST : יש למלא את שדה הכתובת לדיווח בPOST
3.שדה סוד להוספה בדיווח (שדה מומלץ) : מחרוזת שתשלח בנוסף לפרמטרים של ההוראה לווידוי כי נשלח משרתי קארדקום.
4. בצע דיווח MasterRecurring - יש לבחור את סוג הדיוח לרשומה מסוג MasterRecurring , שינוי בכול שדה - יבוצע דיוח בכול שינוי בשדה. או "בשינוי שדה בהוראה פעילה בלבד" יבוצע דיווח רק אם ההוראה הופעלה או בוטלה ( לא יהיה דיוווח כאשר יתעדכן שדה אחר)
ישנם שתי סוגי התראות :
1. התראה בעת יצירה של הוראה לחיוב. RecordType=MasterRecurring
2. התראה בעת חיוב בפועל או שינוי סטטוס של חיוב בפועל. DetailRecurring=RecordType
לדוגמה:
משתמש יצר הוראה לחיוב של 12 חיובים על 100 ש"ח לתשלום. תתקבל התראה מסוג RecordType=MasterRecurring.
לאחר מכן במשך 12 חודשים יתקבלו 12 התראות של ביצוע חיוב מסוג DetailRecurring=RecordType .
התראה מסוג הוראה לחיוב RecordType=MasterRecurring:
המערכת תבצע התראה כאשר :
יצירה של הוראה חדשה .
שינוי סטטוס פעיל , לא פעיל/פעיל .
יש ניסיון לחיוב שנכשל.
אפשר להגדיר שהמערכת תדווח על כל שינוי בשדות אם תלכו ל- הגדרות -> 6 -> 1 וב''בצע דיוח כאשר''
תבחרו ב''כול שינוי בשדות''.
טבלת פרמטרים :
מספר | פרמטר | ערכים אפשריים לדוגמא | תיאור |
1 | AccountId | 123 | מזהה יחוד של לקוח |
2 | RecurringId | 2000 | מספר ההוראה לחיוב שרוצים |
3 | RecordType | "MasterRecurring" | סוג ההוראה |
4 | Secret | "Th3_$1cret" | סוד להוספה בדיווח |
5 | TerminalNumber | 1000 | מספר הטרמינל |
6 | InternalDecription | "קורס השתלמות" | תאור שם להוראה לחיוב |
7 | CreateDate | 01/04/2016 | תאריך פתיחה |
8 | LastProssesDate | 10/04/2016 | תאריך חיוב אחרון |
9 | NextDateToBill | 10/05/2016 | תאריך חיוב הבא |
10 | TotalNumOfBills | 3 | מספר תשלומים |
11 | NumOfPaymentsAlreadyCharged | 2 | תשלומים שחויבו |
12 | IsActive | true | הוראה פעילה |
13 | TimeIntervalId |
| מרווח חיוב |
14 | FinalDebitCoinId | 1 - שקל | קוד מטבע לחיוב |
15 | IsInvoiceCreate | true / false | צור חשבונית |
16 | Comments | ''שילם במזומן 200'' | הערות פנימיות (לא ללקוח) |
17 | IsPrintNumOfPayments | true / fasle | הדפס מס' תשלומים |
18 | DepartmentId | 57 | קוד מחלקה |
19 | UserId | 23 | קוד סוכן |
20 | IsByProducts |
|
|
21 | FlexItem.InvoiceDescription | ''קורס בישול'' | תיאור החשבונית |
22 | FlexItem.Price | 150 | המחיר החודשי לתשלום |
23 | FlexItem.ProductId | 1000215 | מק''ט- קוד פריט(במידה ויש) |
24 | FlexItem.IsLinkTo | true / false | האם לבצע הצמדה |
25 | FlexItem.IsPriceIncludeVat | true \ false | מחיר פריט עם/בלי מע"מ |
26 | FlexItem.OpenRateForLinkTo | 0.0000 | מדד בסיס |
27 | IsReNewOrder | true \ fasle | חידוש מחזורי פעיל |
28 | IsPrintBillMonth | true \ false | הדפס עבור חודש X |
התראה מסוג חיוב בפועל DetailRecurring=RecordType .
1.המערכת תבצע התראה בעת שינוי סטטוס של הרשומה:
רשימה ערכי Status:
מספר | תיאור | ערך |
1 | חויב בהצלחה | "SUCCESSFUL" |
2 | ממתין לחיוב אשראי | "PENDINGFORPROCESSING" |
3 | ממתין לחיוב אוטומטי | "DEBTAUTOBILLING" |
4 | סומן ידני כחוב אבוד | "LOSTDEBT" |
5 | סומן ידני כשולם באמצעי תשלום אחר | PAYBYOTHERE |
6 | הוקפא ידני | "ONHOLD" |
7 | אחר | ''OTHER'' |
רשימה מלאה של כל הפרמטרים :
מספר | פרמטר | ערכים אפשריים לדוגמא | תיאור |
1 | AccountId | 123 | מזהה יחוד של לקוח |
2 | RecurringId | 160 | מספר ההוראה לחיוב שרוצים |
3 | RowID | 140 | מזהה חיוב |
4 | RecordType | "DetailRecurring" | סוג הוראה |
5 | Secret | ''סוד'' | סוד להוספה בדיווח |
6 | Status | "SUCCESSFUL" | סטטוס חיוב |
7 | TerminalNumber | 1000 | מספר המסוף לחיוב |
8 | CreateDate | 01/05/2020 | תאריך פתיחה |
9 | InvoiceDescription | " קורס X '' | תיאור לחשבונית |
10 | LastBillDate | 10/05/2021 | תאריך חיוב אחרון |
11 | OriginalNextDateToBill | 10/05/2020 | תאריך חיוב מקורי |
12 | FinalDebitCoinId | 1 - שקל | קוד מטבע לחיוב |
13 | DepartmentId | 55 | קוד מחלקה |
14 | IsInvoiceCreate | true / false | האם ליצור חשבונית |
15 | UserId | 55 | קוד סוכן |
16 | PaymentNum | 2 | תשלום מס' |
17 | IsReNewOrder | true \ false | חידוש מחזורי פעיל |
18 | ProductId | 652 | קוד פריט - מק"ט |
19 | DocumentType | 1 - "חשבונית קבלה" | סוג המסמך שהופק - יש להתחבר ל וובהוק של מסמכים (כי החשבונית מופקת באיחור מהחיוב) |
20 | DocumentNumber | 22 | מספר מסמך - יש להתחבר ל וובהוק של מסמכים (כי החשבונית מופקת באיחור מהחיוב) |
21 | Quantity | 1 | כמות |
22 | IsIncludesVAT | true \ false | האם כולל מע''מ |
23 | VAT | 0.17 | מע''מ |
24 | Sum | 125.50 | סכום לחיוב עשרוני בפועל |
25 | SumNoVat | 110.50 | סכום לחיוב ללא מע''מ |
26 | InternalDealNumber | 88365478 (int64) | מספר חיוב כרטיס אשראי |
27 | ResposeCode | 0 | קוד תשובה מחברת האשראי |
28 | ProcessID | 1 | מספר תהליך חיוב |
29 | BillingAttempts | 1 | מספר ניסיונות חיוב |
30 | ActualBillingType | BankOrder \ CreditCard | אמצעי תשלום אשראי/בנק |
31 | ReturnValue | מחרוזת 50 | ערך להחזרה - מועבר בעת יצירה של הוראה בממשק או בעריכה ידנית של הוראה לחיוב |
32 | UID | מחרוזת | מזהה עסקה יחודי מול שבא |
בדיקות לוגים לדיווחים צג ג':
ניתן לבדוק את סטטוס הדיווחים דרך מערכת הניהול :
כדי לבדוק את סטוטס דיווח RecordType=MasterRecurring יש להיכס אל : הוראת קבע -> דוח רישום הוראות לחיוב.
כדי לבדוק את סטוטס דיווח RecordType=DetailRecurring יש להיכנס אל : הוראת קבע -> דוח היסטורית חיובים.
יש להוסיף בבוחר השדות את שדות :
1. ממשקים - תשובת ממשק - מה הטקסט שחזר השרת שמקבל את ה WEBHOOK או שגיאת ה HTTP
2. ממשקים - תאריך נסיון הבא - תאריך ניסיון הבאה לפנייה לשרת שמקבל את ה WEBHOOK
3. ממשקים - מספר נסיונות - כמה פעמים כבר ניסינו
4. ממשקים - האם לבצע דיווח ? - אם כן אז המערכת תבצע דיווח נוסף ( או ראשון) אם לא - לא יבוצע יותר דיווחים

לתרגום הדיווח מגיע ב URL ENCODE ניתן להיעזר באתר הבא לבצע תרגום לשדות :
https://meyerweb.com/eric/tools/dencoder
אתרי טסטים לדיווחי WEBHOOK :
במידה ואתה מפתח ועדין אין שרת ONLINE אתה יכול להשתמש באחד הארתרים הבאים לבצע בדיקות. יש להגדרת את כתובת הדיווח במערכת קארדקום אליהם.
https://pipedream.com
https://webhook.site
https://webhook.cool/
במקרה של תקלה בדיווח עסקה מהשרת של קארדקום לשרת של הלקוח
נדרש לפתוח את כל טווחי הכתובת IP הבאים של קארדקום בחומת האש של החברה (גם ב cloudflare למי שיש)
- 82.80.227.17/255.255.255.248 (CIDR 29) >> מחשבון subnet
- 82.80.222.124/255.255.255.248 (CIDR 29) >> מחשבון subnet
בנוסף יש לפתוח כמובן PORT ים : 80 , 8080 , 443 .