require 'net/http' module IfThenPay def self.generate_gateway_link(id:, amount:, description:) response = Net::HTTP.post( URI("https://ifthenpay.com/api/gateway/paybylink/#{ENV['IFTHENPAY_KEY']}"), JSON.generate({ id: id, amount: amount.to_s, description: description.to_s, "lang": "pt", "expiredate": "", "accounts": ENV['IFTHENPAY_ACCOUNTS'], }) ) JSON.parse(response.body) end def self.payments(date) end_date = (Time.parse(date) + 1).strftime("%d-%m-%Y %H:%M:%S") URI("https://ifthenpay.com/ifmbws/ifmbws.asmx/getPaymentsJson?chavebackoffice=#{ENV['IFTHENPAY_BO_KEY']}&entidade=&subentidade=&dtHrInicio=#{date}&dtHrFim=#{end_date}&referencia=&valor=&sandbox=0") .then{|u| Net::HTTP.get(u)} .then{|b| Nokogiri::XML(b).child.child.text} .then{|x| JSON.parse(x)} end def self.multibanco_account ENV['IFTHENPAY_ACCOUNTS'] .split(";") .map { |acc| acc.split("|").first } .find { |acc| acc.match?(/^\d+$/) } end end