Sha256: a32654fb8792e401731473cd3f72f5d8590fd1899bd89ce9da2974502cc04893
Contents?: true
Size: 1.96 KB
Versions: 4
Compression:
Stored size: 1.96 KB
Contents
# encoding: utf-8 require 'httparty' module MoIP class WebServerResponseError < StandardError ; end class MissingTokenError < StandardError ; end class Client include HTTParty base_uri "#{MoIP.uri}/ws/alpha" basic_auth MoIP.token, MoIP.key class << self # Envia uma instrução para pagamento único def checkout(attributes = {}) full_data = peform_action!(:post, 'EnviarInstrucao/Unica', :body => DirectPayment.body(attributes)) get_response!(full_data["ns1:EnviarInstrucaoUnicaResponse"]["Resposta"]) end # Consulta dos dados das autorizações e pagamentos associados à Instrução def query(token) full_data = peform_action!(:get, "ConsultarInstrucao/#{token}") get_response!(full_data["ns1:ConsultarTokenResponse"]["RespostaConsultar"]) end # Retorna a URL de acesso ao MoIP def moip_page(token) raise(MissingTokenError, "É necessário informar um token para retornar os dados da transação") if token.nil? "#{MoIP.uri}/Instrucao.do?token=#{token}" end # Monta o NASP def notification(params) notification = {} notification[:transaction_id] = params["id_transacao"] notification[:amount] = params["valor"] notification[:status] = MoIP::STATUS[params["status_pagamento"].to_i] notification[:code] = params["cod_moip"] notification[:payment_type] = params["tipo_pagamento"] notification[:email] = params["email_consumidor"] notification end private def peform_action!(action_name, url, options = {}) response = self.send(action_name, url, options) raise(WebServerResponseError, "Ocorreu um erro ao chamar o webservice") if response.nil? response end def get_response!(data) raise(WebServerResponseError, data["Erro"]) if data["Status"] == "Falha" data end end end end
Version data entries
4 entries across 4 versions & 3 rubygems
Version | Path |
---|---|
moip_catarse-1.0.6 | lib/moip/client.rb |
moip-ruby-0.1.0 | lib/moip/client.rb |
moip-1.0.4 | lib/moip/client.rb |
moip-1.0.2 | lib/moip/client.rb |