-
@dovid אמר בשליחת POST לנדרים+ ב VBA:
Dim TCRequestItem As Object Set TCRequestItem = CreateObject("WinHttp.WinHttpRequest.5.1") TCRequestItem.Open "POST", "https://www.matara.pro/nedarimplus/V6/Files/WebServices/DebitCard.aspx", False TCRequestItem.setRequestHeader "Content-Type", "application/xml" TCRequestItem.setRequestHeader "Accept", "application/xml" TCRequestItem.send "Mosad=123456&ClientName=&Adresse=&Phone=0512345678&ClientId=&CardNumber=4580458045804580&Tokef=1219&Amount=520&Tashloumim=12&Groupe=&Avour=Yemot&Token=&CVV=123&Zeout=123456789&Currency=1&MasofId=Online" Debug.Print TCRequestItem.responseText
לא עבד, הוא לא מצרף אותם
הפלט הוא
{ "Status" : "Error" , "Message" : "פרמטר Mosad ריק" }
-
@aaaa אמר בשליחת POST לנדרים+ ב VBA:
לא עבד, הוא לא מצרף אותם
הוא כן מצרף אותם. השגיאה היא ששלחת פרמטר מוסד ריק (כמו שכתוב בתגובה וכמו שענה לך @dovid ). תבדוק אם אתה אכן שולח מספר מוסד.
ב-VBA, יתכן גם שאתה משרשר אפילו פרמטר אחר עם ערך NULL - וכל המחרוזת מתאפסת, זה יקרה אם אתה מחבר מחרוזות עם+
במקום עם&
... תשתמש כמובן ב-&
. -
@OdedDvir בדקתי הכל מחובר ב &
אבל הוא לא מצרף אותם
תיכנס לכתובת הזאת
https://www.matara.pro/nedarimplus/V6/Files/WebServices/DebitCard.aspx
בדפדפן ותראהעוד נקודה מצאתי עכשיו דרך חיצונית לעשות את זה
בעזרת curl
רק שבגלל שזה חיצוני, זה קצת מסרבל
אצלו הפקודהcurl --data "Mosad=123456&ClientName=&Adresse=&Phone=0512345678&ClientId=&CardNumber=4580458045804580&Tokef=1219&Amount=520&Tashloumim=12&Groupe=&Avour=Yemot&Token=&CVV=123&Zeout=123456789&Currency=1&MasofId=Online" https://www.matara.pro/nedarimplus/V6/Files/WebServices/DebitCard.aspx
עובדת חלק
-
@aaaa אמר בשליחת POST לנדרים+ ב VBA:
תיכנס לכתובת הזאת
https://www.matara.pro/nedarimplus/V6/Files/WebServices/DebitCard.aspx
בדפדפן ותראהזה - בוודאי יחזיר שגיאה, כי כשאני נכנס לכתובת בדפדפן אני מבצע בקשת GET, לא POST...
עוד נקודה מצאתי עכשיו דרך חיצונית לעשות את זה בעזרת curl
נו נו... זה פשוט מחזק את הטענה שהבקשה לא נשלחת נכון מ-VBA.
-
@OdedDvir אמר בשליחת POST לנדרים+ ב VBA:
@aaaa אמר בשליחת POST לנדרים+ ב VBA:
תיכנס לכתובת הזאת
https://www.matara.pro/nedarimplus/V6/Files/WebServices/DebitCard.aspx
בדפדפן ותראהזה - בוודאי יחזיר שגיאה, כי כשאני נכנס לכתובת בדפדפן אני מבצע בקשת GET, לא POST...
עוד נקודה מצאתי עכשיו דרך חיצונית לעשות את זה בעזרת curl
נו נו... זה פשוט מחזק את הטענה שהבקשה לא נשלחת נכון מ-VBA.
לכאורה הוא התכוון שזה מראה את אותה שגיאה כמו שמראה שגיאה שלא נשלח פרמטרים, ולכן הוא אמר שיש שגיאה בצורת שליחה
-
@aaaa קצת דיבוג יעזור פה. תשנה את הקוד לקוד הבא:
Dim TCRequestItem As Object Set TCRequestItem = CreateObject("WinHttp.WinHttpRequest.5.1") TCRequestItem.Open "POST", "https://www.matara.pro/nedarimplus/V6/Files/WebServices/DebitCard.aspx", False TCRequestItem.setRequestHeader "Content-Type", "application/xml" TCRequestItem.setRequestHeader "Accept", "application/xml" Dim Body As String Body = "Mosad=123456&ClientName=&Adresse=&Phone=0512345678&ClientId=&CardNumber=4580458045804580&Tokef=1219&Amount=520&Tashloumim=12&Groupe=&Avour=Yemot&Token=&CVV=123&Zeout=123456789&Currency=1&MasofId=Online" Debug.Print Body Stop TCRequestItem.send Body Debug.Print TCRequestItem.responseText
וכשהוא מגיע לנקודת העצירה ב
Stop
תבדוק מה מודפס בחלון Immediate (ה"קונסול" של VBA)
(כמובן שתבנה את Body כפי שאתה רוצה לשלוח באמת...) -
@OdedDvir אמר בשליחת POST לנדרים+ ב VBA:
@aaaa קצת דיבוג יעזור פה. תשנה את הקוד לקוד הבא:
Dim TCRequestItem As Object Set TCRequestItem = CreateObject("WinHttp.WinHttpRequest.5.1") TCRequestItem.Open "POST", "https://www.matara.pro/nedarimplus/V6/Files/WebServices/DebitCard.aspx", False TCRequestItem.setRequestHeader "Content-Type", "application/xml" TCRequestItem.setRequestHeader "Accept", "application/xml" Dim Body As String Body = "Mosad=123456&ClientName=&Adresse=&Phone=0512345678&ClientId=&CardNumber=4580458045804580&Tokef=1219&Amount=520&Tashloumim=12&Groupe=&Avour=Yemot&Token=&CVV=123&Zeout=123456789&Currency=1&MasofId=Online" Debug.Print Body Stop TCRequestItem.send Body Debug.Print TCRequestItem.responseText
וכשהוא מגיע לנקודת העצירה ב
Stop
תבדוק מה מודפס בחלון Immediate (ה"קונסול" של VBA)
(כמובן שתבנה את Body כפי שאתה רוצה לשלוח באמת...)בדקתי בשבילו.. (גם לי יהיה שימוש עם אצליח לסלוק דרך אקסס)
זה מחזיר את כל הערכים עם & בין אחד לשני,
אבל כשאני ממשיך ותכלס שולח זה עושה לי ERORR(ככה זה מחזיר [מספר מוסד הראשון שמצאתי בנדרים])
Mosad=7006059&ClientName=&Adresse=&Phone=0512345678&ClientId=&CardNumber=4580458045804580&Tokef=1219&Amount=520&Tashloumim=12&Groupe=&Avour=Yemot&Token=&CVV=123&Zeout=123456789&Currency=1&MasofId=Online { "Status" : "Error" , "Message" : "פרמטר Mosad ריק" }
-
@aaaa קח תהנה.
Dim XMLHTTP Dim result As String Dim argumentString argumentString = "Mosad=7006356&ClientName=&Adresse=&Phone=0345677765&ClientId=&CardNumber=4580458045804580&Tokef=0776&Amount=1&Tashloumim=1&Groupe=&Avour=Yemot&Token=&CVV=386&Zeout=123456789&Currency=1&MasofId=Online" Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0") XMLHTTP.Open "POST", _ "https://www.matara.pro/nedarimplus/V6/Files/WebServices/DebitCard.aspx", False XMLHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded; charset=UTF-8" XMLHTTP.send argumentString result = XMLHTTP.responsetext Set XMLHTTP = Nothing Debug.Print result
בדקתי אצלי וזה עובד
-
-
-
לסגירת הנושא רק-
הנה פירות עמלינו, קצת קימפלתי וערכתי,
תהנו.
https://tchumim.com/topic/13007/ -
-
-
-
-
-