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
JSONP_SERVICE_PATH =

We should only use JSONP_SERVICE_PATH for charge_acct_to_tempory_token call in web js.

"GatewayProxyJSON/Service".freeze
SERVICE_PATH =
"GatewayProxy/Service".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:



25
26
27
28
29
30
# File 'lib/vsafe/client.rb', line 25

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.



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

def config
  @config
end

Instance Method Details

#charge_authorize(params) ⇒ Object



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

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

#charge_confirm(params) ⇒ Object



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

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

#charge_sale(params) ⇒ Object



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

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

#fingerprint_urlObject



74
75
76
# File 'lib/vsafe/client.rb', line 74

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

#get_session_tagsObject



32
33
34
35
36
37
38
# File 'lib/vsafe/client.rb', line 32

def get_session_tags
  params = {
    TransactionID: SecureRandom.uuid
  }

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

#heartbeatObject



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

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

#reverse_payment(params) ⇒ Object



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

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

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



64
65
66
67
68
69
70
71
72
# File 'lib/vsafe/client.rb', line 64

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

  File.join(parts)
end

#validate_charge_account(params) ⇒ Object



60
61
62
# File 'lib/vsafe/client.rb', line 60

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