virementmaitrise 0.6.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.
- checksums.yaml +7 -0
- data/.gitignore +23 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/CHANGELOG.md +6 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +59 -0
- data/LICENSE.txt +674 -0
- data/README.md +404 -0
- data/Rakefile +8 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/exemples/ais.rb +53 -0
- data/exemples/pis.rb +148 -0
- data/exemples/ressources.rb +23 -0
- data/lib/virementmaitrise/ais_client.rb +112 -0
- data/lib/virementmaitrise/api/ais/account_holders.rb +60 -0
- data/lib/virementmaitrise/api/ais/accounts.rb +62 -0
- data/lib/virementmaitrise/api/ais/authorize.rb +71 -0
- data/lib/virementmaitrise/api/ais/authorize_decoupled.rb +67 -0
- data/lib/virementmaitrise/api/ais/connect.rb +66 -0
- data/lib/virementmaitrise/api/ais/delete_customer.rb +53 -0
- data/lib/virementmaitrise/api/ais/transactions.rb +62 -0
- data/lib/virementmaitrise/api/auth/authentication.rb +80 -0
- data/lib/virementmaitrise/api/pis/connect.rb +80 -0
- data/lib/virementmaitrise/api/pis/initiate.rb +54 -0
- data/lib/virementmaitrise/api/pis/payments.rb +55 -0
- data/lib/virementmaitrise/api/pis/refund.rb +67 -0
- data/lib/virementmaitrise/api/pis/request_to_pay.rb +61 -0
- data/lib/virementmaitrise/api/pis/settlements.rb +50 -0
- data/lib/virementmaitrise/api/ressources/applications.rb +57 -0
- data/lib/virementmaitrise/api/ressources/providers.rb +63 -0
- data/lib/virementmaitrise/api/ressources/test_accounts.rb +62 -0
- data/lib/virementmaitrise/base_url.rb +23 -0
- data/lib/virementmaitrise/endpoints/ais.rb +16 -0
- data/lib/virementmaitrise/endpoints/authentication.rb +13 -0
- data/lib/virementmaitrise/endpoints/pis.rb +16 -0
- data/lib/virementmaitrise/endpoints/ressources.rb +13 -0
- data/lib/virementmaitrise/exceptions.rb +62 -0
- data/lib/virementmaitrise/faraday/authentication/connection.rb +177 -0
- data/lib/virementmaitrise/pis_client.rb +118 -0
- data/lib/virementmaitrise/utils/constants.rb +11 -0
- data/lib/virementmaitrise/utils/crypto.rb +75 -0
- data/lib/virementmaitrise/utils/date.rb +15 -0
- data/lib/virementmaitrise/utils/json_parser.rb +37 -0
- data/lib/virementmaitrise/utils/query_builder.rb +18 -0
- data/lib/virementmaitrise/utils/validation.rb +32 -0
- data/lib/virementmaitrise/version.rb +5 -0
- data/lib/virementmaitrise.rb +66 -0
- data/virementmaitrise.gemspec +46 -0
- metadata +157 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'base64'
|
|
4
|
+
require 'json'
|
|
5
|
+
require 'faraday'
|
|
6
|
+
require 'virementmaitrise/utils/validation'
|
|
7
|
+
require 'virementmaitrise/exceptions'
|
|
8
|
+
require 'virementmaitrise/utils/date'
|
|
9
|
+
require 'virementmaitrise/utils/constants'
|
|
10
|
+
require 'virementmaitrise/utils/query_builder'
|
|
11
|
+
|
|
12
|
+
module VirementMaitrise
|
|
13
|
+
module Pis
|
|
14
|
+
class Connect
|
|
15
|
+
class << self
|
|
16
|
+
# ------------ PUBLIC METHOD ------------
|
|
17
|
+
def generate(client, payload, state, redirect_uri, origin_uri, with_virtualbeneficiary: false)
|
|
18
|
+
|
|
19
|
+
@client = client
|
|
20
|
+
|
|
21
|
+
# Build the request payload
|
|
22
|
+
payload = _build_payload(payload)
|
|
23
|
+
|
|
24
|
+
# Do the request
|
|
25
|
+
_request payload, state, redirect_uri, origin_uri, with_virtualbeneficiary: with_virtualbeneficiary
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
# ------------ REQUEST ------------
|
|
31
|
+
def _request(payload, state, redirect_uri, origin_uri, with_virtualbeneficiary: false)
|
|
32
|
+
# Get the url request
|
|
33
|
+
url = _endpoint
|
|
34
|
+
|
|
35
|
+
# Build uri params
|
|
36
|
+
params = {}
|
|
37
|
+
params['redirect_uri'] = redirect_uri if redirect_uri
|
|
38
|
+
params['origin_uri'] = origin_uri if origin_uri
|
|
39
|
+
params['with_virtualbeneficiary'] = 'true' if with_virtualbeneficiary
|
|
40
|
+
params['state'] = state
|
|
41
|
+
|
|
42
|
+
query_string = VirementMaitrise::Utils::QueryBuilder.build_query_string(params)
|
|
43
|
+
|
|
44
|
+
# Do connect request
|
|
45
|
+
VirementMaitrise::Faraday::Authentication::Connection.post(
|
|
46
|
+
url: url + query_string,
|
|
47
|
+
req_body: payload.to_json,
|
|
48
|
+
client: @client,
|
|
49
|
+
custom_content_type: 'application/json',
|
|
50
|
+
bearer: "Bearer #{@client.token}",
|
|
51
|
+
secure_headers: true
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# ------------ BUILD PAYLOAD ------------
|
|
56
|
+
def _build_payload(payload)
|
|
57
|
+
payload[:data][:attributes][:amount] = payload[:data][:attributes][:amount].to_s
|
|
58
|
+
|
|
59
|
+
unless payload[:data][:attributes][:end_to_end_id]
|
|
60
|
+
payload[:data][:attributes][:end_to_end_id] =
|
|
61
|
+
VirementMaitrise::Utils::Crypto.generate_uuid_only_chars
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
payload
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# ------------ API ENDPOINT ------------
|
|
68
|
+
def _endpoint
|
|
69
|
+
"#{_api_base_url}/#{VirementMaitrise::Api::Endpoints::Pis::CONNECT}"
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# ------------ BASE URL ------------
|
|
73
|
+
def _api_base_url
|
|
74
|
+
VirementMaitrise::Api::BaseUrl::FINTECTURE_API_URL[@client.environment.to_sym]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'virementmaitrise/utils/query_builder'
|
|
4
|
+
|
|
5
|
+
module VirementMaitrise
|
|
6
|
+
module Pis
|
|
7
|
+
class Initiate
|
|
8
|
+
class << self
|
|
9
|
+
# ------------ PUBLIC METHOD ------------
|
|
10
|
+
def generate(client, payload, provider_id, redirect_uri, state)
|
|
11
|
+
@client = client
|
|
12
|
+
|
|
13
|
+
# Do the _request request
|
|
14
|
+
_request payload, provider_id, redirect_uri, state
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
# ------------ REQUEST ------------
|
|
20
|
+
def _request(payload, provider_id, redirect_uri, state)
|
|
21
|
+
# Get the url request
|
|
22
|
+
url = _endpoint provider_id
|
|
23
|
+
|
|
24
|
+
# Build uri params
|
|
25
|
+
params = {}
|
|
26
|
+
params['state'] = state
|
|
27
|
+
params['redirect_uri'] = redirect_uri
|
|
28
|
+
query_string = VirementMaitrise::Utils::QueryBuilder.build_query_string(params)
|
|
29
|
+
|
|
30
|
+
# Do connect request
|
|
31
|
+
VirementMaitrise::Faraday::Authentication::Connection.post(
|
|
32
|
+
url: url + query_string,
|
|
33
|
+
req_body: payload.to_json,
|
|
34
|
+
client: @client,
|
|
35
|
+
custom_content_type: 'application/json',
|
|
36
|
+
bearer: "Bearer #{@client.token}",
|
|
37
|
+
secure_headers: true
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# ------------ API ENDPOINT ------------
|
|
42
|
+
def _endpoint(provider_id)
|
|
43
|
+
"#{_api_base_url}/#{VirementMaitrise::Api::Endpoints::Pis::INITIATE}/#{provider_id}/initiate"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# ------------ BASE URL ------------
|
|
47
|
+
def _api_base_url
|
|
48
|
+
VirementMaitrise::Api::BaseUrl::FINTECTURE_API_URL[@client.environment.to_sym]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'faraday'
|
|
5
|
+
require 'virementmaitrise/endpoints/pis'
|
|
6
|
+
require 'virementmaitrise/base_url'
|
|
7
|
+
require 'virementmaitrise/utils/query_builder'
|
|
8
|
+
|
|
9
|
+
module VirementMaitrise
|
|
10
|
+
module Pis
|
|
11
|
+
class Payments
|
|
12
|
+
class << self
|
|
13
|
+
# ------------ PUBLIC METHOD ------------
|
|
14
|
+
def get(client, session_id, with_virtualbeneficiary: false)
|
|
15
|
+
@client = client
|
|
16
|
+
|
|
17
|
+
# Do the get_payments request
|
|
18
|
+
_request session_id, with_virtualbeneficiary: with_virtualbeneficiary
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
# ------------ REQUEST ------------
|
|
24
|
+
def _request(session_id, with_virtualbeneficiary: false)
|
|
25
|
+
url = _endpoint
|
|
26
|
+
|
|
27
|
+
# Build uri params
|
|
28
|
+
params = {}
|
|
29
|
+
params['with_virtualbeneficiary'] = 'true' if with_virtualbeneficiary
|
|
30
|
+
|
|
31
|
+
query_string = VirementMaitrise::Utils::QueryBuilder.build_query_string(params)
|
|
32
|
+
|
|
33
|
+
VirementMaitrise::Faraday::Authentication::Connection.get(
|
|
34
|
+
url: "#{url}/#{session_id}" + query_string,
|
|
35
|
+
client: @client,
|
|
36
|
+
custom_content_type: 'application/json',
|
|
37
|
+
bearer: "Bearer #{@client.token}",
|
|
38
|
+
secure_headers: true
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# ------------ API ENDPOINT ------------
|
|
43
|
+
def _endpoint
|
|
44
|
+
"#{_api_base_url}/#{VirementMaitrise::Api::Endpoints::Pis::PAYMENTS}"
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# ------------ BASE URL ------------
|
|
48
|
+
def _api_base_url
|
|
49
|
+
VirementMaitrise::Api::BaseUrl::FINTECTURE_API_URL[@client.environment.to_sym]
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'faraday'
|
|
5
|
+
require 'virementmaitrise/endpoints/pis'
|
|
6
|
+
require 'virementmaitrise/base_url'
|
|
7
|
+
module VirementMaitrise
|
|
8
|
+
module Pis
|
|
9
|
+
class Refund
|
|
10
|
+
class << self
|
|
11
|
+
# ------------ PUBLIC METHOD ------------
|
|
12
|
+
def generate(client, session_id, amount, user_id)
|
|
13
|
+
@client = client
|
|
14
|
+
|
|
15
|
+
# Build the request payload
|
|
16
|
+
payload = _build_payload session_id, amount, user_id
|
|
17
|
+
# Do the _request request
|
|
18
|
+
_request payload
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
# ------------ REQUEST ------------
|
|
24
|
+
def _request(payload)
|
|
25
|
+
# Get the url request
|
|
26
|
+
url = _endpoint
|
|
27
|
+
|
|
28
|
+
# Do connect request
|
|
29
|
+
VirementMaitrise::Faraday::Authentication::Connection.post(
|
|
30
|
+
url: url,
|
|
31
|
+
req_body: payload.to_json,
|
|
32
|
+
client: @client,
|
|
33
|
+
custom_content_type: 'application/json',
|
|
34
|
+
bearer: "Bearer #{@client.token}",
|
|
35
|
+
secure_headers: true
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# ------------ BUILD PAYLOAD ------------
|
|
40
|
+
def _build_payload(session_id, amount, user_id)
|
|
41
|
+
# Return the payload
|
|
42
|
+
{
|
|
43
|
+
meta: {
|
|
44
|
+
session_id: session_id,
|
|
45
|
+
user_id: user_id
|
|
46
|
+
},
|
|
47
|
+
data: {
|
|
48
|
+
attributes: {
|
|
49
|
+
amount: amount.to_s
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# ------------ API ENDPOINT ------------
|
|
56
|
+
def _endpoint
|
|
57
|
+
"#{_api_base_url}/#{VirementMaitrise::Api::Endpoints::Pis::REFUND}"
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# ------------ BASE URL ------------
|
|
61
|
+
def _api_base_url
|
|
62
|
+
VirementMaitrise::Api::BaseUrl::FINTECTURE_API_URL[@client.environment.to_sym]
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'faraday'
|
|
5
|
+
require 'virementmaitrise/endpoints/pis'
|
|
6
|
+
require 'virementmaitrise/base_url'
|
|
7
|
+
require 'virementmaitrise/utils/query_builder'
|
|
8
|
+
module VirementMaitrise
|
|
9
|
+
module Pis
|
|
10
|
+
class RequestToPay
|
|
11
|
+
class << self
|
|
12
|
+
# ------------ PUBLIC METHOD ------------
|
|
13
|
+
def generate(client, payload = nil, x_language, redirect_uri)
|
|
14
|
+
@client = client
|
|
15
|
+
|
|
16
|
+
# Do the _request request
|
|
17
|
+
_request payload, x_language, redirect_uri
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
# ------------ REQUEST ------------
|
|
23
|
+
def _request(payload, x_language, redirect_uri)
|
|
24
|
+
# Get the url request
|
|
25
|
+
url = _endpoint
|
|
26
|
+
|
|
27
|
+
# Build uri params
|
|
28
|
+
params = {}
|
|
29
|
+
params['redirect_uri'] = redirect_uri if redirect_uri
|
|
30
|
+
query_string = VirementMaitrise::Utils::QueryBuilder.build_query_string(params)
|
|
31
|
+
|
|
32
|
+
# Build additional headers
|
|
33
|
+
additional_headers = {}
|
|
34
|
+
additional_headers['x-language'] = x_language
|
|
35
|
+
|
|
36
|
+
# Do connect request
|
|
37
|
+
VirementMaitrise::Faraday::Authentication::Connection.post(
|
|
38
|
+
url: url + query_string,
|
|
39
|
+
req_body: payload.to_json,
|
|
40
|
+
client: @client,
|
|
41
|
+
custom_content_type: 'application/json',
|
|
42
|
+
bearer: "Bearer #{@client.token}",
|
|
43
|
+
secure_headers: true,
|
|
44
|
+
additional_headers: additional_headers
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# ------------ API ENDPOINT ------------
|
|
49
|
+
def _endpoint
|
|
50
|
+
"#{_api_base_url}/#{VirementMaitrise::Api::Endpoints::Pis::REQUEST_TO_PAY}"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# ------------ BASE URL ------------
|
|
54
|
+
def _api_base_url
|
|
55
|
+
VirementMaitrise::Api::BaseUrl::FINTECTURE_API_URL[@client.environment.to_sym]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'faraday'
|
|
5
|
+
require 'virementmaitrise/endpoints/pis'
|
|
6
|
+
require 'virementmaitrise/base_url'
|
|
7
|
+
|
|
8
|
+
module VirementMaitrise
|
|
9
|
+
module Pis
|
|
10
|
+
class Settlements
|
|
11
|
+
class << self
|
|
12
|
+
# ------------ PUBLIC METHOD ------------
|
|
13
|
+
def get(client, settlement_id, include_payments)
|
|
14
|
+
@client = client
|
|
15
|
+
|
|
16
|
+
# Do the get_payments request
|
|
17
|
+
_request settlement_id, include_payments
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
# ------------ REQUEST ------------
|
|
23
|
+
def _request(settlement_id, include_payments)
|
|
24
|
+
url = _endpoint
|
|
25
|
+
url += "/#{settlement_id}" if settlement_id
|
|
26
|
+
url += "?include=payments" if include_payments
|
|
27
|
+
|
|
28
|
+
VirementMaitrise::Faraday::Authentication::Connection.get(
|
|
29
|
+
url: url,
|
|
30
|
+
client: @client,
|
|
31
|
+
custom_content_type: 'application/json',
|
|
32
|
+
bearer: "Bearer #{@client.token}",
|
|
33
|
+
secure_headers: true
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# ------------ API ENDPOINT ------------
|
|
38
|
+
def _endpoint
|
|
39
|
+
"#{_api_base_url}/#{VirementMaitrise::Api::Endpoints::Pis::SETTLEMENTS}"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# ------------ BASE URL ------------
|
|
43
|
+
def _api_base_url
|
|
44
|
+
VirementMaitrise::Api::BaseUrl::FINTECTURE_API_URL[@client.environment.to_sym]
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'base64'
|
|
4
|
+
require 'json'
|
|
5
|
+
require 'faraday'
|
|
6
|
+
require 'virementmaitrise/utils/validation'
|
|
7
|
+
require 'virementmaitrise/exceptions'
|
|
8
|
+
require 'virementmaitrise/utils/date'
|
|
9
|
+
require 'virementmaitrise/utils/constants'
|
|
10
|
+
|
|
11
|
+
module VirementMaitrise
|
|
12
|
+
module Ressources
|
|
13
|
+
class Applications
|
|
14
|
+
class << self
|
|
15
|
+
# ------------ PUBLIC METHOD ------------
|
|
16
|
+
def get(client)
|
|
17
|
+
@client = client
|
|
18
|
+
|
|
19
|
+
# Do the request
|
|
20
|
+
_request
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
# ------------ REQUEST ------------
|
|
26
|
+
def _request
|
|
27
|
+
# Get the url request
|
|
28
|
+
url = _endpoint
|
|
29
|
+
|
|
30
|
+
# Build additional headers
|
|
31
|
+
additional_headers = {}
|
|
32
|
+
additional_headers['app_id'] = @client.app_id
|
|
33
|
+
|
|
34
|
+
# Do connect request
|
|
35
|
+
VirementMaitrise::Faraday::Authentication::Connection.get(
|
|
36
|
+
url: url,
|
|
37
|
+
client: @client,
|
|
38
|
+
custom_content_type: 'application/json',
|
|
39
|
+
secure_headers: true,
|
|
40
|
+
additional_headers: additional_headers
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# ------------ API ENDPOINT ------------
|
|
45
|
+
def _endpoint
|
|
46
|
+
"#{_api_base_url}/#{VirementMaitrise::Api::Endpoints::Ressources::APPLICATION}"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# ------------ BASE URL ------------
|
|
50
|
+
def _api_base_url
|
|
51
|
+
VirementMaitrise::Api::BaseUrl::FINTECTURE_API_URL[@client.environment.to_sym]
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'base64'
|
|
4
|
+
require 'json'
|
|
5
|
+
require 'faraday'
|
|
6
|
+
require 'virementmaitrise/utils/validation'
|
|
7
|
+
require 'virementmaitrise/exceptions'
|
|
8
|
+
require 'virementmaitrise/utils/date'
|
|
9
|
+
require 'virementmaitrise/utils/constants'
|
|
10
|
+
require 'virementmaitrise/utils/query_builder'
|
|
11
|
+
|
|
12
|
+
module VirementMaitrise
|
|
13
|
+
module Ressources
|
|
14
|
+
class Providers
|
|
15
|
+
class << self
|
|
16
|
+
# ------------ PUBLIC METHOD ------------
|
|
17
|
+
def get(client, provider_id, paramsProviders)
|
|
18
|
+
@client = client
|
|
19
|
+
|
|
20
|
+
# Do the request
|
|
21
|
+
_request provider_id, paramsProviders
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
# ------------ REQUEST ------------
|
|
27
|
+
def _request(provider_id, paramsProviders)
|
|
28
|
+
# Get the url request
|
|
29
|
+
url = _endpoint provider_id
|
|
30
|
+
|
|
31
|
+
# Build additional headers
|
|
32
|
+
additional_headers = {}
|
|
33
|
+
additional_headers['app_id'] = @client.app_id
|
|
34
|
+
|
|
35
|
+
# Build uri params
|
|
36
|
+
params = paramsProviders || {}
|
|
37
|
+
query_string = VirementMaitrise::Utils::QueryBuilder.build_query_string(params)
|
|
38
|
+
|
|
39
|
+
# Do connect request
|
|
40
|
+
VirementMaitrise::Faraday::Authentication::Connection.get(
|
|
41
|
+
url: url + query_string,
|
|
42
|
+
client: @client,
|
|
43
|
+
custom_content_type: 'application/json',
|
|
44
|
+
secure_headers: true,
|
|
45
|
+
additional_headers: additional_headers
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# ------------ API ENDPOINT ------------
|
|
50
|
+
def _endpoint(provider_id)
|
|
51
|
+
base = "#{_api_base_url}/#{VirementMaitrise::Api::Endpoints::Ressources::PROVIDERS}"
|
|
52
|
+
provider_id ? "#{base}/#{provider_id}" : base
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# ------------ BASE URL ------------
|
|
56
|
+
def _api_base_url
|
|
57
|
+
VirementMaitrise::Api::BaseUrl::FINTECTURE_API_URL[@client.environment.to_sym]
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'base64'
|
|
4
|
+
require 'json'
|
|
5
|
+
require 'faraday'
|
|
6
|
+
require 'virementmaitrise/utils/validation'
|
|
7
|
+
require 'virementmaitrise/exceptions'
|
|
8
|
+
require 'virementmaitrise/utils/date'
|
|
9
|
+
require 'virementmaitrise/utils/constants'
|
|
10
|
+
require 'virementmaitrise/utils/query_builder'
|
|
11
|
+
|
|
12
|
+
module VirementMaitrise
|
|
13
|
+
module Ressources
|
|
14
|
+
class TestAccounts
|
|
15
|
+
class << self
|
|
16
|
+
# ------------ PUBLIC METHOD ------------
|
|
17
|
+
def get(client, provider_id)
|
|
18
|
+
@client = client
|
|
19
|
+
|
|
20
|
+
# Do the request
|
|
21
|
+
_request provider_id
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
# ------------ REQUEST ------------
|
|
27
|
+
def _request(provider_id)
|
|
28
|
+
# Get the url request
|
|
29
|
+
url = _endpoint
|
|
30
|
+
|
|
31
|
+
# Build additional headers
|
|
32
|
+
additional_headers = {}
|
|
33
|
+
additional_headers['app_id'] = @client.app_id
|
|
34
|
+
|
|
35
|
+
# Build uri params
|
|
36
|
+
params = {}
|
|
37
|
+
params['filter[provider_id]'] = provider_id if provider_id
|
|
38
|
+
query_string = VirementMaitrise::Utils::QueryBuilder.build_query_string(params)
|
|
39
|
+
# Do connect request
|
|
40
|
+
VirementMaitrise::Faraday::Authentication::Connection.get(
|
|
41
|
+
url: url + query_string,
|
|
42
|
+
client: @client,
|
|
43
|
+
custom_content_type: 'application/json',
|
|
44
|
+
secure_headers: true,
|
|
45
|
+
additional_headers: additional_headers
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# ------------ API ENDPOINT ------------
|
|
50
|
+
def _endpoint
|
|
51
|
+
"#{_api_base_url}/#{VirementMaitrise::Api::Endpoints::Ressources::TESTACCOUNTS}"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# ------------ BASE URL ------------
|
|
55
|
+
def _api_base_url
|
|
56
|
+
VirementMaitrise::Api::BaseUrl::FINTECTURE_API_URL[@client.environment.to_sym]
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module VirementMaitrise
|
|
2
|
+
module Api
|
|
3
|
+
module BaseUrl
|
|
4
|
+
FINTECTURE_OAUTH_URL = {
|
|
5
|
+
test: 'https://api.test.virementmaitrise.societegenerale.eu/oauth',
|
|
6
|
+
sandbox: 'https://api.sandbox.virementmaitrise.societegenerale.eu/oauth',
|
|
7
|
+
production: 'https://api.virementmaitrise.societegenerale.eu/oauth'
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
FINTECTURE_API_URL = {
|
|
11
|
+
test: 'https://api.test.virementmaitrise.societegenerale.eu',
|
|
12
|
+
sandbox: 'https://api.sandbox.virementmaitrise.societegenerale.eu',
|
|
13
|
+
production: 'https://api.virementmaitrise.societegenerale.eu'
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
FINTECTURE_CONNECT_URL = {
|
|
17
|
+
test: 'https://connect-test.virementmaitrise.societegenerale.eu',
|
|
18
|
+
sandbox: 'https://connect-sandbox.virementmaitrise.societegenerale.eu',
|
|
19
|
+
production: 'https://connect.virementmaitrise.societegenerale.eu'
|
|
20
|
+
}
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module VirementMaitrise
|
|
4
|
+
module Api
|
|
5
|
+
module Endpoints
|
|
6
|
+
module Ais
|
|
7
|
+
CONNECT = 'ais/v2/connect'
|
|
8
|
+
ACCOUNTS = 'ais/v1/customer'
|
|
9
|
+
TRANSACTIONS = 'ais/v1/customer'
|
|
10
|
+
ACCOUNTHOLDERS = 'ais/v1/customer'
|
|
11
|
+
CUSTOMER = 'ais/v1/customer'
|
|
12
|
+
AUTHORIZE = 'ais/v1/provider'
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module VirementMaitrise
|
|
4
|
+
module Api
|
|
5
|
+
module Endpoints
|
|
6
|
+
module Authentication
|
|
7
|
+
OAUTH_TOKEN_AUTHORIZE = '/token/authorize'
|
|
8
|
+
OAUTH_ACCESS_TOKEN = '/accesstoken'
|
|
9
|
+
OAUTH_REFRESH_TOKEN = '/refreshtoken'
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module VirementMaitrise
|
|
4
|
+
module Api
|
|
5
|
+
module Endpoints
|
|
6
|
+
module Pis
|
|
7
|
+
INITIATE = 'pis/v2/provider'
|
|
8
|
+
REFUND = 'pis/v2/refund'
|
|
9
|
+
REQUEST_TO_PAY = 'pis/v2/request-to-pay'
|
|
10
|
+
PAYMENTS = 'pis/v2/payments'
|
|
11
|
+
CONNECT = 'pis/v2/connect'
|
|
12
|
+
SETTLEMENTS = 'pis/v2/settlements'
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|