class Timbradocfdi::Generator
Constants
- BASE_URI
Attributes
client[RW]
Attributo accesible (lectura y escritura)
user[RW]
Attributo accesible (lectura y escritura)
Public Class Methods
new(user)
click to toggle source
Se inicializa la clase con un usuario y su respectivo cliente con el soap
# File lib/timbradocfdi.rb, line 20 def initialize(user) @client = Savon.client(wsdl: BASE_URI) @user = user end
Public Instance Methods
cancelaCFDI(rfcEmisor, folioUUID)
click to toggle source
Cancela CFDI
# File lib/timbradocfdi/cancel.rb, line 7 def cancelaCFDI(rfcEmisor, folioUUID) options = { :usuarioIntegrador => @user, :rfcEmisor => rfcEmisor, :folioUUID => folioUUID, } response = request("cancela_cfdi", options) parse_result_cancelaCFDI response.body end
file_reader(path)
click to toggle source
Read certificate and encode to base64
# File lib/timbradocfdi.rb, line 28 def file_reader(path) raw = File.read(path) Base64.encode64(raw) end
obtieneCFDI(rfcEmisor, folioUUID)
click to toggle source
Registro emisor
# File lib/timbradocfdi/obtain.rb, line 7 def obtieneCFDI(rfcEmisor, folioUUID) options = { :usuarioIntegrador => @user, :rfcEmisor => rfcEmisor, :folioUUID => folioUUID, } response = request("obtiene_cfdi", options) parse_result_obtieneCFDI response.body end
parse_result_cancelaCFDI(result)
click to toggle source
Parse result for cancelaCFDI
# File lib/timbradocfdi/results.rb, line 63 def parse_result_cancelaCFDI(result) object = result.to_hash result_object = object[:cancela_cfdi_response][:cancela_cfdi_result][:any_type] { code: result_object[1], message: (result_object[2].to_s).encode("utf-8") } end
parse_result_obtieneCFDI(result)
click to toggle source
Parse result for obtieneCFDI
# File lib/timbradocfdi/results.rb, line 42 def parse_result_obtieneCFDI(result) object = result.to_hash result_object = object[:obtiene_cfdi_response][:obtiene_cfdi_result][:any_type] if result_object[1].to_i === 0 return_object = { code: 0, xml: result_object[3], qr: result_object[4], details: result_object[5] } else return_object = { code: result_object[1], message: result_object[2] } end end
parse_result_registro_emisor(result)
click to toggle source
Parse result for registro emisor
# File lib/timbradocfdi/results.rb, line 7 def parse_result_registro_emisor(result) object = result.to_hash result_object = object[:registra_emisor_response][:registra_emisor_result][:any_type] { code: result_object[1], message: (result_object[2].to_s).encode("utf-8") } end
parse_result_timbraCFDI(result)
click to toggle source
Parse result for timbraCFDI
# File lib/timbradocfdi/results.rb, line 19 def parse_result_timbraCFDI(result) object = result.to_hash result_object = object[:timbra_cfdi_response][:timbra_cfdi_result][:any_type] if result_object[1].to_i === 0 return_object = { code: 0, xml: result_object[3], qr: result_object[4], details: result_object[5] } else return_object = { code: result_object[1], message: result_object[2] } end return_object end
registroEmisor(rfcEmisor, base64Cer, base64Key, contrasena)
click to toggle source
Registro emisor
# File lib/timbradocfdi/register_emisor.rb, line 7 def registroEmisor(rfcEmisor, base64Cer, base64Key, contrasena) options = { :usuarioIntegrador => @user, :rfcEmisor => rfcEmisor, :base64Cer => file_reader(base64Cer), :base64Key => file_reader(base64Key), :contrasena => contrasena } response = request("registra_emisor", options) parse_result_registro_emisor response.body end
request(function, options = {})
click to toggle source
Method for generate HTTP Request post
# File lib/timbradocfdi.rb, line 35 def request(function, options = {}) operation = function.intern @client.call(operation, message: options) end
timbraCFDI(xmlComprobante, idComprobante)
click to toggle source
TimbraCFDI
# File lib/timbradocfdi/stamping.rb, line 7 def timbraCFDI(xmlComprobante, idComprobante) options = { :usuarioIntegrador => @user, :xmlComprobanteBase64 => file_reader(xmlComprobante), :idComprobante => idComprobante, } response = request("timbra_cfdi", options) parse_result_timbraCFDI response.body end