adyen-ruby-api-library 4.1.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -1
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  5. data/.github/PULL_REQUEST_TEMPLATE.md +7 -0
  6. data/.github/dependabot.yml +8 -0
  7. data/.gitignore +2 -0
  8. data/README.md +72 -119
  9. data/docs/marketpay.html +2 -0
  10. data/lib/adyen-ruby-api-library.rb +3 -12
  11. data/lib/adyen/client.rb +49 -23
  12. data/lib/adyen/services/bin_lookup.rb +18 -0
  13. data/lib/adyen/services/checkout.rb +88 -8
  14. data/lib/adyen/services/{checkout_utility.rb → data_protection.rb} +4 -3
  15. data/lib/adyen/services/dispute.rb +20 -0
  16. data/lib/adyen/services/marketpay.rb +10 -7
  17. data/lib/adyen/services/payments.rb +15 -5
  18. data/lib/adyen/services/payouts.rb +3 -2
  19. data/lib/adyen/services/recurring.rb +3 -2
  20. data/lib/adyen/services/service.rb +2 -2
  21. data/lib/adyen/version.rb +1 -1
  22. data/spec/account_spec.rb +4 -1
  23. data/spec/bin_lookup_spec.rb +15 -0
  24. data/spec/checkout_spec.rb +247 -5
  25. data/spec/data_protection_spec.rb +14 -0
  26. data/spec/dispute_spec.rb +17 -0
  27. data/spec/fund_spec.rb +2 -1
  28. data/spec/mocks/requests/Account/check_account_holder.json +5 -0
  29. data/spec/mocks/requests/Account/delete_payout_methods.json +6 -0
  30. data/spec/mocks/requests/Account/delete_signatories.json +6 -0
  31. data/spec/mocks/requests/BinLookup/get_3ds_availability.json +4 -0
  32. data/spec/mocks/requests/BinLookup/get_cost_estimate.json +8 -0
  33. data/spec/mocks/requests/Checkout/orders.json +6 -0
  34. data/spec/mocks/requests/Checkout/orders_cancel.json +7 -0
  35. data/spec/mocks/requests/Checkout/origin_keys.json +3 -0
  36. data/spec/mocks/requests/Checkout/payment_methods_balance.json +9 -0
  37. data/spec/mocks/requests/DataProtectionService/request_subject_erasure.json +5 -0
  38. data/spec/mocks/requests/DisputeService/defend_dispute.json +5 -0
  39. data/spec/mocks/requests/DisputeService/delete_dispute_defense_document.json +5 -0
  40. data/spec/mocks/requests/DisputeService/retrieve_applicable_defense_reasons.json +4 -0
  41. data/spec/mocks/requests/DisputeService/supply_defense_document.json +11 -0
  42. data/spec/mocks/requests/Fund/refund_funds_transfer.json +7 -0
  43. data/spec/mocks/requests/Payment/donate.json +10 -0
  44. data/spec/mocks/requests/Payment/get_authentication_result.json +4 -0
  45. data/spec/mocks/requests/Payment/retrieve_3ds2_result.json +4 -0
  46. data/spec/mocks/requests/Payment/technical_cancel.json +4 -0
  47. data/spec/mocks/requests/Payment/void_pending_refund.json +4 -0
  48. data/spec/mocks/requests/Payout/payout.json +8 -0
  49. data/spec/mocks/requests/Recurring/schedule_account_updater.json +12 -0
  50. data/spec/mocks/responses/Account/check_account_holder.json +3 -0
  51. data/spec/mocks/responses/Account/delete_payout_methods.json +3 -0
  52. data/spec/mocks/responses/Account/delete_signatories.json +3 -0
  53. data/spec/mocks/responses/BinLookup/get_3ds_availability.json +8 -0
  54. data/spec/mocks/responses/BinLookup/get_cost_estimate.json +8 -0
  55. data/spec/mocks/responses/Checkout/get-payment-link.json +11 -0
  56. data/spec/mocks/responses/Checkout/orders.json +8 -0
  57. data/spec/mocks/responses/Checkout/orders_cancel.json +4 -0
  58. data/spec/mocks/responses/Checkout/origin_keys.json +5 -0
  59. data/spec/mocks/responses/Checkout/payment_methods_balance.json +3 -0
  60. data/spec/mocks/responses/Checkout/update-payment-link.json +11 -0
  61. data/spec/mocks/responses/DataProtectionService/request_subject_erasure.json +3 -0
  62. data/spec/mocks/responses/DisputeService/defend_dispute.json +5 -0
  63. data/spec/mocks/responses/DisputeService/delete_dispute_defense_document.json +5 -0
  64. data/spec/mocks/responses/DisputeService/retrieve_applicable_defense_reasons.json +28 -0
  65. data/spec/mocks/responses/DisputeService/supply_defense_document.json +5 -0
  66. data/spec/mocks/responses/Fund/refund_funds_transfer.json +5 -0
  67. data/spec/mocks/responses/Payment/donate.json +4 -0
  68. data/spec/mocks/responses/Payment/get_authentication_result.json +5 -0
  69. data/spec/mocks/responses/Payment/retrieve_3ds2_result.json +5 -0
  70. data/spec/mocks/responses/Payment/technical_cancel.json +3 -0
  71. data/spec/mocks/responses/Payment/void_pending_refund.json +3 -0
  72. data/spec/mocks/responses/Payout/payout.json +3 -0
  73. data/spec/mocks/responses/Recurring/schedule_account_updater.json +4 -0
  74. data/spec/payments_spec.rb +6 -1
  75. data/spec/payouts_spec.rb +2 -1
  76. data/spec/recurring_spec.rb +2 -1
  77. data/spec/service_spec.rb +2 -0
  78. data/spec/spec_helper.rb +18 -12
  79. metadata +60 -7
  80. data/spec/checkout_utility_spec.rb +0 -29
  81. data/spec/mocks/requests/CheckoutUtility/origin_keys.json +0 -7
  82. data/spec/mocks/responses/CheckoutUtility/origin_keys.json +0 -7
data/spec/payouts_spec.rb CHANGED
@@ -11,7 +11,8 @@ RSpec.describe Adyen::Payments, service: "payouts service" do
11
11
  ["store_detail_and_submit_third_party", "resultCode", "[payout-submit-received]"],
12
12
  ["submit_third_party", "resultCode", "[payout-submit-received]"],
13
13
  ["confirm_third_party", "response", "[payout-confirm-received]"],
14
- ["decline_third_party", "response", "[payout-decline-received]"]
14
+ ["decline_third_party", "response", "[payout-decline-received]"],
15
+ ["payout", "resultCode", "Success"]
15
16
  ]
16
17
 
17
18
  generate_tests(client, "Payout", test_sets, client.payouts)
@@ -10,7 +10,8 @@ RSpec.describe Adyen::Payments, service: "recurring service" do
10
10
  test_sets = [
11
11
  ["list_recurring_details", "creationDate", "2017-03-01T11:53:11+01:00"],
12
12
  ["disable", "response", "[detail-successfully-disabled]"],
13
- ["store_token", "result", "Success"]
13
+ ["store_token", "result", "Success"],
14
+ ["schedule_account_updater", "result", "Success"]
14
15
  ]
15
16
 
16
17
  generate_tests(client, "Recurring", test_sets, client.recurring)
data/spec/service_spec.rb CHANGED
@@ -18,7 +18,9 @@ RSpec.describe Adyen::Service do
18
18
  expect(described_class.action_for_method_name(:decline_third_party)).to eq 'declineThirdParty'
19
19
  expect(described_class.action_for_method_name(:delete_bank_accounts)).to eq 'deleteBankAccounts'
20
20
  expect(described_class.action_for_method_name(:delete_shareholders)).to eq 'deleteShareholders'
21
+ expect(described_class.action_for_method_name(:delete_signatories)).to eq 'deleteSignatories'
21
22
  expect(described_class.action_for_method_name(:disable)).to eq 'disable'
23
+ expect(described_class.action_for_method_name(:donate)).to eq 'donate'
22
24
  expect(described_class.action_for_method_name(:get_account_holder)).to eq 'getAccountHolder'
23
25
  expect(described_class.action_for_method_name(:get_tier_configuration)).to eq 'getTierConfiguration'
24
26
  expect(described_class.action_for_method_name(:get_uploaded_documents)).to eq 'getUploadedDocuments'
data/spec/spec_helper.rb CHANGED
@@ -18,20 +18,26 @@ def create_test(client, service, method_name, parent_object)
18
18
  request_body = JSON.parse(json_from_file("mocks/requests/#{service}/#{method_name}.json"))
19
19
  response_body = json_from_file("mocks/responses/#{service}/#{method_name}.json")
20
20
 
21
-
22
- if service == 'Checkout' || service == 'CheckoutUtility'
21
+ with_application_info = [
22
+ "authorise",
23
+ "authorise3d",
24
+ "authorise3ds2",
25
+ "payments",
26
+ "payment_session",
27
+ ]
28
+ if with_application_info.include?(method_name)
23
29
  client.add_application_info(request_body)
24
30
  end
25
31
 
26
32
  # client-generated headers
27
33
  headers = {
28
- 'Content-Type'.to_sym => 'application/json'
34
+ "Content-Type".to_sym => "application/json",
29
35
  }
30
36
 
31
37
  # authentication headers
32
- if not client.api_key.nil? then
38
+ if not client.api_key.nil?
33
39
  headers["x-api-key"] = client.api_key
34
- elsif not client.ws_user.nil? and not client.ws_password.nil? then
40
+ elsif not client.ws_user.nil? and not client.ws_password.nil?
35
41
  auth_header = "Basic " + Base64::encode64("#{client.ws_user}:#{client.ws_password}")
36
42
  headers["Authorization"] = auth_header.strip
37
43
  else
@@ -43,12 +49,12 @@ def create_test(client, service, method_name, parent_object)
43
49
  url = client.service_url(service, action, parent_object.version)
44
50
  WebMock.stub_request(:post, url).
45
51
  with(
46
- body: request_body,
47
- headers: headers
48
- ).
52
+ body: request_body,
53
+ headers: headers,
54
+ ).
49
55
  to_return(
50
- body: response_body
51
- )
56
+ body: response_body,
57
+ )
52
58
  result = parent_object.public_send(method_name, request_body)
53
59
 
54
60
  # result.response is already a Ruby object (Adyen::HashWithAccessors) (rather than an unparsed JSON string)
@@ -86,10 +92,10 @@ def create_client(auth_type)
86
92
  client = Adyen::Client.new
87
93
  client.env = :mock
88
94
 
89
- if auth_type == :basic then
95
+ if auth_type == :basic
90
96
  client.ws_user = "user"
91
97
  client.ws_password = "password"
92
- elsif auth_type == :api_key then
98
+ elsif auth_type == :api_key
93
99
  client.api_key = "api_key"
94
100
  else
95
101
  raise ArgumentError "Invalid auth type for test client"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adyen-ruby-api-library
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 5.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adyen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-07 00:00:00.000000000 Z
11
+ date: 2021-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -77,6 +77,10 @@ extensions: []
77
77
  extra_rdoc_files: []
78
78
  files:
79
79
  - ".github/CODEOWNERS"
80
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
81
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
82
+ - ".github/PULL_REQUEST_TEMPLATE.md"
83
+ - ".github/dependabot.yml"
80
84
  - ".gitignore"
81
85
  - ".travis.yml"
82
86
  - CODE_OF_CONDUCT.md
@@ -107,8 +111,10 @@ files:
107
111
  - lib/adyen/errors.rb
108
112
  - lib/adyen/hash_with_accessors.rb
109
113
  - lib/adyen/result.rb
114
+ - lib/adyen/services/bin_lookup.rb
110
115
  - lib/adyen/services/checkout.rb
111
- - lib/adyen/services/checkout_utility.rb
116
+ - lib/adyen/services/data_protection.rb
117
+ - lib/adyen/services/dispute.rb
112
118
  - lib/adyen/services/marketpay.rb
113
119
  - lib/adyen/services/payments.rb
114
120
  - lib/adyen/services/payouts.rb
@@ -119,19 +125,24 @@ files:
119
125
  - lib/adyen/version.rb
120
126
  - renovate.json
121
127
  - spec/account_spec.rb
128
+ - spec/bin_lookup_spec.rb
122
129
  - spec/checkout_spec.rb
123
- - spec/checkout_utility_spec.rb
124
130
  - spec/client_spec.rb
131
+ - spec/data_protection_spec.rb
132
+ - spec/dispute_spec.rb
125
133
  - spec/errors_spec.rb
126
134
  - spec/fund_spec.rb
127
135
  - spec/hash_with_accessors_spec.rb
128
136
  - spec/hop_spec.rb
137
+ - spec/mocks/requests/Account/check_account_holder.json
129
138
  - spec/mocks/requests/Account/close_account.json
130
139
  - spec/mocks/requests/Account/close_account_holder.json
131
140
  - spec/mocks/requests/Account/create_account.json
132
141
  - spec/mocks/requests/Account/create_account_holder.json
133
142
  - spec/mocks/requests/Account/delete_bank_accounts.json
143
+ - spec/mocks/requests/Account/delete_payout_methods.json
134
144
  - spec/mocks/requests/Account/delete_shareholders.json
145
+ - spec/mocks/requests/Account/delete_signatories.json
135
146
  - spec/mocks/requests/Account/get_account_holder.json
136
147
  - spec/mocks/requests/Account/get_uploaded_documents.json
137
148
  - spec/mocks/requests/Account/suspend_account_holder.json
@@ -140,17 +151,28 @@ files:
140
151
  - spec/mocks/requests/Account/update_account_holder.json
141
152
  - spec/mocks/requests/Account/update_account_holder_state.json
142
153
  - spec/mocks/requests/Account/upload_document.json
154
+ - spec/mocks/requests/BinLookup/get_3ds_availability.json
155
+ - spec/mocks/requests/BinLookup/get_cost_estimate.json
156
+ - spec/mocks/requests/Checkout/orders.json
157
+ - spec/mocks/requests/Checkout/orders_cancel.json
158
+ - spec/mocks/requests/Checkout/origin_keys.json
143
159
  - spec/mocks/requests/Checkout/payment-details.json
144
160
  - spec/mocks/requests/Checkout/payment-result.json
145
161
  - spec/mocks/requests/Checkout/payment_links.json
146
162
  - spec/mocks/requests/Checkout/payment_methods.json
163
+ - spec/mocks/requests/Checkout/payment_methods_balance.json
147
164
  - spec/mocks/requests/Checkout/payment_session.json
148
165
  - spec/mocks/requests/Checkout/payments.json
149
166
  - spec/mocks/requests/Checkout/verify.json
150
- - spec/mocks/requests/CheckoutUtility/origin_keys.json
167
+ - spec/mocks/requests/DataProtectionService/request_subject_erasure.json
168
+ - spec/mocks/requests/DisputeService/defend_dispute.json
169
+ - spec/mocks/requests/DisputeService/delete_dispute_defense_document.json
170
+ - spec/mocks/requests/DisputeService/retrieve_applicable_defense_reasons.json
171
+ - spec/mocks/requests/DisputeService/supply_defense_document.json
151
172
  - spec/mocks/requests/Fund/account_holder_balance.json
152
173
  - spec/mocks/requests/Fund/account_holder_transaction_list.json
153
174
  - spec/mocks/requests/Fund/payout_account_holder.json
175
+ - spec/mocks/requests/Fund/refund_funds_transfer.json
154
176
  - spec/mocks/requests/Fund/refund_not_paid_out_transfers.json
155
177
  - spec/mocks/requests/Fund/setup_beneficiary.json
156
178
  - spec/mocks/requests/Fund/transfer_funds.json
@@ -168,24 +190,34 @@ files:
168
190
  - spec/mocks/requests/Payment/cancel.json
169
191
  - spec/mocks/requests/Payment/cancel_or_refund.json
170
192
  - spec/mocks/requests/Payment/capture.json
193
+ - spec/mocks/requests/Payment/donate.json
194
+ - spec/mocks/requests/Payment/get_authentication_result.json
171
195
  - spec/mocks/requests/Payment/refund.json
196
+ - spec/mocks/requests/Payment/retrieve_3ds2_result.json
197
+ - spec/mocks/requests/Payment/technical_cancel.json
198
+ - spec/mocks/requests/Payment/void_pending_refund.json
172
199
  - spec/mocks/requests/Payout/confirm_third_party.json
173
200
  - spec/mocks/requests/Payout/decline_third_party.json
201
+ - spec/mocks/requests/Payout/payout.json
174
202
  - spec/mocks/requests/Payout/store_detail.json
175
203
  - spec/mocks/requests/Payout/store_detail_and_submit_third_party.json
176
204
  - spec/mocks/requests/Payout/submit_third_party.json
177
205
  - spec/mocks/requests/Recurring/disable.json
178
206
  - spec/mocks/requests/Recurring/list_recurring_details.json
207
+ - spec/mocks/requests/Recurring/schedule_account_updater.json
179
208
  - spec/mocks/requests/Recurring/store_token.json
180
209
  - spec/mocks/requests/Terminal/assign_terminals.json
181
210
  - spec/mocks/requests/Terminal/find_terminal.json
182
211
  - spec/mocks/requests/Terminal/get_terminals_under_account.json
212
+ - spec/mocks/responses/Account/check_account_holder.json
183
213
  - spec/mocks/responses/Account/close_account.json
184
214
  - spec/mocks/responses/Account/close_account_holder.json
185
215
  - spec/mocks/responses/Account/create_account.json
186
216
  - spec/mocks/responses/Account/create_account_holder.json
187
217
  - spec/mocks/responses/Account/delete_bank_accounts.json
218
+ - spec/mocks/responses/Account/delete_payout_methods.json
188
219
  - spec/mocks/responses/Account/delete_shareholders.json
220
+ - spec/mocks/responses/Account/delete_signatories.json
189
221
  - spec/mocks/responses/Account/get_account_holder.json
190
222
  - spec/mocks/responses/Account/get_uploaded_documents.json
191
223
  - spec/mocks/responses/Account/suspend_account_holder.json
@@ -194,17 +226,30 @@ files:
194
226
  - spec/mocks/responses/Account/update_account_holder.json
195
227
  - spec/mocks/responses/Account/update_account_holder_state.json
196
228
  - spec/mocks/responses/Account/upload_document.json
229
+ - spec/mocks/responses/BinLookup/get_3ds_availability.json
230
+ - spec/mocks/responses/BinLookup/get_cost_estimate.json
231
+ - spec/mocks/responses/Checkout/get-payment-link.json
232
+ - spec/mocks/responses/Checkout/orders.json
233
+ - spec/mocks/responses/Checkout/orders_cancel.json
234
+ - spec/mocks/responses/Checkout/origin_keys.json
197
235
  - spec/mocks/responses/Checkout/payment-details.json
198
236
  - spec/mocks/responses/Checkout/payment-result.json
199
237
  - spec/mocks/responses/Checkout/payment_links.json
200
238
  - spec/mocks/responses/Checkout/payment_methods.json
239
+ - spec/mocks/responses/Checkout/payment_methods_balance.json
201
240
  - spec/mocks/responses/Checkout/payment_session.json
202
241
  - spec/mocks/responses/Checkout/payments.json
242
+ - spec/mocks/responses/Checkout/update-payment-link.json
203
243
  - spec/mocks/responses/Checkout/verify.json
204
- - spec/mocks/responses/CheckoutUtility/origin_keys.json
244
+ - spec/mocks/responses/DataProtectionService/request_subject_erasure.json
245
+ - spec/mocks/responses/DisputeService/defend_dispute.json
246
+ - spec/mocks/responses/DisputeService/delete_dispute_defense_document.json
247
+ - spec/mocks/responses/DisputeService/retrieve_applicable_defense_reasons.json
248
+ - spec/mocks/responses/DisputeService/supply_defense_document.json
205
249
  - spec/mocks/responses/Fund/account_holder_balance.json
206
250
  - spec/mocks/responses/Fund/account_holder_transaction_list.json
207
251
  - spec/mocks/responses/Fund/payout_account_holder.json
252
+ - spec/mocks/responses/Fund/refund_funds_transfer.json
208
253
  - spec/mocks/responses/Fund/refund_not_paid_out_transfers.json
209
254
  - spec/mocks/responses/Fund/setup_beneficiary.json
210
255
  - spec/mocks/responses/Fund/transfer_funds.json
@@ -222,14 +267,21 @@ files:
222
267
  - spec/mocks/responses/Payment/cancel.json
223
268
  - spec/mocks/responses/Payment/cancel_or_refund.json
224
269
  - spec/mocks/responses/Payment/capture.json
270
+ - spec/mocks/responses/Payment/donate.json
271
+ - spec/mocks/responses/Payment/get_authentication_result.json
225
272
  - spec/mocks/responses/Payment/refund.json
273
+ - spec/mocks/responses/Payment/retrieve_3ds2_result.json
274
+ - spec/mocks/responses/Payment/technical_cancel.json
275
+ - spec/mocks/responses/Payment/void_pending_refund.json
226
276
  - spec/mocks/responses/Payout/confirm_third_party.json
227
277
  - spec/mocks/responses/Payout/decline_third_party.json
278
+ - spec/mocks/responses/Payout/payout.json
228
279
  - spec/mocks/responses/Payout/store_detail.json
229
280
  - spec/mocks/responses/Payout/store_detail_and_submit_third_party.json
230
281
  - spec/mocks/responses/Payout/submit_third_party.json
231
282
  - spec/mocks/responses/Recurring/disable.json
232
283
  - spec/mocks/responses/Recurring/list_recurring_details.json
284
+ - spec/mocks/responses/Recurring/schedule_account_updater.json
233
285
  - spec/mocks/responses/Recurring/store_token.json
234
286
  - spec/mocks/responses/Terminal/assign_terminals.json
235
287
  - spec/mocks/responses/Terminal/find_terminal.json
@@ -264,7 +316,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
316
  - !ruby/object:Gem::Version
265
317
  version: '0'
266
318
  requirements: []
267
- rubygems_version: 3.1.2
319
+ rubyforge_project:
320
+ rubygems_version: 2.7.8
268
321
  signing_key:
269
322
  specification_version: 4
270
323
  summary: Official Adyen Ruby API Library
@@ -1,29 +0,0 @@
1
- require "spec_helper"
2
- require "json"
3
-
4
- # rubocop:disable Metrics/BlockLength
5
-
6
- RSpec.describe Adyen::CheckoutUtility, service: "checkout utility" do
7
- before(:all) do
8
- @shared_values = {
9
- client: create_client(:api_key),
10
- service: "CheckoutUtility",
11
- }
12
- end
13
-
14
- it "sets the correct service URL base" do
15
- client = Adyen::Client.new(env: :test)
16
- expect(client.service_url_base(@shared_values[:service])).to eq("https://checkout-test.adyen.com/checkout")
17
- end
18
-
19
- # must be created manually because every field in the response is an array
20
- it "makes an origin_keys call" do
21
- parsed_body = create_test(@shared_values[:client], @shared_values[:service], "origin_keys", @shared_values[:client].checkout_utility)
22
- expect(parsed_body["originKeys"]).
23
- to be_a Adyen::HashWithAccessors
24
- expect(parsed_body["originKeys"]).
25
- to be_a_kind_of Hash
26
- end
27
- end
28
-
29
- # rubocop:enable Metrics/BlockLength
@@ -1,7 +0,0 @@
1
- {
2
- "originDomains": [
3
- "https://www.your-domain1.com",
4
- "https://www.your-domain2.com",
5
- "https://www.your-domain3.com"
6
- ]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "originKeys": {
3
- "https://www.your-domain1.com": "pub.v2.7814286629520534.aHR0cHM6Ly93d3cueW91ci1kb21haW4xLmNvbQ.UEwIBmW9-c_uXo5wSEr2w8Hz8hVIpujXPHjpcEse3xI",
4
- "https://www.your-domain3.com": "pub.v2.7814286629520534.aHR0cHM6Ly93d3cueW91ci1kb21haW4zLmNvbQ.fUvflu-YIdZSsLEH8Qqmr7ksE4ag_NYiiMXK0s6aq_4",
5
- "https://www.your-domain2.com": "pub.v2.7814286629520534.aHR0cHM6Ly93d3cueW91ci1kb21haW4yLmNvbQ.EP6eXBJKk0t7-QIUl6e_b1qMuMHGepxG_SlUqxAYrfY"
6
- }
7
- }