paypal_adaptive 0.3.1 → 0.3.2
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.
data/README.markdown
CHANGED
@@ -91,6 +91,9 @@ for each environment, e.g.:
|
|
91
91
|
The ssl_cert_file should point to your cert_key_pem.txt that is downloaded through the paypal developer interface. It will contain a section that specifies the RSA private key and another section that specifies a certificate. If this is left empty, paypal_adaptive will attempt to use the signature method of validation with PayPal, so your signature config must not be nil.
|
92
92
|
|
93
93
|
## Changelog
|
94
|
+
0.3.2
|
95
|
+
Added support to api certificate since ssl_cert_file config is now used to set CA Authority. thanks jimbocortes
|
96
|
+
|
94
97
|
0.3.1
|
95
98
|
Update json dependency to use ~>1.0 so any version 1.X will work.
|
96
99
|
|
@@ -15,7 +15,7 @@ module PaypalAdaptive
|
|
15
15
|
:beta_sandbox => "https://svcs.beta-sandbox.paypal.com"
|
16
16
|
} unless defined? API_BASE_URL_MAPPING
|
17
17
|
|
18
|
-
attr_accessor :paypal_base_url, :api_base_url, :headers, :ssl_cert_path, :ssl_cert_file
|
18
|
+
attr_accessor :paypal_base_url, :api_base_url, :headers, :ssl_cert_path, :ssl_cert_file, :api_cert_file
|
19
19
|
|
20
20
|
def initialize(env=nil, config_override={})
|
21
21
|
config = YAML.load(ERB.new(File.new(config_filepath).read).result)[env]
|
@@ -29,6 +29,7 @@ module PaypalAdaptive
|
|
29
29
|
|
30
30
|
@ssl_cert_path = nil
|
31
31
|
@ssl_cert_file = nil
|
32
|
+
@api_cert_file = nil
|
32
33
|
@paypal_base_url = PAYPAL_BASE_URL_MAPPING[pp_env]
|
33
34
|
@api_base_url = API_BASE_URL_MAPPING[pp_env]
|
34
35
|
|
@@ -42,8 +43,9 @@ module PaypalAdaptive
|
|
42
43
|
"X-PAYPAL-RESPONSE-DATA-FORMAT" => "JSON"
|
43
44
|
}
|
44
45
|
@headers.merge!({"X-PAYPAL-SECURITY-SIGNATURE" => config['signature']}) if config['signature']
|
45
|
-
|
46
|
+
@ssl_cert_path = config['ssl_cert_path'] unless config['ssl_cert_path'].blank?
|
46
47
|
@ssl_cert_file = config['ssl_cert_file'] unless config['ssl_cert_file'].blank?
|
48
|
+
@api_cert_file = config['api_cert_file'] unless config['api_cert_file'].blank?
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
@@ -10,6 +10,7 @@ module PaypalAdaptive
|
|
10
10
|
@paypal_base_url = config.paypal_base_url
|
11
11
|
@ssl_cert_path = config.ssl_cert_path
|
12
12
|
@ssl_cert_file = config.ssl_cert_file
|
13
|
+
@api_cert_file = config.api_cert_file
|
13
14
|
end
|
14
15
|
|
15
16
|
def send_back(data)
|
@@ -20,12 +21,13 @@ module PaypalAdaptive
|
|
20
21
|
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
21
22
|
http.ca_path = @ssl_cert_path unless @ssl_cert_path.nil?
|
22
23
|
|
23
|
-
if @
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
http.ca_file = @ssl_cert_file
|
24
|
+
if @api_cert_file
|
25
|
+
cert = File.read(@api_cert_file)
|
26
|
+
http.cert = OpenSSL::X509::Certificate.new(cert)
|
27
|
+
http.key = OpenSSL::PKey::RSA.new(cert)
|
28
28
|
end
|
29
|
+
http.ca_path = @ssl_cert_path unless @ssl_cert_path.blank?
|
30
|
+
http.ca_file = @ssl_cert_file unless @ssl_cert_file.blank?
|
29
31
|
|
30
32
|
path = "#{@paypal_base_url}/cgi-bin/webscr"
|
31
33
|
response_data = http.post(path, data).body
|
@@ -14,6 +14,7 @@ module PaypalAdaptive
|
|
14
14
|
@headers = config.headers
|
15
15
|
@ssl_cert_path = config.ssl_cert_path
|
16
16
|
@ssl_cert_file = config.ssl_cert_file
|
17
|
+
@api_cert_file = config.api_cert_file
|
17
18
|
end
|
18
19
|
|
19
20
|
def validate
|
@@ -91,13 +92,13 @@ module PaypalAdaptive
|
|
91
92
|
http.use_ssl = true
|
92
93
|
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
93
94
|
|
94
|
-
if @
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
http.ca_file = @ssl_cert_file
|
95
|
+
if @api_cert_file
|
96
|
+
cert = File.read(@api_cert_file)
|
97
|
+
http.cert = OpenSSL::X509::Certificate.new(cert)
|
98
|
+
http.key = OpenSSL::PKey::RSA.new(cert)
|
99
99
|
end
|
100
|
-
http.ca_path = @ssl_cert_path unless @ssl_cert_path.
|
100
|
+
http.ca_path = @ssl_cert_path unless @ssl_cert_path.blank?
|
101
|
+
http.ca_file = @ssl_cert_file unless @ssl_cert_file.blank?
|
101
102
|
|
102
103
|
begin
|
103
104
|
response_data = http.post(path, api_request_data, @headers)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paypal_adaptive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-09-14 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70212142494100 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70212142494100
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jsonschema
|
27
|
-
requirement: &
|
27
|
+
requirement: &70212142493220 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.0.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70212142493220
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70212142492480 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0.8'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70212142492480
|
47
47
|
description: Lightweight wrapper for Paypal's Adaptive Payments API
|
48
48
|
email:
|
49
49
|
- tommy.chheng@gmail.com
|