mangopay 3.26.1 → 3.28.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/lib/mangopay/pay_in.rb +20 -0
- data/lib/mangopay/version.rb +1 -1
- data/lib/mangopay/virtual_account.rb +44 -0
- data/lib/mangopay.rb +1 -0
- data/spec/mangopay/payin_swish_web_spec.rb +30 -0
- data/spec/mangopay/payin_twint_web_spec.rb +30 -0
- data/spec/mangopay/shared_resources.rb +56 -0
- data/spec/mangopay/virtual_account_spec.rb +52 -0
- metadata +12 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc9a455fb7af8971bada1a74b9bd9b95e1eeffcb0c564ff8730e545328a176e5
|
4
|
+
data.tar.gz: 988e0bcd0efcdf4b606fd5702b14b057e20e074629bb131b6bd0a9ba3bf8e7db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a12f03e94a555fec121e7eadc4d594a49d9a0398c78629fee555c8e9361569a33f9eed5998b0872474cf92ffcd617a6f0ac7d5412e4d934208480baf4c17c0d
|
7
|
+
data.tar.gz: 6cdbbc86797db65b537fd839015e4c7cfec85e5cea26c42a53bfe8856dbbc3b6857dc78aa0d6a43a47a0010eb587597ca32c7288a529d51a8ef5419df2b624ac
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
## [3.28.0] - 2024-11-15
|
2
|
+
### Added
|
3
|
+
|
4
|
+
New endpoint for [The TWINT PayIn object](https://docs.mangopay.com/api-reference/twint/twint-payin-object#the-twint-payin-object):
|
5
|
+
- [Create a TWINT PayIn](https://docs.mangopay.com/api-reference/twint/create-twint-payin)
|
6
|
+
- [View a PayIn (TWINT)](https://docs.mangopay.com/api-reference/twint/view-payin-twint)
|
7
|
+
|
8
|
+
New endpoint for [The Swish PayIn object](https://docs.mangopay.com/api-reference/swish/swish-payin-object):
|
9
|
+
- [Create a Swish PayIn](https://docs.mangopay.com/api-reference/swish/create-swish-payin)
|
10
|
+
- [View a PayIn (Swish)](https://docs.mangopay.com/api-reference/swish/view-payin-swish)
|
11
|
+
|
12
|
+
## [3.27.0] - 2024-10-29
|
13
|
+
### Added
|
14
|
+
|
15
|
+
New endpoints for The Virtual Account object:
|
16
|
+
- [Create a Virtual Account]()
|
17
|
+
- [Deactivate a Virtual Account]()
|
18
|
+
- [View a Virtual Account]()
|
19
|
+
- [List Virtual Accounts for a Wallet]()
|
20
|
+
- [View Client Availabilities]()
|
21
|
+
|
1
22
|
## [3.26.1] - 2024-10-03
|
2
23
|
### Fixed
|
3
24
|
|
data/lib/mangopay/pay_in.rb
CHANGED
@@ -243,6 +243,26 @@ module MangoPay
|
|
243
243
|
end
|
244
244
|
end
|
245
245
|
|
246
|
+
module Twint
|
247
|
+
class Web < Resource
|
248
|
+
include HTTPCalls::Create
|
249
|
+
|
250
|
+
def self.url(*)
|
251
|
+
"#{MangoPay.api_path}/payins/payment-methods/twint"
|
252
|
+
end
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
module Swish
|
257
|
+
class Web < Resource
|
258
|
+
include HTTPCalls::Create
|
259
|
+
|
260
|
+
def self.url(*)
|
261
|
+
"#{MangoPay.api_path}/payins/payment-methods/swish"
|
262
|
+
end
|
263
|
+
end
|
264
|
+
end
|
265
|
+
|
246
266
|
module RecurringPayments
|
247
267
|
class Recurring < Resource
|
248
268
|
include HTTPCalls::Create
|
data/lib/mangopay/version.rb
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
module MangoPay
|
2
|
+
|
3
|
+
class VirtualAccount < Resource
|
4
|
+
class << self
|
5
|
+
# Creates a new virtual account
|
6
|
+
def create(wallet_id, params, idempotency_key = nil)
|
7
|
+
url = "#{MangoPay.api_path}/wallets/#{wallet_id}/virtual-accounts"
|
8
|
+
MangoPay.request(:post, url, params, {}, idempotency_key)
|
9
|
+
end
|
10
|
+
|
11
|
+
# Updates:
|
12
|
+
# - irreversibly deactivates a virtual account with +virtual_account_id+
|
13
|
+
# see https://docs.mangopay.com/api-reference/virtual-accounts/deactivate-virtual-account
|
14
|
+
def deactivate(wallet_id, virtual_account_id, idempotency_key = nil)
|
15
|
+
url = "#{MangoPay.api_path}/wallets/#{wallet_id}/virtual-accounts/#{virtual_account_id}"
|
16
|
+
MangoPay.request(:put, url, {}, {}, idempotency_key)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Fetches:
|
20
|
+
# - view a virtual account with +virtual_account_id+
|
21
|
+
# see https://docs.mangopay.com/api-reference/virtual-accounts/view-virtual-account
|
22
|
+
def fetch(wallet_id, virtual_account_id)
|
23
|
+
url = "#{MangoPay.api_path}/wallets/#{wallet_id}/virtual-accounts/#{virtual_account_id}"
|
24
|
+
MangoPay.request(:get, url, {})
|
25
|
+
end
|
26
|
+
|
27
|
+
# Fetches:
|
28
|
+
# - view virtual accounts for given +wallet_id+
|
29
|
+
# see https://docs.mangopay.com/api-reference/virtual-accounts/list-virtual-accounts-wallet
|
30
|
+
def fetch_all(wallet_id, filters = {})
|
31
|
+
url = "#{MangoPay.api_path}/wallets/#{wallet_id}/virtual-accounts"
|
32
|
+
MangoPay.request(:get, url, {}, filters)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Fetches:
|
36
|
+
# Allows to check which account countries and currencies are available
|
37
|
+
# see https://docs.mangopay.com/api-reference/virtual-accounts/view-virtual-account-availabilities
|
38
|
+
def fetch_availabilities(filters = {})
|
39
|
+
url = "#{MangoPay.api_path}/virtual-accounts/availability"
|
40
|
+
MangoPay.request(:get, url, {}, filters)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/mangopay.rb
CHANGED
@@ -47,6 +47,7 @@ module MangoPay
|
|
47
47
|
autoload :Deposit, 'mangopay/deposit'
|
48
48
|
autoload :Conversion, 'mangopay/conversion'
|
49
49
|
autoload :PaymentMethodMetadata, 'mangopay/payment_method_metadata'
|
50
|
+
autoload :VirtualAccount, 'mangopay/virtual_account'
|
50
51
|
|
51
52
|
# temporary
|
52
53
|
autoload :Temp, 'mangopay/temp'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
describe MangoPay::PayIn::Swish::Web, type: :feature do
|
2
|
+
include_context 'wallets'
|
3
|
+
include_context 'payins'
|
4
|
+
|
5
|
+
def check_type_and_status(payin)
|
6
|
+
expect(payin['Type']).to eq('PAYIN')
|
7
|
+
expect(payin['Nature']).to eq('REGULAR')
|
8
|
+
expect(payin['PaymentType']).to eq('SWISH')
|
9
|
+
expect(payin['ExecutionType']).to eq('WEB')
|
10
|
+
expect(payin['Status']).to eq('CREATED')
|
11
|
+
end
|
12
|
+
|
13
|
+
describe 'CREATE' do
|
14
|
+
it 'creates a swish web payin' do
|
15
|
+
created = new_payin_swish_web
|
16
|
+
expect(created['Id']).not_to be_nil
|
17
|
+
check_type_and_status(created)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'FETCH' do
|
22
|
+
it 'fetches a payin' do
|
23
|
+
created = new_payin_swish_web
|
24
|
+
fetched = MangoPay::PayIn.fetch(created['Id'])
|
25
|
+
expect(fetched['Id']).to eq(created['Id'])
|
26
|
+
check_type_and_status(created)
|
27
|
+
check_type_and_status(fetched)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
describe MangoPay::PayIn::Twint::Web, type: :feature do
|
2
|
+
include_context 'wallets'
|
3
|
+
include_context 'payins'
|
4
|
+
|
5
|
+
def check_type_and_status(payin)
|
6
|
+
expect(payin['Type']).to eq('PAYIN')
|
7
|
+
expect(payin['Nature']).to eq('REGULAR')
|
8
|
+
expect(payin['PaymentType']).to eq('TWINT')
|
9
|
+
expect(payin['ExecutionType']).to eq('WEB')
|
10
|
+
expect(payin['Status']).to eq('CREATED')
|
11
|
+
end
|
12
|
+
|
13
|
+
describe 'CREATE' do
|
14
|
+
it 'creates a twint web payin' do
|
15
|
+
created = new_payin_twint_web
|
16
|
+
expect(created['Id']).not_to be_nil
|
17
|
+
check_type_and_status(created)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'FETCH' do
|
22
|
+
it 'fetches a payin' do
|
23
|
+
created = new_payin_twint_web
|
24
|
+
fetched = MangoPay::PayIn.fetch(created['Id'])
|
25
|
+
expect(fetched['Id']).to eq(created['Id'])
|
26
|
+
check_type_and_status(created)
|
27
|
+
check_type_and_status(fetched)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -83,6 +83,15 @@ shared_context 'wallets' do
|
|
83
83
|
)
|
84
84
|
end
|
85
85
|
|
86
|
+
def create_new_custom_wallet(user, currency)
|
87
|
+
MangoPay::Wallet.create(
|
88
|
+
Owners: [user['Id']],
|
89
|
+
Description: 'A test wallet',
|
90
|
+
Currency: currency,
|
91
|
+
Tag: 'Test wallet'
|
92
|
+
)
|
93
|
+
end
|
94
|
+
|
86
95
|
def wallets_check_amounts(wlt1, amnt1, wlt2 = nil, amnt2 = nil)
|
87
96
|
expect(wlt1['Balance']['Amount']).to eq amnt1
|
88
97
|
expect(wlt2['Balance']['Amount']).to eq amnt2 if wlt2
|
@@ -570,6 +579,36 @@ shared_context 'payins' do
|
|
570
579
|
)
|
571
580
|
end
|
572
581
|
|
582
|
+
###############################################
|
583
|
+
# Twint/web
|
584
|
+
###############################################
|
585
|
+
let(:new_payin_twint_web) do
|
586
|
+
MangoPay::PayIn::Twint::Web.create(
|
587
|
+
AuthorId: new_natural_user['Id'],
|
588
|
+
CreditedWalletId: create_new_custom_wallet(new_natural_user, 'CHF')['Id'],
|
589
|
+
DebitedFunds: { Currency: 'CHF', Amount: 50 },
|
590
|
+
Fees: { Currency: 'CHF', Amount: 10 },
|
591
|
+
ReturnURL: 'http://www.my-site.com/returnURL',
|
592
|
+
StatementDescriptor: "test",
|
593
|
+
Tag: 'Test PayIn/Twint/Web'
|
594
|
+
)
|
595
|
+
end
|
596
|
+
|
597
|
+
###############################################
|
598
|
+
# Swish/web
|
599
|
+
###############################################
|
600
|
+
let(:new_payin_swish_web) do
|
601
|
+
MangoPay::PayIn::Swish::Web.create(
|
602
|
+
AuthorId: new_natural_user['Id'],
|
603
|
+
CreditedWalletId: create_new_custom_wallet(new_natural_user, 'SEK')['Id'],
|
604
|
+
DebitedFunds: { Currency: 'SEK', Amount: 400 },
|
605
|
+
Fees: { Currency: 'SEK', Amount: 10 },
|
606
|
+
ReturnURL: 'http://www.my-site.com/returnURL',
|
607
|
+
StatementDescriptor: "test",
|
608
|
+
Tag: 'Test PayIn/Swish/Web'
|
609
|
+
)
|
610
|
+
end
|
611
|
+
|
573
612
|
###############################################
|
574
613
|
# PAYPAL/web V2
|
575
614
|
###############################################
|
@@ -998,4 +1037,21 @@ shared_context 'payment_method_metadata' do
|
|
998
1037
|
Bin: pay_in['CardInfo']['BIN']
|
999
1038
|
)
|
1000
1039
|
end
|
1040
|
+
end
|
1041
|
+
|
1042
|
+
###############################################
|
1043
|
+
shared_context 'virtual_account' do
|
1044
|
+
###############################################
|
1045
|
+
include_context 'users'
|
1046
|
+
include_context 'wallets'
|
1047
|
+
|
1048
|
+
def new_virtual_account(wallet_id)
|
1049
|
+
create_virtual_account = {
|
1050
|
+
Country: 'FR',
|
1051
|
+
VirtualAccountPurpose: 'Collection',
|
1052
|
+
Tag: 'create virtual account tag'
|
1053
|
+
}
|
1054
|
+
|
1055
|
+
MangoPay::VirtualAccount.create(wallet_id, create_virtual_account)
|
1056
|
+
end
|
1001
1057
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
describe MangoPay::VirtualAccount do
|
2
|
+
include_context 'virtual_account'
|
3
|
+
include_context 'wallets'
|
4
|
+
|
5
|
+
describe 'CREATE' do
|
6
|
+
it 'can create a Virtual Account' do
|
7
|
+
wallet = new_wallet
|
8
|
+
virtual_account = new_virtual_account(wallet['Id'])
|
9
|
+
expect(virtual_account).not_to be_nil
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe 'DEACTIVATE' do
|
14
|
+
it 'deactivates a Virtual Account' do
|
15
|
+
wallet = new_wallet
|
16
|
+
virtual_account = new_virtual_account(wallet['Id'])
|
17
|
+
deactivated = MangoPay::VirtualAccount.deactivate(wallet['Id'], virtual_account['Id'])
|
18
|
+
expect(deactivated).not_to be_nil
|
19
|
+
expect(deactivated['Status']).to eq 'CLOSED'
|
20
|
+
expect(deactivated['Id']).to eq(virtual_account['Id'])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'FETCH' do
|
25
|
+
it 'can get a Virtual Account' do
|
26
|
+
wallet = new_wallet
|
27
|
+
virtual_account = new_virtual_account(wallet['Id'])
|
28
|
+
fetched = MangoPay::VirtualAccount.fetch(wallet['Id'], virtual_account['Id'])
|
29
|
+
expect(fetched).not_to be_nil
|
30
|
+
expect(fetched['Id']).to eq(virtual_account['Id'])
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe 'FETCH ALL' do
|
35
|
+
it 'can get all Virtual Accounts for a wallet' do
|
36
|
+
wallet = new_wallet
|
37
|
+
virtual_account = new_virtual_account(wallet['Id'])
|
38
|
+
fetched_list = MangoPay::VirtualAccount.fetch_all(wallet['Id'])
|
39
|
+
expect(fetched_list).not_to be_nil
|
40
|
+
expect(fetched_list[0]['Id']).to eq(virtual_account['Id'])
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'FETCH AVAILABILITIES' do
|
45
|
+
it 'get availabilities' do
|
46
|
+
availabilities = MangoPay::VirtualAccount.fetch_availabilities
|
47
|
+
expect(availabilities).not_to be_nil
|
48
|
+
expect(availabilities['Collection']).not_to be_nil
|
49
|
+
expect(availabilities['UserOwned']).not_to be_nil
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mangopay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.28.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geoffroy Lorieux
|
8
8
|
- Sergiusz Woznicki
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-11-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
@@ -109,6 +109,7 @@ files:
|
|
109
109
|
- lib/mangopay/ubo_declaration.rb
|
110
110
|
- lib/mangopay/user.rb
|
111
111
|
- lib/mangopay/version.rb
|
112
|
+
- lib/mangopay/virtual_account.rb
|
112
113
|
- lib/mangopay/wallet.rb
|
113
114
|
- mangopay.gemspec
|
114
115
|
- spec/mangopay/authorization_token_spec.rb
|
@@ -149,6 +150,8 @@ files:
|
|
149
150
|
- spec/mangopay/payin_paypal_web_spec.rb
|
150
151
|
- spec/mangopay/payin_preauthorized_direct_spec.rb
|
151
152
|
- spec/mangopay/payin_satispay_web_spec.rb
|
153
|
+
- spec/mangopay/payin_swish_web_spec.rb
|
154
|
+
- spec/mangopay/payin_twint_web_spec.rb
|
152
155
|
- spec/mangopay/payment_method_metadata_spec.rb
|
153
156
|
- spec/mangopay/payout_bankwire_spec.rb
|
154
157
|
- spec/mangopay/preauthorization_spec.rb
|
@@ -163,6 +166,7 @@ files:
|
|
163
166
|
- spec/mangopay/ubo_declaration_spec.rb
|
164
167
|
- spec/mangopay/ubo_spec.rb
|
165
168
|
- spec/mangopay/user_spec.rb
|
169
|
+
- spec/mangopay/virtual_account_spec.rb
|
166
170
|
- spec/mangopay/wallet_spec.rb
|
167
171
|
- spec/spec_helper.rb
|
168
172
|
- spec/tmp/.keep
|
@@ -170,7 +174,7 @@ homepage: http://docs.mangopay.com/
|
|
170
174
|
licenses:
|
171
175
|
- MIT
|
172
176
|
metadata: {}
|
173
|
-
post_install_message:
|
177
|
+
post_install_message:
|
174
178
|
rdoc_options: []
|
175
179
|
require_paths:
|
176
180
|
- lib
|
@@ -186,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
190
|
version: '0'
|
187
191
|
requirements: []
|
188
192
|
rubygems_version: 3.0.3.1
|
189
|
-
signing_key:
|
193
|
+
signing_key:
|
190
194
|
specification_version: 4
|
191
195
|
summary: Ruby bindings for the version 2 of the MANGOPAY API
|
192
196
|
test_files:
|
@@ -228,6 +232,8 @@ test_files:
|
|
228
232
|
- spec/mangopay/payin_paypal_web_spec.rb
|
229
233
|
- spec/mangopay/payin_preauthorized_direct_spec.rb
|
230
234
|
- spec/mangopay/payin_satispay_web_spec.rb
|
235
|
+
- spec/mangopay/payin_swish_web_spec.rb
|
236
|
+
- spec/mangopay/payin_twint_web_spec.rb
|
231
237
|
- spec/mangopay/payment_method_metadata_spec.rb
|
232
238
|
- spec/mangopay/payout_bankwire_spec.rb
|
233
239
|
- spec/mangopay/preauthorization_spec.rb
|
@@ -242,6 +248,7 @@ test_files:
|
|
242
248
|
- spec/mangopay/ubo_declaration_spec.rb
|
243
249
|
- spec/mangopay/ubo_spec.rb
|
244
250
|
- spec/mangopay/user_spec.rb
|
251
|
+
- spec/mangopay/virtual_account_spec.rb
|
245
252
|
- spec/mangopay/wallet_spec.rb
|
246
253
|
- spec/spec_helper.rb
|
247
254
|
- spec/tmp/.keep
|