API לשליחת הודעות SMS
ממשק שליחת ה-SMS של מיקרופיי מאפשר לשלוח הודעות סמס לרשימה של מספרי טלפון או לרשימות תפוצה, ישירות ממערכות מחשוב, מערכות CRM, אתרים ואפליקציות. השליחה מתבצעת ב-API בפרוטוקול HTTPS סטנדרטי, בשיטת HTTP GET או POST רגילה או בפורמט JSON, ותומכת בתזמון, בהתראות לשרת שלך ובהודעות מותאמות אישית לכל נמען.
סקירת הממשק
ניתן לבצע שליחה של הודעות סמס לרשימות תפוצה או לרשימה של מספרי טלפון ישירות ממערכות מחשוב שונות, מערכות CRM, אתרים ועוד. המערכת מחזירה תשובה ראשונית מיידית המאשרת שהשליחה התקבלה ונכנסה לתור, וכוללת את קוד הקמפיין שניתן לשמור למעקב, לבדיקת סטטוס או למחיקה עתידית.
כתובת הממשק ושיטת השליחה
הכתובת לפנייה לממשק שליחת הודעות הסמס היא:
https://www.micropay.co.il/extApi/scheduleSms.php
לכתובת זו מוסיפים את הפרמטרים המתאימים. חלק מהפרמטרים הם חובה וחלקם רשות. יש לשלוח את כל שמות הפרמטרים באותיות קטנות (Lower Case). ניתן להעביר את הפרמטרים בשיטת GET או POST, או לשלוח אותם בגוף הבקשה בפורמט JSON.
אימות וטוקן
כל קריאה דורשת פרמטר token, טוקן שיצרת במערכת עם הרשאת שירותי סמס.
שליחה מחשבון תת מנהל: אם הגדרת חשבון לתת מנהל ואפשרת לו לשלוח הודעות סמס, הוא יכול לשלוח דרך הממשק באמצעות token שהוא יצר בעצמו,
או שאתה יצרת עבורו עם שיוך לתת המנהל שלו.
פרמטרים
פרמטרים בסיסיים
| פרמטר | חובה | תיאור |
|---|---|---|
token | חובה | טוקן הזדהות שיצרת במערכת, עם הרשאת שירותי סמס. |
from | חובה | זיהוי שולח ההודעה: מספר טלפון או טקסט. מספר טלפון חייב להיות מספר שעבר אימות במערכת, ללא רווחים או מקף. זיהוי טקסט יכול להכיל בין 2 ל-11 תווים: אותיות באנגלית, ספרות, והתווים רווח, פלוס וכוכבית. אם הוגדר זיהוי שולח קבוע בהגדרות הטוקן, הוא משמש כברירת מחדל וניתן לוותר על פרמטר זה. |
msg | חובה | תוכן ההודעה. ניתן לשלוח עד 1000 תווים, מומלץ בקידוד UTF-8. לגבי מתי לבצע url encode ומתי לא, ראו אפשרויות שליחה וקידוד. ראו פרטים על אורך ההודעה והחיוב בהמשך. (כשמשתמשים ב-listjson אין לשלוח פרמטר זה.) |
get / post | חובה | מציין למערכת באיזו שיטה נשלחו הפרמטרים. יש לשלוח אחד מהם בלבד: get=1 בשליחת GET, או post=2 בשליחת POST. הפרמטר אינו משנה את שיטת השליחה בפועל, אלא רק מצהיר עליה. (בפורמט JSON אין צורך בפרמטר זה.) |
קביעת הנמענים
יש לשלוח אחד מבין שני הפרמטרים הבאים, לפי יעד השליחה:
| פרמטר | חובה | תיאור |
|---|---|---|
list | לפי הצורך | רשימת מספרי טלפון מופרדים בפסיק, לשליחה ישירה. לדוגמה list=0501234567,0541234567. מומלץ ספרות בלבד, בפורמט מקומי או בינלאומי. ניתן לשלוח עד כ-10,000 מספרים בשליחה בודדת. |
pid | לפי הצורך | רשימת קודים של רשימות תפוצה המוגדרות במערכת, מופרדים בפסיק, לשליחה לרשימת תפוצה. לדוגמה pid=12345,23456. |
פרמטרים נוספים (רשות)
| פרמטר | חובה | תיאור |
|---|---|---|
desc | רשות | תיאור קצר של נושא ההודעות, לזיהוי הקמפיין במערכת. שים לב: המערכת אינה שומרת קמפיין שנשלח למספר טלפון בודד. |
np | רשות | מספר טלפון סלולרי לקבלת התראות על תחילת וסיום השליחה ועל תקלות. 10 ספרות, ללא רווח או מקף. |
ne | רשות | כתובת דואר אלקטרוני לקבלת התראות על תחילת וסיום השליחה ועל תקלות. לא ניתן לשלוח פרמטר זה בשליחה למספר בודד. |
nu | רשות | כתובת עמוד אינטרנט בשרת שלך לקבלת התראות על מהלך השליחה. ראו הרחבה בסעיף התראות לשרת שלך. |
validate | רשות | הפעלת מנגנון ווידוא קליטת המספרים. בשליחה רגילה (GET/POST) יש לשלוח אותו ללא ערך וכפרמטר האחרון בפנייה. בשליחת JSON שלחו "validate":1 בכל מקום בגוף הבקשה. ראו סעיף ווידוא קליטת המספרים. |
פרמטרים לתזמון תאריך ושעה
לתזמון השליחה יש לשלוח את כל חמשת הפרמטרים יחד. ברירת המחדל, ללא תזמון, היא מועד שליחת הבקשה.
| פרמטר | חובה | תיאור |
|---|---|---|
dh | לתזמון | שעה בפורמט 24 שעות, מספר בין 00 ל-23. |
di | לתזמון | דקות, מספר בין 00 ל-59. |
dy | לתזמון | שנה, בארבע ספרות. |
dm | לתזמון | חודש בשתי ספרות, מספר בין 01 ל-12. |
dd | לתזמון | יום בשתי ספרות, מספר בין 01 ל-31. |
אורך ההודעה, קידוד וחיוב
הודעת סמס בסיסית מכילה עד 140 תווים באנגלית או 70 תווים בכל שפה אחרת (כולל עברית). המערכת מאפשרת לשלוח הודעות ארוכות של עד 1000 תווים, אשר יגיעו כהודעה אחת ארוכה ללקוח. כאשר ההודעה ארוכה מ-70 תווים, המערכת מחשבת כל 67 תווים כהודעה בודדת (134 באנגלית), והעלות תלויה בכמות התווים בהודעה לפי החבילה שרכשת.
- קידוד הטקסט תלוי בצורת השליחה (מתי לבצע url encode ומתי לא), ראו אפשרויות שליחה וקידוד.
- ירידת שורה נספרת כשני תווים (CRLF). כדי להוסיף ירידת שורה בהודעה: בשליחה רגילה הוסיפו
%0D(התו CR), שנספר כתו אחד; בשליחת JSON השתמשו ב-\rבתוך הטקסט. ירידת שורה מלאה היא%0D%0A(או\r\nב-JSON) ונספרת כשני תווים. - ניתן לשלוח אימוג'ים בהודעה (רק בקידוד UTF-8) על ידי שליחת האימוג'י עצמו. מומלץ לבדוק בטסט שהאימוג'י נתמך במכשיר. אפשר להעתיק אימוג'ים לדוגמה מ- emojicopy.com.
דוגמאות קוד
הדוגמאות מוצגות ב-cURL. לכל מצב מוצגת דוגמה בסיסית בפרמטרים (name=value), דוגמה בסיסית ב-JSON, ודוגמה מלאה ב-JSON עם הפרמטרים הנפוצים.
שליחה לרשימת מספרים
curl "https://www.micropay.co.il/extApi/scheduleSms.php?get=1&token=XXXXX&from=035555555&msg=test%20message&list=0501234567"curl -X POST https://www.micropay.co.il/extApi/scheduleSms.php \ -H "Content-Type: application/json" \ -d '{"token":"XXXXX","from":"035555555","msg":"test message","list":"0501234567,0541234567"}'
curl -X POST https://www.micropay.co.il/extApi/scheduleSms.php \ -H "Content-Type: application/json" \ -d '{ "token": "XXXXX", "from": "035555555", "msg": "הודעת השירות שלך", "list": "0501234567,0541234567", "desc": "קמפיין יוני", "np": "0501112222", "ne": "alerts@mysite.co.il", "dh": "09", "di": "30", "dy": "2026", "dm": "06", "dd": "20" }'
שליחה לרשימת תפוצה
# שליחה לרשימת תפוצה לפי קוד מאגר curl "https://www.micropay.co.il/extApi/scheduleSms.php?get=1&token=XXXXX&from=035555555&msg=test%20message&pid=4898"
curl -X POST https://www.micropay.co.il/extApi/scheduleSms.php \ -H "Content-Type: application/json" \ -d '{"token":"XXXXX","from":"035555555","msg":"test message","pid":"4898,5012"}'
Content-Type: application/json, כפי שמופיע בדוגמאות.
אם אינך יכול לקבוע כותרות בבקשה, תוכל במקום זאת להוסיף json=1 כפרמטר בכתובת ה-URL ולשלוח את גוף ה-JSON ב-POST. ערכי list ו-pid נשלחים כמחרוזת מספרים מופרדת בפסיק, כמו בשליחה הרגילה.
תשובת השרת
המערכת מחזירה תשובה ראשונית מיידית. בקריאה רגילה התשובה מתקבלת כטקסט פשוט; בקריאת JSON מוחזר מבנה אחיד {status, message, data} שבו data.taskId הוא קוד הקמפיין, ו-data כולל תמיד את remoteIP.
תשובה רגילה (טקסט)
# הצלחה: OK ואחריו קוד הקמפיין שהוקצה OK 34556 # שגיאה: ERROR ואחריו תיאור ERROR --> Description: from parameter, sender id not approved
תשובה ב-JSON
// התקבל בהצלחה ונכנס לתור {"status":1,"action":"sendsms","message":"OK","data":{"taskId":"34556","remoteIP":"203.0.113.10"}} // שגיאת פרמטר {"status":0,"message":"ERROR","data":{"description":"from parameter, sender id not approved","remoteIP":"203.0.113.10"}}
טבלת קודי תשובה
| ערך | status ב-JSON | משמעות |
|---|---|---|
OK | 1 | הבקשה תקינה ונכנסה לתור. בטקסט מופיע אחריו קוד הקמפיין; ב-JSON הקוד נמצא ב-data.taskId. שמור אותו למעקב, בדיקת סטטוס או מחיקה. |
ERROR | 0 | שגיאה באחד הפרמטרים. בטקסט מופיע רווח ותיאור השגיאה; ב-JSON התיאור נמצא ב-data.description. |
ווידוא קליטת המספרים
להפעלת מנגנון הווידוא הוסיפו את הפרמטר validate. בשליחה רגילה (GET/POST) יש לשלוח אותו ללא ערך וכפרמטר האחרון בפנייה. בשליחת JSON שלחו "validate":1 בכל מקום בגוף הבקשה.
# validate נשלח אחרון, ללא ערך curl "https://www.micropay.co.il/extApi/scheduleSms.php?get=1&token=XXXXX&from=035555555&msg=test%20message&list=0501234567&validate"
curl -X POST https://www.micropay.co.il/extApi/scheduleSms.php \ -H "Content-Type: application/json" \ -d '{"token":"XXXXX","from":"035555555","msg":"test message","list":"0501234567","validate":1}'
בתשובה יתווסף נתון נוסף:
# שליחה לרשימת מספרים: מספר הטלפונים שזוהו, ואז קוד הקמפיין OK 250 34556 # שליחה לרשימת תפוצה OK VALID 34556
// שליחה לרשימת מספרים: count = כמות הטלפונים שזוהו {"status":1,"action":"sendsms","message":"OK","data":{"count":250,"taskId":"34556","remoteIP":"203.0.113.10"}} // שליחה לרשימת תפוצה: valid = true {"status":1,"action":"sendsms","message":"OK","data":{"valid":true,"taskId":"34556","remoteIP":"203.0.113.10"}}
הודעות מותאמות אישית לכל נמען
ניתן לבצע שליחה מרוכזת של הודעות מותאמות אישית לרשימת מספרים, באמצעות הפרמטר listjson. הערך שלו הוא אובייקט JSON הממפה כל מספר טלפון לטקסט ההודעה שלו:
{"0540000000":"message number 1","0500000000":"message number 2"}- יש להסיר מהפנייה את הפרמטרים
listו-msg, שכןlistjsonמחליף את שניהם. - בשליחה רגילה (GET/POST):
listjsonהוא פרמטר טופס (application/x-www-form-urlencoded) שערכו מחרוזת JSON, ויש לבצע עליו url encoding. עדיף לשלוח ב-POST בגלל אורך הרשימה. - בשליחת JSON: שלחו את
listjsonכאובייקט מקונן בתוך גוף ה-JSON (ללא url encoding). - מומלץ עד כ-10,000 מספרים בכל שליחה.
# listjson כפרמטר טופס (form-urlencoded); cURL מבצע את ה-url encode curl -X POST https://www.micropay.co.il/extApi/scheduleSms.php \ --data-urlencode "post=2" \ --data-urlencode "token=XXXXX" \ --data-urlencode "from=test" \ --data-urlencode 'listjson={"0540000000":"message number 1","0500000000":"message number 2"}'
# listjson כאובייקט מקונן בתוך גוף ה-JSON curl -X POST https://www.micropay.co.il/extApi/scheduleSms.php \ -H "Content-Type: application/json" \ -d '{ "token": "XXXXX", "from": "test", "listjson": { "0540000000": "message number 1", "0500000000": "message number 2" } }'
התראות לשרת שלך
כדי לקבל התראות על מהלך השליחה לעמוד בשרת שלך, הוסף בפנייה את הפרמטר nu עם כתובת העמוד. ההתראות נשלחות בשיטת GET עם הפרמטרים
msg (סוג ההתראה), tid (קוד הקמפיין) ו-info (מידע נוסף, אם קיים):
http://www.yoursite.co.il/alert.asp?get=1&msg=END&tid=34556&info=589
אותן התראות יכולות להישלח גם בסמס או במייל (לפי np / ne). סוגי ההתראות:
| ערך msg | תוכן info | משמעות |
|---|---|---|
START | ללא | החלה שליחת ההודעות. |
END | כמות שנשלחו | הסתיימה שליחת ההודעות. info מכיל את מספר ההודעות שנשלחו. |
STOP | כמות שנשלחו | בוצעה עצירה יזומה של השליחה. info מכיל את מספר ההודעות שנשלחו. |
NO_MSG_LEFT | כמות שנשלחו | השליחה הופסקה כי לא נותרו הודעות סמס בחשבון. info מכיל את מספר ההודעות שנשלחו. |
NO_USERS_FOUND | ללא | לא נמצאו מספרים ברשימת התפוצה שניתן לשלוח להם (רשימה ריקה, או כל המספרים הגיעו למקסימום ההודעות שהוגדר). |
ERROR | ללא | אירעה שגיאה בתהליך שליחת ההודעות. |
UNKNOWN_ERROR | ללא | אירעה שגיאה לא מוכרת. |
CP_SEND_ERROR | מספרים תקולים | שגיאה בשליחה לחלק מהמספרים או לכולם. נשלח רק במייל או לעמוד אינטרנט, ו-info מכיל תמיד את רשימת המספרים התקולים מופרדים בפסיק. |
שאלות נפוצות
לכמה מספרי טלפון אפשר לשלוח SMS בפנייה אחת?
ניתן לשלוח עד כ-10,000 מספרים בשליחה בודדת. בשליחה לעד 10 מספרים ניתן להשתמש ב-GET, ומעל 10 מספרים יש לשלוח ב-POST (או JSON).
כמה תווים אפשר לשלוח בהודעת SMS אחת?
הודעה בסיסית מכילה עד 70 תווים בעברית (140 באנגלית). ניתן לשלוח עד 1000 תווים שיגיעו כהודעה אחת, כאשר כל 67 תווים בעברית (134 באנגלית) נספרים כהודעה בודדת לצורך חיוב.
איך שולחים הודעות מותאמות אישית לכל נמען?
באמצעות הפרמטר listjson שממפה כל מספר לטקסט שלו, לאחר הסרת list ו-msg. בשליחה רגילה כפרמטר טופס (form-urlencoded) עם url encoding, ובשליחת JSON כאובייקט מקונן בגוף הבקשה. ראו הודעות מותאמות אישית.
איך מתזמנים שליחת SMS לתאריך ושעה עתידיים?
שולחים יחד את חמשת פרמטרי התזמון: dh, di, dy, dm, dd. ברירת המחדל ללא תזמון היא מועד שליחת הבקשה.
איך יודעים אם השליחה התקבלה בהצלחה?
התשובה המיידית מתחילה ב-OK ואחריו קוד הקמפיין (ב-JSON: data.taskId). להוספת ווידוא של כמות המספרים שזוהו הוסיפו את הפרמטר validate (בשליחה רגילה כפרמטר אחרון, בשליחת JSON בכל מקום).