class Pagseguro::Charge::Connect::ChargeConnect
Constants
- PRODUCTION_URL
- SANDBOX_URL
Attributes
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