class Pagseguro::Charge::Connect::ChargeConnect

Constants

PRODUCTION_URL
SANDBOX_URL

Attributes

authorization_token[RW]
sandbox[RW]

Public Class Methods

new(authorization_token, sandbox = false) click to toggle source
# File lib/pagseguro/charge/connect/charge_connect.rb, line 11
def initialize(authorization_token, sandbox = false)
  @authorization_token = authorization_token
  @sandbox = sandbox
end

Public Instance Methods

cancel(charge_request) click to toggle source

void/cancels a payment

# File lib/pagseguro/charge/connect/charge_connect.rb, line 47
def cancel(charge_request)
  data = do_connect('POST', URI.parse("#{@sandbox ? SANDBOX_URL : PRODUCTION_URL}/#{charge_request.id}/cancel"),
                    charge_request.to_json)
  charge_response = ChargeResponse.fill_from_json(JSON.parse(data))
  charge_response
end
capture(charge_request) click to toggle source

captures an authorized payment

# File lib/pagseguro/charge/connect/charge_connect.rb, line 39
def capture(charge_request)
  data = do_connect('POST', URI.parse("#{@sandbox ? SANDBOX_URL : PRODUCTION_URL}/#{charge_request.id}/capture"),
                    charge_request.to_json)
  charge_response = ChargeResponse.fill_from_json(JSON.parse(data))
  charge_response
end
place_charge(charge_request) click to toggle source

creates a new charge request

# File lib/pagseguro/charge/connect/charge_connect.rb, line 18
def place_charge(charge_request)
  data = do_connect('POST', URI.parse(@sandbox ? SANDBOX_URL : PRODUCTION_URL), charge_request.to_json)
  charge_response = ChargeResponse.fill_from_json(JSON.parse(data))
  charge_response
end
retrieve_by_id(charge_id) click to toggle source

retireves a charge by its id

# File lib/pagseguro/charge/connect/charge_connect.rb, line 25
def retrieve_by_id(charge_id)
  data = do_connect('GET', URI.parse("#{@sandbox ? SANDBOX_URL : PRODUCTION_URL}/#{charge_id}"))
  charge_response = ChargeResponse.fill_from_json(JSON.parse(data))
  charge_response
end
retrieve_by_reference_id(reference_id) click to toggle source

retireves a charge by reference number

# File lib/pagseguro/charge/connect/charge_connect.rb, line 32
def retrieve_by_reference_id(reference_id)
  data = do_connect('GET', URI.parse("#{@sandbox ? SANDBOX_URL : PRODUCTION_URL}?reference_id=#{reference_id}"))
  charge_response = ChargeResponse.fill_from_json(JSON.parse(data))
  charge_response
end

Private Instance Methods

do_connect(method, uri, data=nil) click to toggle source
# File lib/pagseguro/charge/connect/charge_connect.rb, line 56
def do_connect(method, uri, data=nil)

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  request = case method
  when 'POST'
    Net::HTTP::Post.new(uri)
  when 'GET'
    Net::HTTP::Get.new(uri)
  else
    Net::HTTP::Post.new(uri)
  end

  request["X-api-version"] = "1.0"
  request["Accept"] = "application/json"
  request["Cache-Control"] = "no-cache"
  request["Authorization"] = "Bearer #{@authorization_token}"

  if data.nil?
    request["Content-Length"] = "0"
  else
    request.content_type = "application/json"
    request.body = data
  end

  puts "REQUEST #{request["Authorization"]}"
  puts "REQUEST BODY #{request.body}"
  response = http.request(request)

  # raise Error.new(data.first["Code"], data.first["Message"]) if response.code.to_i >= 400

  puts "RESPONSE BODY #{response.body}"
  response.body
end