Class: VSafe::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/vsafe/client.rb

Constant Summary collapse

SANDBOX_FINGERPRINT_PATH =
"ThreatMetrixUIRedirector".freeze
FINGERPRINT_PATH =
"PaySafeUIRedirector".freeze
REQUEST_CONTENT_TYPE =
"application/json; charset=utf-8".freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|config| ... } ⇒ Client

Returns a new instance of Client.

Yields:



22
23
24
25
26
27
# File 'lib/vsafe/client.rb', line 22

def initialize
  # dup config in case we need to override default settings
  @config = VSafe.config.dup

  yield config if block_given?
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



20
21
22
# File 'lib/vsafe/client.rb', line 20

def config
  @config
end

Instance Method Details

#charge_authorize(params) ⇒ Object



37
38
39
# File 'lib/vsafe/client.rb', line 37

def charge_authorize(params)
  VSafe::Responses::ChargeAuthorize.new(request(service_url("ChargeAuthorize"), params))
end

#charge_confirm(params) ⇒ Object



41
42
43
# File 'lib/vsafe/client.rb', line 41

def charge_confirm(params)
  VSafe::Responses::ChargeConfirm.new(request(service_url("ChargeConfirm"), params))
end

#charge_sale(params) ⇒ Object



53
54
55
# File 'lib/vsafe/client.rb', line 53

def charge_sale(params)
  VSafe::Responses::ChargeSale.new(request(service_url("ChargeSale"), params))
end

#fingerprint_urlObject



71
72
73
# File 'lib/vsafe/client.rb', line 71

def fingerprint_url
  @_fingerprint_url ||= URI.join(config.url, config.sandbox ? SANDBOX_FINGERPRINT_PATH : FINGERPRINT_PATH).to_s
end

#get_session_tagsObject



29
30
31
32
33
34
35
# File 'lib/vsafe/client.rb', line 29

def get_session_tags
  params = {
    TransactionID: SecureRandom.uuid
  }

  VSafe::Responses::GetSessionTags.new(request(service_url("GetSessionTags"), params))
end

#heartbeatObject



49
50
51
# File 'lib/vsafe/client.rb', line 49

def heartbeat
  VSafe::Response.new(request(service_url("HeartBeat")))
end

#reverse_payment(params) ⇒ Object



45
46
47
# File 'lib/vsafe/client.rb', line 45

def reverse_payment(params)
  VSafe::Responses::ReversePayment.new(request(service_url("ReversePayment"), params))
end

#service_url(endpoint = nil, jsonp = false) ⇒ Object



61
62
63
64
65
66
67
68
69
# File 'lib/vsafe/client.rb', line 61

def service_url(endpoint = nil, jsonp = false)
  parts = [
    config.url,
    jsonp ? config.jsonp_service_path : config.service_path
  ]
  parts << endpoint if endpoint

  File.join(parts)
end

#validate_charge_account(params) ⇒ Object



57
58
59
# File 'lib/vsafe/client.rb', line 57

def (params)
  VSafe::Responses::ValidateChargeAccount.new(request(service_url("ValidateChargeAccount"), params))
end