Class: Braspag::Crypto::Webservice
- Inherits:
-
Object
- Object
- Braspag::Crypto::Webservice
- Defined in:
- lib/rbraspag/crypto/webservice.rb
Instance Method Summary collapse
- #decrypt(encripted_text) ⇒ Object
- #encrypt(map) ⇒ Object
-
#initialize(connection) ⇒ Webservice
constructor
A new instance of Webservice.
Constructor Details
#initialize(connection) ⇒ Webservice
Returns a new instance of Webservice.
4 5 6 |
# File 'lib/rbraspag/crypto/webservice.rb', line 4 def initialize(connection) @connection = connection end |
Instance Method Details
#decrypt(encripted_text) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/rbraspag/crypto/webservice.rb', line 51 def decrypt(encripted_text) raise Braspag::IncompleteParams if encripted_text.nil? raise Braspag::IncompleteParams unless encripted_text.is_a?(String) request = ::HTTPI::Request.new uri request.body = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\">\n <env:Header />\n <env:Body>\n <tns:DecryptRequest xmlns:tns=\"https://www.pagador.com.br/webservice/BraspagGeneralService\">\n<tns:merchantId>\#{@connection.merchant_id}</tns:merchantId>\n<tns:cryptString>\#{encripted_text}</tns:cryptString>\n </tns:DecryptRequest>\n </env:Body>\n</env:Envelope>\n" request.headers["Content-Type"] = "text/xml" response = ::HTTPI.post request document = Nokogiri::XML(response.body) raise Braspag::UnknownError if document.children.empty? result_error = document.children.children.children.children.children.first.content.to_s raise Braspag::InvalidMerchantId if (result_error == 'Erro BP 011' || result_error == 'Erro BP 012') raise Braspag::InvalidIP if (result_error == 'Erro BP 067' || result_error == 'Erro BP 068') convert_request_to_map document end |
#encrypt(map) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/rbraspag/crypto/webservice.rb', line 8 def encrypt(map) raise Braspag::IncompleteParams if map.nil? raise Braspag::IncompleteParams unless map.is_a?(Hash) request = ::HTTPI::Request.new uri fields = "\n" map.each do |key, value| fields.concat(" <tns:string>#{key}=#{value}</tns:string>\n") end request.body = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\">\n <env:Header />\n <env:Body>\n <tns:EncryptRequest xmlns:tns=\"https://www.pagador.com.br/webservice/BraspagGeneralService\">\n<tns:merchantId>\#{@connection.merchant_id}</tns:merchantId>\n<tns:request>\n \#{fields}\n</tns:request>\n </tns:EncryptRequest>\n </env:Body>\n</env:Envelope>\n" request.headers["Content-Type"] = "text/xml" response = ::HTTPI.post request document = Nokogiri::XML(response.body) raise Braspag::UnknownError if document.children.empty? #melhorar este parser cof cof response = document.children.children.children.children.children.to_s raise Braspag::InvalidMerchantId if (response == 'Erro BP 011' || response == 'Erro BP 012') raise Braspag::InvalidIP if (response == 'Erro BP 067' || response == 'Erro BP 068') response end |