הגדרה ראשונית - בקשת הAPI
פרמטרים נדרשים
- station id (מזהה תחנה)
- plugin (שם הממשק)
- company (מזהה חברה)
- netPassportID (מזהה ספק)
- Token (טוקן)
לאבטחת המידע יש לבנות מנגנון דו כיווני. כלומר, לא די להגדיר את צד הלקוח ונתוני הלקוח, אלא יש להגדיר גם את צד הספק. לכן, יש להחתים את הנתונים בכל קריאת API, בין אם מעוניינים לקרוא נתונים מתוך מסד הנתונים של חשבשבת, ובין אם מעוניינים לשלוח נתונים למסד הנתונים של חשבשבת.
חתימת הנתונים
- עבור הטוקן שנוצר, יש להמיר את הנתונים
(pluginData)
למחרוזת (string), לשרשר את הטוקן למחרוזת ולשלוח את המחרוזת שנוצרה(pluginData+token)
לחתימה במופע של הספרייה md5. יש לוודא שאין רווחים במחרוזת שיוצרים אחרת תתקבל שגיאה על החתימה (netPassportError) והקריאה לא תעבור
עבור כל שפת תכנות יש להשתמש בספרייה באופן המתאים. 2. עבור השדה netPassportID יש לשים את שם הספק שהוגדר בהגדרות Hconnect בחשבשבת
דוגמת קוד ב- JavaScript
const md5 = require('md5')
let moduleData = [{ "ItemKey": "A2000" }]
let signature = md5(`${JSON.stringify(moduleData)}0F60xxxxxxxxxxxxxxxxxxxxxxxBBE5`);
let body = {
"station": "5b10c834-xxxxxxxxx-047327ffc77c",
"plugin": "itemin",
"company": "demo",
"message": {
"netPassportID": "25***5",
"pluginData": moduleData
},
"signature": signature
}
console.log(JSON.stringify(body))
let config = {
url: 'https://ws.wizground.com/api',
method: 'post',
headers: {
'Content-Type': 'application/json'
},
data: body
}
axios(config)
.then(function (response) {
res.send(JSON.stringify(response.data))
})
.catch(function (error) {
res.send(JSON.stringify(error.response.data))
})