vsafe-ruby 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +8 -38
- data/lib/vsafe/client.rb +1 -4
- data/lib/vsafe/config.rb +12 -2
- data/lib/vsafe/version.rb +1 -1
- data/spec/vsafe/client_spec.rb +24 -2
- data/spec/vsafe/config_spec.rb +30 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42ca5c86cc1aae19ac162345d5c41e9ab5a2ff13
|
4
|
+
data.tar.gz: 35e6a7bd5d93ca41f493ab25c44570c9190e105c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7e79ed77717746c8a6a87da802cd4a88926a86da6d093d1b1c59674651e9734a4d3c9f4f8d3c651e453e7188a36cb553c22ec16f14bf6120ee36f825c89f51b
|
7
|
+
data.tar.gz: 2c64494c69dbb7e78c6e2571d5bead80f4dcc2d828d88d55927a92f6c395d6a8257868857c13731c53b80adb4c03bc49ab09ba57d7443dd7d9af8c718f689e69
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# VSafe
|
2
|
-
|
2
|
+
[](https://travis-ci.org/listia/vsafe-ruby)
|
3
|
+
[](http://badge.fury.io/rb/vsafe-ruby)
|
3
4
|
|
4
5
|
## Installation
|
5
6
|
|
@@ -46,13 +47,18 @@ client = VSafe::Client.new
|
|
46
47
|
```
|
47
48
|
|
48
49
|
##### Heartbeat request
|
50
|
+
|
51
|
+
Check if VSafe API is up or not.
|
52
|
+
|
49
53
|
```ruby
|
50
|
-
# Check if VSafe API is up or not
|
51
54
|
client.heartbeat.success?
|
52
55
|
|
53
56
|
```
|
54
57
|
|
55
58
|
##### Get vesta session tags
|
59
|
+
|
60
|
+
Get web session id for `WEB` charge source.
|
61
|
+
|
56
62
|
```ruby
|
57
63
|
response = client.get_session_tags # => #<VSafe::Responses::GetSessionTags ...>
|
58
64
|
|
@@ -61,42 +67,6 @@ response.org_id
|
|
61
67
|
response.web_session_id
|
62
68
|
```
|
63
69
|
|
64
|
-
##### Authorize charge
|
65
|
-
```ruby
|
66
|
-
auth_params = {
|
67
|
-
TransactionID: "...",
|
68
|
-
ChargeAccountNumberToken: "...",
|
69
|
-
ChargeAmount: 10,
|
70
|
-
WebSessionID: "100_000000000", # Fingerprint generated by get_session_tags as part of ChargeSource::WEB transaction
|
71
|
-
PaymentDescriptor: "...",
|
72
|
-
ChargeSource: VSafe::ChargeSource::WEB, # Or VSafe::ChargeSource::PPD/VSafe::ChargeSource::TEL
|
73
|
-
RiskInformation: "...", # XML string for the transaction
|
74
|
-
IsTempToken: false,
|
75
|
-
CardHolderFirstName: "Foo",
|
76
|
-
CardHolderLastName: "Bar",
|
77
|
-
CardHolderAddressLine1: "...",
|
78
|
-
CardHolderAddressLine2: "...",
|
79
|
-
CardHolderCity: "...",
|
80
|
-
CardHolderRegion: "...",
|
81
|
-
CardHolderPostalCode: "...",
|
82
|
-
CardHolderCountryCode: "...",
|
83
|
-
ChargeCVN: 123, # Card's CVV
|
84
|
-
ChargeExpirationMMYY: "1221", # Card's expiration date in MMYY format
|
85
|
-
StoreCard: true # Get a permanent token or not
|
86
|
-
}
|
87
|
-
|
88
|
-
client.charge_authorize(params) # => #<VSafe::Responses::ChargeAuthorize ...>
|
89
|
-
|
90
|
-
# Response attributes
|
91
|
-
response.avs_result
|
92
|
-
response.auth_result
|
93
|
-
response.cvn_result
|
94
|
-
response.charge_permanent_token
|
95
|
-
response.payment_acquirer_name
|
96
|
-
response.payment_id
|
97
|
-
response.payment_status
|
98
|
-
```
|
99
|
-
|
100
70
|
##### Authorize charge
|
101
71
|
|
102
72
|
Authorize a credit card charge attempt for later confirm usage.
|
data/lib/vsafe/client.rb
CHANGED
@@ -15,9 +15,6 @@ module VSafe
|
|
15
15
|
class Client
|
16
16
|
SANDBOX_FINGERPRINT_PATH = "ThreatMetrixUIRedirector".freeze
|
17
17
|
FINGERPRINT_PATH = "PaySafeUIRedirector".freeze
|
18
|
-
# We should only use JSONP_SERVICE_PATH for charge_acct_to_tempory_token call in web js.
|
19
|
-
JSONP_SERVICE_PATH = "GatewayProxyJSON/Service".freeze
|
20
|
-
SERVICE_PATH = "GatewayProxy/Service".freeze
|
21
18
|
REQUEST_CONTENT_TYPE = "application/json; charset=utf-8".freeze
|
22
19
|
|
23
20
|
attr_reader :config
|
@@ -64,7 +61,7 @@ module VSafe
|
|
64
61
|
def service_url(endpoint = nil, jsonp = false)
|
65
62
|
parts = [
|
66
63
|
config.url,
|
67
|
-
jsonp ?
|
64
|
+
jsonp ? config.jsonp_service_path : config.service_path
|
68
65
|
]
|
69
66
|
parts << endpoint if endpoint
|
70
67
|
|
data/lib/vsafe/config.rb
CHANGED
@@ -3,20 +3,30 @@ module VSafe
|
|
3
3
|
DEFAULT_REQUEST_TIMEOUT = 20 # seconds
|
4
4
|
DEFAULT_SANDBOX_URL = "https://paysafesandbox.ecustomersupport.com".freeze
|
5
5
|
DEFAULT_PRODUCTION_URL = "https://paysafe.ecustomerpayments.com".freeze
|
6
|
+
DEFAULT_JSONP_SERVICE_PATH = "GatewayProxyJSON/Service".freeze
|
7
|
+
DEFAULT_SERVICE_PATH = "GatewayProxy/Service".freeze
|
6
8
|
|
7
|
-
attr_accessor :
|
9
|
+
attr_accessor :sandbox_url,
|
10
|
+
:production_url,
|
11
|
+
:sandbox,
|
8
12
|
:account_name,
|
9
13
|
:password,
|
14
|
+
:service_path,
|
15
|
+
:jsonp_service_path,
|
10
16
|
:request_timeout
|
11
17
|
|
12
18
|
def initialize
|
13
19
|
# Set sandbox to true by default
|
14
20
|
@sandbox = true
|
21
|
+
@service_path = DEFAULT_SERVICE_PATH
|
22
|
+
@jsonp_service_path = DEFAULT_JSONP_SERVICE_PATH
|
15
23
|
@request_timeout = DEFAULT_REQUEST_TIMEOUT
|
24
|
+
@sandbox_url = DEFAULT_SANDBOX_URL
|
25
|
+
@production_url = DEFAULT_PRODUCTION_URL
|
16
26
|
end
|
17
27
|
|
18
28
|
def url
|
19
|
-
sandbox ?
|
29
|
+
sandbox ? @sandbox_url : @production_url
|
20
30
|
end
|
21
31
|
end
|
22
32
|
end
|
data/lib/vsafe/version.rb
CHANGED
data/spec/vsafe/client_spec.rb
CHANGED
@@ -150,13 +150,35 @@ RSpec.describe VSafe::Client do
|
|
150
150
|
end
|
151
151
|
|
152
152
|
context "when jsonp is false" do
|
153
|
-
let(:service_path) { VSafe::
|
153
|
+
let(:service_path) { VSafe::Config::DEFAULT_SERVICE_PATH }
|
154
154
|
|
155
155
|
it_behaves_like "returns url"
|
156
156
|
end
|
157
157
|
|
158
158
|
context "when jsonp is true" do
|
159
|
-
let(:service_path) { VSafe::
|
159
|
+
let(:service_path) { VSafe::Config::DEFAULT_JSONP_SERVICE_PATH }
|
160
|
+
|
161
|
+
it_behaves_like "returns url", true
|
162
|
+
end
|
163
|
+
|
164
|
+
context "when custom service_path is set" do
|
165
|
+
let(:service_path) { "__custom_service" }
|
166
|
+
let(:client) {
|
167
|
+
VSafe::Client.new do |config|
|
168
|
+
config.service_path = "__custom_service"
|
169
|
+
end
|
170
|
+
}
|
171
|
+
|
172
|
+
it_behaves_like "returns url"
|
173
|
+
end
|
174
|
+
|
175
|
+
context "when custom jsonp_service_path is set" do
|
176
|
+
let(:service_path) { "__custom_jsonp" }
|
177
|
+
let(:client) {
|
178
|
+
VSafe::Client.new do |config|
|
179
|
+
config.jsonp_service_path = "__custom_jsonp"
|
180
|
+
end
|
181
|
+
}
|
160
182
|
|
161
183
|
it_behaves_like "returns url", true
|
162
184
|
end
|
data/spec/vsafe/config_spec.rb
CHANGED
@@ -2,13 +2,41 @@ require "spec_helper"
|
|
2
2
|
require "vsafe/config"
|
3
3
|
|
4
4
|
RSpec.describe VSafe::Config do
|
5
|
+
let (:config) { VSafe::Config.new }
|
6
|
+
|
5
7
|
describe ".new" do
|
6
8
|
it "sets default configs" do
|
7
|
-
config = VSafe::Config.new
|
8
|
-
|
9
9
|
expect(config.sandbox).to eq(true)
|
10
10
|
expect(config.request_timeout).to be_a(Fixnum)
|
11
11
|
expect(config.url).not_to be_empty
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
describe "#url" do
|
16
|
+
context "sandbox is true" do
|
17
|
+
it "uses default sandbox_url" do
|
18
|
+
expect(config.url).to eq(VSafe::Config::DEFAULT_SANDBOX_URL)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "uses custom sandbox_url when sandbox" do
|
22
|
+
config.sandbox_url = "https://www.google.com"
|
23
|
+
expect(config.url).to eq("https://www.google.com")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "sandbox is not true" do
|
28
|
+
before do
|
29
|
+
config.sandbox = false
|
30
|
+
end
|
31
|
+
|
32
|
+
it "uses default production_url when not sandbox" do
|
33
|
+
expect(config.url).to eq(VSafe::Config::DEFAULT_PRODUCTION_URL)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "uses custom production_url when not sandbox" do
|
37
|
+
config.production_url = "https://www.google.com"
|
38
|
+
expect(config.url).to eq("https://www.google.com")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
14
42
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vsafe-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xiaoming Lu
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-12-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|