דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. יצירת מסמכים דרך ה API של EZcount - אקסס

יצירת מסמכים דרך ה API של EZcount - אקסס

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 5 כותבים 357 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מלאמ מנותק
    מלאמ מנותק
    מלא
    כתב ב נערך לאחרונה על ידי מלא
    #1

    אני מנסה ליצור חשבוניות ב EZCount
    עם הAPI שלהם, דרך אקסס VBA
    בינתיים הולך קש, לא מצאתי משהו שעובד.

    שאלתי:
    א. האם יש דרך להבין מתוך האפשרויות שEZcount מחזיר, מה צריך לשנות כדי שיעבוד. (בדקתי ב jsonlint.com שהJSON תקין)
    ב. אם לא, האם מישהו יודע על משהו שעובד באקסס בשביל זה?
    ג. תחליף. מדובר במערכת שבנויה באקסס כבר כמה שנים, עכשיו רוצים להוסיף חשבוניות. האם יש דרך להכניס משהו חיצוני, תוסף או משהו כזה, שמיוצר בC# או VB שיתקשר עם השרת?. (אאל"ט בעבר דיברו כאן מאפשרות כזאת)

    כאן המסמך של הAPI שלהם


    זה קוד השליחה:

    Function httpPost(url, msg)
        With CreateObject("WinHttp.WinHttpRequest.5.1")
            .Open "POST", url, False
            .setRequestHeader "Content-type", "application/json"
            .send msg
            httpPost = .responseText
        End With
    End Function
    
    Sub Test()
        Body = "{""api_key"": ""b3b....1"",""developer_email"": ""myMail@gmail.com"",""type"": ""405"",""customer_name"": ""My name"",""payment"": ""[{""payment_type"": ""1"",""date"": ""10/10/2020"",""payment_sum"": ""2""}]""}"
        Debug.Print httpPost("https://www.ezcount.co.il/api/createDoc", JsonConverter.ConvertToJson(Body))
    End Sub
    

    וזה מה שמתקבל:

        "errMsg": "no data sent, please send a GET, POST or JSON request.,known causes for getting this error:, 1.you are using a none SSL connection (http), 2.your JSON is not valid, please validate your json at: jsonlint.com, 3.you are sending a JSON as GET request instead of POST, 4.your request header is not lower case (application\/json) and you are using ASP classic",
        "errMsgPretty": [
            "no data sent, please send a GET, POST or JSON request.",
            "known causes for getting this error:",
            " 1.you are using a none SSL connection (http)",
            " 2.your JSON is not valid, please validate your json at: jsonlint.com",
            " 3.you are sending a JSON as GET request instead of POST",
            " 4.your request header is not lower case (application\/json) and you are using ASP classic"
        ],
        "success": false,
        "unixtime": 1618412221
    
    
    dovidD clickoneC 2 תגובות תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב למלא ב נערך לאחרונה על ידי
      #2

      @מלא הJSON לא תקין.
      אחרי הpayment צריך מייד להתחיל [ ללא מרכאות. וכן בסוף אחרי סיום המערך צריך להיות ללא מרכאות אחרי הסוגר המרובע, ככה:

       Body = "{""api_key"": ""b3b....1"",""developer_email"": ""myMail@gmail.com."",""type"": ""405"",""customer_name"": ""My name"",""payment"": [{""payment_type"": ""1"",""date"": ""10/10/2020"",""payment_sum"": ""2""}]}"
      

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      מלאמ תגובה 1 תגובה אחרונה
      1
      • מלאמ מנותק
        מלאמ מנותק
        מלא
        השיב לdovid ב נערך לאחרונה על ידי מלא
        #3

        @dovid
        אותה תגובה.

        זה הפלט של ConvertToJson אם משנה.

        "{\"api_key\": \"b3b1c...edaf6d9f\",\"developer_email\": \"myMail@gmail.com\",\"type\": \"405\",\"customer_name\": \"My name\",\"payment\": [{\"payment_type\": \"1\",\"date\": \"10/10/2020\",\"payment_sum\": \"2\"}]}"
        

        מכל החיפושים ברשת, לכאורה זה הקוד לשלוח JSON אבל משום מה זה מחזיר לי שגיאה.

        @OdedDvir יש לך נסיון עם זה?
        (או אולי @clickone )

        OdedDvirO תגובה 1 תגובה אחרונה
        0
        • clickoneC מנותק
          clickoneC מנותק
          clickone
          השיב למלא ב נערך לאחרונה על ידי
          #4

          @מלא אמר ביצירת מסמכים דרך ה API של EZcount - אקסס:

          ג. תחליף. מדובר במערכת שבנויה באקסס כבר כמה שנים, עכשיו רוצים להוסיף חשבוניות. האם יש דרך להכניס משהו חיצוני, תוסף או משהו כזה, שמיוצר בC# או VB שיתקשר עם השרת?. (אאל"ט בער דיברו כאן מאפשרות כזאת)

          אני זוכר שלתוכנה כספית יש API עם מימוש של DLL
          מצד שני אם אתה מרוצה כיום (לכאורה אתה רק בהתחלת פיתוח...) הייתי מציע לך לכתוב את זה כDLL של דוטנט ולקשר אותו לאקסס

          אין טסט כמו פרודקשן.

          המייל שלי urivpn@gmail.com

          תגובה 1 תגובה אחרונה
          1
          • OdedDvirO מנותק
            OdedDvirO מנותק
            OdedDvir
            השיב למלא ב נערך לאחרונה על ידי
            #5

            @מלא אמר ביצירת מסמכים דרך ה API של EZcount - אקסס:

            @OdedDvir יש לך נסיון עם זה?

            לא.
            אבל משהו לא מובן לי בקוד הנ"ל.
            מדוע אתה משתמש בפונקציה ConvertToJson על Body, כאשר Body מוגדר כבר כמחרוזת בפורמט Json? הפונקציה אמורה לקבל אובייקט ולהמיר אותו לJson. להערכתי הפונקציה מחזירה לך מחרוזת Json שמכילה אובייקט אנונימי של מחרוזת Json....
            נסה לשלוח את Body ישירות כפרמטר:

            Sub Test()
                Body = "{""api_key"": ""b3b....1"",""developer_email"": ""myMail@gmail.com"",""type"": ""405"",""customer_name"": ""My name"",""payment"": ""[{""payment_type"": ""1"",""date"": ""10/10/2020"",""payment_sum"": ""2""}]""}"
                Debug.Print httpPost("https://www.ezcount.co.il/api/createDoc", Body)
            End Sub
            

            הערה: לא התעמקתי בשינוי של מבנה ה-Json עצמו שהביא @dovid, לצערי אין לי זמן כעת לעבור על הדוקומנטציה של ה-API. פשוט העלתי את הנקודה הנוספת הנ"ל.

            dovidD מלאמ 2 תגובות תגובה אחרונה
            5
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב לOdedDvir ב נערך לאחרונה על ידי
              #6

              @odeddvir החמצתי, ברור שזו הבעיה.

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              4
              • מלאמ מנותק
                מלאמ מנותק
                מלא
                השיב לOdedDvir ב נערך לאחרונה על ידי מלא
                #7

                @odeddvir @dovid
                אכן עובד.

                תודה רבה.

                מנחםמ תגובה 1 תגובה אחרונה
                3
                • מנחםמ מנותק
                  מנחםמ מנותק
                  מנחם
                  השיב למלא ב נערך לאחרונה על ידי
                  #8

                  @מלא
                  אני מצרף דוגמא מאוד בסיסית שעשיתי
                  כמובן שזה לא עומד בכלל בתנאי הכתיבה הנכונים של קוד
                  אבל אם יהיה למישהו תועלת, והיה זה שכרי

                  Function Update1()
                  
                  Dim objHTTP As Object
                  Dim Json As String: Json = ""
                  Dim Body As New Dictionary
                  Dim Bodyitem As New Dictionary
                  Dim Bodypayment As New Dictionary
                     
                  Body.Add "api_key", "f1c85d16197de6d4dc0da51bf"
                  
                  Body.Add "api_email", "demo@ezcount.co.il"
                  Body.Add "Description", "HOK BBNK 12 -655-5555444 "
                  Body.Add "developer_email", "DEVELOPER@example.com"
                  
                  Body.Add "customer_crn", "308358899"
                  Body.Add "customer_address", "השומר 34 בי ברק"
                  Body.Add "customer_phone", "050123456789"
                  Body.Add "type", "400"
                  Body.Add "customer_name", "הרב שלמה שוורץ"
                  Body.Add "customer_email", "612@GMAIL.COM"
                  'Body.Add "developer_phone", "050123456789"
                  'Body.Add "price_total", "380"
                  Body.Add "forceItemsIntoNonItemsDocument", "1"
                  Body.Add "show_items_including_vat", "0"
                  
                  d1 = JsonConverter.ConvertToJson(Body)
                  Bodyitem.Add "catalog_number", "A1"
                   
                  Bodyitem.Add "details", ",תשלום 08"
                  Bodyitem.Add "price", "380"
                  Bodyitem.Add "amount", "1"
                  Bodyitem.Add "vat_type", "NON"
                  'Bodyitem.Add "discount_price", "3"
                  
                  d2 = JsonConverter.ConvertToJson(Bodyitem)
                   
                  d9 = SHARSER(d1, d2, "item")
                   
                  
                  Bodypayment.Add "payment_type", "9"
                  Bodypayment.Add "payment_sum", "380"
                  Bodypayment.Add "other_payment_type_name", "TAHSLUM "
                  d3 = JsonConverter.ConvertToJson(Bodypayment)
                  
                  d9 = SHARSER(d9, d3, "payment")
                   Debug.Print d9
                  'Body.Add "payment", Array("payment_type", "1", "payment_sum", "250")    '"[0,1,2,3,4,5]"
                  
                  
                  Dim Client As New WebClient
                  Dim Response As WebResponse
                  cc = JsonConverter.ConvertToJson(Body)
                  
                  Set Response = Client.PostJson("https://demo.ezcount.co.il/api/createDoc", d9)
                  
                  Debug.Print Response.Content
                  
                  Dim ResponseJson As Object
                  Set ResponseJson = JsonConverter.ParseJson(Response.Content)
                        
                  'ddd = Replace(Response.Content, "\", "")
                  Debug.Print ResponseJson("pdf_link")
                  End Function
                  
                  
                  
                  Function SHARSER(ByVal strJson As String, ByVal subDataJson As String, nameSubJson As String) As String
                  
                  strJson = Mid(strJson, 1, Len(strJson) - 1)
                  SHARSER = strJson & ",""" & nameSubJson & """" & ":[" & subDataJson & "]}"
                  
                  End Function
                  
                  תגובה 1 תגובה אחרונה
                  5
                  • מלאמ מנותק
                    מלאמ מנותק
                    מלא
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @מנחם אמר ביצירת מסמכים דרך ה API של EZcount - אקסס:

                    אני מצרף דוגמא מאוד בסיסית שעשיתי
                    כמובן שזה לא עומד בכלל בתנאי הכתיבה הנכונים של קוד
                    אבל אם יהיה למישהו תועלת, והיה זה שכרי

                    תודה על ההפניה,
                    לציין, הוא משתמש עם הספריה הזאת.

                    תגובה 1 תגובה אחרונה
                    3

                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

                    • התחברו או הירשמו כדי לחפש.
                    • פוסט ראשון
                      פוסט אחרון
                    0
                    • דף הבית
                    • קטגוריות
                    • פוסטים אחרונים
                    • משתמשים
                    • חיפוש
                    • חוקי הפורום