Ver Mensaje Individual
  #1
Antiguo 15 de julio de 2024, 17:58
Paulo
Forero Senior
Última Actividad 17.09.2026 16:22
Posts Posts: 101
Likes enviados Enviados: 25
Likes recibidos Recibidos: 33
Predeterminado Comunicação com maquina de pagamento GLORY
0 Inactivo Inactivo

Hola a todos.

Alguém tem experiencia de comunicar com as maquinas de receber dinheiro da GLORY ?

https://www.glory-global.com/pt-pt/p...-of-sale/ci-5/

Tenho estado a testar a comunicação com objectos da ChilKat, consigo comunicar mas não consigo obter resposta do pagamento.
A comunicação é por HTTP SOAP POST.
O codigo COBOL é adaptado do original VB.NET

Gracias


Código COBOL:
  1.  
  2. ENVIRONMENT     DIVISION.
  3.  DATA            DIVISION.
  4.  WORKING-STORAGE SECTION.
  5.  01  ReturnValue  PIC 9(5).
  6.  01  XMLRESP       PIC X(8196).
  7.  01  WSLOCALFILE   PIC X(256).
  8.  01  ENDPOINT      PIC X(1024).
  9.  01  soapAction    PIC X(1024).
  10.  01  contentType   PIC X(1024).
  11.  01  SOAPRESP      PIC X(1024).
  12.  01  sbRequestBody PIC X(1024).
  13.  01  ERRO          PIC X(1024).
  14.  PROCEDURE       DIVISION.
  15.  
  16.     MOVE "soapenv:Envelope" TO "Tag" OF ChilkatXml1
  17.     INVOKE ChilkatXml1 "AddAttribute" USING "xmlns:soapenv" "http://schemas.xmlsoap.org/soap/envelope/" RETURNING ReturnValue
  18.     INVOKE ChilkatXml1 "AddAttribute" USING "xmlns:bru" "http://www.glory.co.jp/bruebox.xsd" RETURNING ReturnValue
  19.     INVOKE ChilkatXml1 "UpdateChildContent" USING "soapenv:Header" " "
  20.     INVOKE ChilkatXml1 "UpdateChildContent" USING "soapenv:Body|bru:ChangeRequest|bru:Id" "?"
  21.     INVOKE ChilkatXml1 "UpdateChildContent" USING "soapenv:Body|bru:ChangeRequest|bru:SeqNo" "?"
  22.     INVOKE ChilkatXml1 "UpdateChildContent" USING "soapenv:Body|bru:ChangeRequest|bru:SessionID" "?"
  23.     INVOKE ChilkatXml1 "UpdateChildContent" USING "soapenv:Body|bru:ChangeRequest|bru:Amount" 800 *> valor a pagar em centimos
  24.     INVOKE ChilkatXml1 "UpdateAttrAt" USING "soapenv:Body|bru:ChangeRequest|Option" 1 "bru:type" "?" RETURNING ReturnValue
  25.     INVOKE ChilkatXml1 "UpdateAttrAt" USING "soapenv:Body|bru:ChangeRequest|Cash" 1 "bru:type" "?" RETURNING ReturnValue
  26.     INVOKE ChilkatXml1 "UpdateAttrAt" USING "soapenv:Body|bru:ChangeRequest|Cash" 1 "bru:note_destination" "?" RETURNING ReturnValue
  27.     INVOKE ChilkatXml1 "UpdateAttrAt" USING "soapenv:Body|bru:ChangeRequest|Cash" 1 "bru:coin_destination" "?" RETURNING ReturnValue
  28.     INVOKE ChilkatXml1 "UpdateAttrAt" USING "soapenv:Body|bru:ChangeRequest|Cash|Denomination" 1 "bru:cc" "?" RETURNING ReturnValue
  29.     INVOKE ChilkatXml1 "UpdateAttrAt" USING "soapenv:Body|bru:ChangeRequest|Cash|Denomination" 1 "bru:fv" "?" RETURNING ReturnValue
  30.     INVOKE ChilkatXml1 "UpdateAttrAt" USING "soapenv:Body|bru:ChangeRequest|Cash|Denomination" 1 "bru:rev" "?" RETURNING ReturnValue
  31.     INVOKE ChilkatXml1 "UpdateAttrAt" USING "soapenv:Body|bru:ChangeRequest|Cash|Denomination" 1 "bru:devid" "?" RETURNING ReturnValue
  32.     INVOKE ChilkatXml1 "UpdateChildContent" USING "soapenv:Body|bru:ChangeRequest|Cash|Denomination|bru:Piece" "?"
  33.     INVOKE ChilkatXml1 "UpdateChildContent" USING "soapenv:Body|bru:ChangeRequest|Cash|Denomination|bru:Status" "?"
  34. *
  35.     INVOKE ChilkatHttp1 "SetRequestHeader" USING "Connection" "Keep-Alive"
  36.     INVOKE ChilkatHttp1 "SetRequestHeader" USING "SOAPAction" '"ChangeOperation"'
  37.     INVOKE ChilkatHttp1 "SetRequestHeader" USING "Content-Type" "text/xml;charset=UTF-8"
  38.     INVOKE ChilkatHttp1 "SetRequestHeader" USING "Accept-Encoding" "gzip,deflate"
  39. *
  40.     INVOKE ChilkatXml1 "GetXml" RETURNING sbRequestBody
  41.     DISPLAY sbRequestBody.
  42. *
  43.     INVOKE ChilkatStringBuilder1 "Append" USING sbRequestBody RETURNING ReturnValue
  44. *   display "Append ReturnValue " ReturnValue.
  45.    
  46.    
  47.     MOVE 1 TO "VerboseLogging" OF ChilkatHttpResponse1
  48.    
  49.    
  50.     MOVE 600 TO "ConnectTimeout" OF ChilkatHttp1.
  51.     MOVE 600 TO "ReadTimeout" OF ChilkatHttp1.
  52.    
  53.    
  54.    
  55.     INVOKE ChilkatHttp1 "PTextSb" USING "POST" "https://192.168.0.25/axis2/services/BrueBoxService" ChilkatStringBuilder1
  56.                                         "utf-8" "text/xml;charset=UTF-8" 0 0 RETURNING ChilkatHttpResponse1.
  57.                                        
  58.     IF "LastMethodSuccess" OF ChilkatHttp1 = 0
  59.        DISPLAY "ChilkatHttp1 ERRO: "
  60.        MOVE "LastErrorText" OF ChilkatHttp1 TO ERRO
  61.        DISPLAY ERRO
  62.     ELSE
  63.        DISPLAY "ChilkatHttp1 SEM ERRO"
  64.        STOP " ".
  65. *
  66.     IF "LastMethodSuccess" OF ChilkatHttpResponse1 = 0
  67.        DISPLAY "ChilkatHttpResponse1 ERRO: "
  68.        MOVE "LastErrorText" OF ChilkatHttpResponse1 TO ERRO
  69.        DISPLAY ERRO
  70.     ELSE
  71.        DISPLAY "ChilkatHttpResponse1 SEM ERRO"
  72.        STOP " ".
  73.  
  74.  
  75.  
  76.  
  77.      
  78.     stop " fez pedido, resposta :"
  79.    
  80. *   MOVE "TakeResponseBody" TO "UncommonOptions" OF ChilkatHttpResponse1
  81.  
  82.  
  83. *   INVOKE ChilkatHttpResponse1 "GetBodySb" USING sbRequestBody RETURNING ReturnValue
  84. *   INVOKE ChilkatHttpResponse1 "GetBodyXml" USING ChilkatXml1 RETURNING ReturnValue
  85. *   display "GetBodyXml ReturnValue " ReturnValue.
  86. *   INVOKE ChilkatXml1 "GetXml" RETURNING sbRequestBody
  87. *   display "RESPOSTA "
  88. *   DISPLAY sbRequestBody.
  89.    
  90.    
  91.    
  92. *   MOVE "StatusCode" OF ChilkatHttpResponse1 TO ReturnValue.
  93. *   DISPLAY "StatusCode "  ReturnValue.
  94.    
  95.    
  96.    
  97. *   INVOKE ChilkatHttpResponse1 "SaveBodyText" USING 1 "RESPOSTA.XML" RETURNING ReturnValue
  98. *   DISPLAY "StatusCode "  ReturnValue.
  99.    
  100.    
  101. *   MOVE "BodyStr" OF ChilkatHttpResponse1 TO SOAPRESP.
  102. *   DISPLAY "BodyStr"
  103. *   DISPLAY SOAPRESP.
  104.    
  105. *   IF "LastMethodSuccess" OF ChilkatHttpResponse1 = 0
  106. *      DISPLAY "ChilkatHttpResponse1 ERRO: "
  107. *      MOVE "LastErrorText" OF ChilkatHttpResponse1 TO XML
  108. *      DISPLAY XML
  109. *   ELSE
  110. *      DISPLAY "ChilkatHttpResponse1 SEM ERRO"
  111. *      STOP " ".
  112.    
  113.      
  114.      
  115.      
  116. *' This example assumes the Chilkat API to have been previously unlocked.
  117. *' See Global Unlock Sample for sample code.
  118.  
  119. *Dim http As New Chilkat.Http
  120. *Dim success As Boolean
  121.  
  122. *' Use this online tool to generate code from sample XML: Generate Code to Create XML
  123.  
  124. *' The following XML is sent in the request body.
  125.  
  126. *' <?xml version="1.0" encoding="utf-8"?>
  127. *' <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bru="http://www.glory.co.jp/bruebox.xsd">
  128. *'     <soapenv:Header/>
  129. *'     <soapenv:Body>
  130. *'         <bru:ChangeRequest>
  131. *'             <bru:Id>?</bru:Id>
  132. *'             <bru:SeqNo>?</bru:SeqNo>
  133. *'             <bru:SessionID>?</bru:SessionID>
  134. *'             <bru:Amount>600</bru:Amount>
  135. *'             <Option bru:type="?"/>
  136. *'             <Cash bru:type="?" bru:note_destination="?" bru:coin_destination="?">
  137. *'                 <Denomination bru:cc="?" bru:fv="?" bru:rev="?" bru:devid="?">
  138. *'                     <bru:Piece>?</bru:Piece>
  139. *'                     <bru:Status>?</bru:Status>
  140. *'                 </Denomination>
  141. *'             </Cash>
  142. *'         </bru:ChangeRequest>
  143. *'     </soapenv:Body>
  144. *' </soapenv:Envelope>
  145. *'
  146.  
  147. *Dim xml As New Chilkat.Xml
  148. *xml.Tag = "soapenv:Envelope"
  149. *xml.AddAttribute("xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/")
  150. *xml.AddAttribute("xmlns:bru","http://www.glory.co.jp/bruebox.xsd")
  151. *xml.UpdateChildContent("soapenv:Header","")
  152. *xml.UpdateChildContent("soapenv:Body|bru:ChangeRequest|bru:Id","?")
  153. *xml.UpdateChildContent("soapenv:Body|bru:ChangeRequest|bru:SeqNo","?")
  154. *xml.UpdateChildContent("soapenv:Body|bru:ChangeRequest|bru:SessionID","?")
  155. *xml.UpdateChildContentInt("soapenv:Body|bru:ChangeRequest|bru:Amount",600)
  156. *xml.UpdateAttrAt("soapenv:Body|bru:ChangeRequest|Option",True,"bru:type","?")
  157. *xml.UpdateAttrAt("soapenv:Body|bru:ChangeRequest|Cash",True,"bru:type","?")
  158. *xml.UpdateAttrAt("soapenv:Body|bru:ChangeRequest|Cash",True,"bru:note_destination","?")
  159. *xml.UpdateAttrAt("soapenv:Body|bru:ChangeRequest|Cash",True,"bru:coin_destination","?")
  160. *xml.UpdateAttrAt("soapenv:Body|bru:ChangeRequest|Cash|Denomination",True,"bru:cc","?")
  161. *xml.UpdateAttrAt("soapenv:Body|bru:ChangeRequest|Cash|Denomination",True,"bru:fv","?")
  162. *xml.UpdateAttrAt("soapenv:Body|bru:ChangeRequest|Cash|Denomination",True,"bru:rev","?")
  163. *xml.UpdateAttrAt("soapenv:Body|bru:ChangeRequest|Cash|Denomination",True,"bru:devid","?")
  164. *xml.UpdateChildContent("soapenv:Body|bru:ChangeRequest|Cash|Denomination|bru:Piece","?")
  165. *xml.UpdateChildContent("soapenv:Body|bru:ChangeRequest|Cash|Denomination|bru:Status","?")
  166.  
  167. *http.SetRequestHeader("Host","www.chilkatsoft.com")
  168. *http.SetRequestHeader("Connection","Keep-Alive")
  169. *http.SetRequestHeader("SOAPAction","""ChangeOperation""")
  170. *http.SetRequestHeader("Content-Type","text/xml;charset=UTF-8")
  171. *http.SetRequestHeader("Accept-Encoding","gzip,deflate")
  172. *http.SetRequestHeader("User-Agent","Apache-HttpClient/4.5.5 (Java/16.0.2)")
  173.  
  174. *Dim sbRequestBody As New Chilkat.StringBuilder
  175. *xml.GetXmlSb(sbRequestBody)
  176.  
  177. *Dim resp As Chilkat.HttpResponse = http.PTextSb("POST","https://example.com/replace_this_with_actual_path",sbRequestBody,"utf-8","text/xml;charset=UTF-8",False,False)
  178. *If (http.LastMethodSuccess = False) Then
  179. *    Debug.WriteLine(http.LastErrorText)
  180. *    Exit Sub
  181. *End If
  182.  
  183.  
  184. *Debug.WriteLine(resp.StatusCode)
  185. *Debug.WriteLine(resp.BodyStr)  
Paulo is offline   Responder Con Cita