mangopay 3.26.1 → 3.28.0
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/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
|