35 lines
1.0 KiB
Ruby
35 lines
1.0 KiB
Ruby
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
|