mangopay4-ruby-sdk 3.44.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 +7 -0
- data/.github/workflows/ruby_cd.yml +34 -0
- data/.github/workflows/ruby_ci.yml +30 -0
- data/.gitignore +30 -0
- data/.rspec +3 -0
- data/CHANGELOG.md +640 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.md +162 -0
- data/Rakefile +5 -0
- data/bin/mangopay +9 -0
- data/lib/generators/mangopay/install_generator.rb +60 -0
- data/lib/generators/templates/mangopay.rb.erb +5 -0
- data/lib/mangopay/acquiring.rb +56 -0
- data/lib/mangopay/authorization_token.rb +89 -0
- data/lib/mangopay/bank_account.rb +49 -0
- data/lib/mangopay/bankingaliases.rb +29 -0
- data/lib/mangopay/bankingaliases_iban.rb +16 -0
- data/lib/mangopay/card.rb +54 -0
- data/lib/mangopay/card_registration.rb +9 -0
- data/lib/mangopay/client.rb +94 -0
- data/lib/mangopay/conversion.rb +49 -0
- data/lib/mangopay/deposit.rb +36 -0
- data/lib/mangopay/dispute.rb +152 -0
- data/lib/mangopay/errors.rb +66 -0
- data/lib/mangopay/event.rb +18 -0
- data/lib/mangopay/filter_parameters.rb +56 -0
- data/lib/mangopay/hook.rb +9 -0
- data/lib/mangopay/http_calls.rb +88 -0
- data/lib/mangopay/identity_verification.rb +16 -0
- data/lib/mangopay/json.rb +14 -0
- data/lib/mangopay/kyc_document.rb +83 -0
- data/lib/mangopay/legal_user.rb +21 -0
- data/lib/mangopay/legal_user_sca.rb +25 -0
- data/lib/mangopay/mandate.rb +42 -0
- data/lib/mangopay/natural_user.rb +20 -0
- data/lib/mangopay/natural_user_sca.rb +25 -0
- data/lib/mangopay/pay_in.rb +415 -0
- data/lib/mangopay/pay_out.rb +41 -0
- data/lib/mangopay/payment_method_metadata.rb +13 -0
- data/lib/mangopay/pre_authorization.rb +17 -0
- data/lib/mangopay/recipient.rb +35 -0
- data/lib/mangopay/refund.rb +19 -0
- data/lib/mangopay/regulatory.rb +22 -0
- data/lib/mangopay/report.rb +24 -0
- data/lib/mangopay/report_v2.rb +21 -0
- data/lib/mangopay/resource.rb +21 -0
- data/lib/mangopay/settlement.rb +21 -0
- data/lib/mangopay/transaction.rb +24 -0
- data/lib/mangopay/transfer.rb +20 -0
- data/lib/mangopay/ubo.rb +26 -0
- data/lib/mangopay/ubo_declaration.rb +32 -0
- data/lib/mangopay/user.rb +100 -0
- data/lib/mangopay/version.rb +3 -0
- data/lib/mangopay/virtual_account.rb +44 -0
- data/lib/mangopay/wallet.rb +17 -0
- data/lib/mangopay.rb +456 -0
- data/mangopay.gemspec +30 -0
- data/spec/mangopay/acquiring_spec.rb +176 -0
- data/spec/mangopay/authorization_token_spec.rb +70 -0
- data/spec/mangopay/bank_account_spec.rb +105 -0
- data/spec/mangopay/bankingaliases_spec.rb +29 -0
- data/spec/mangopay/card_registration_spec.rb +123 -0
- data/spec/mangopay/client_spec.png +0 -0
- data/spec/mangopay/client_spec.rb +213 -0
- data/spec/mangopay/configuration_spec.rb +249 -0
- data/spec/mangopay/conversion_spec.rb +96 -0
- data/spec/mangopay/deposit_spec.rb +107 -0
- data/spec/mangopay/dispute_spec.png +0 -0
- data/spec/mangopay/dispute_spec.rb +294 -0
- data/spec/mangopay/event_spec.rb +33 -0
- data/spec/mangopay/fetch_filters_spec.rb +63 -0
- data/spec/mangopay/hook_spec.rb +37 -0
- data/spec/mangopay/idempotency_spec.rb +41 -0
- data/spec/mangopay/identity_verification_spec.rb +47 -0
- data/spec/mangopay/kyc_document_spec.png +0 -0
- data/spec/mangopay/kyc_document_spec.rb +118 -0
- data/spec/mangopay/log_requests_filter_spec.rb +26 -0
- data/spec/mangopay/mandate_spec.rb +99 -0
- data/spec/mangopay/payin_applepay_direct_spec.rb +21 -0
- data/spec/mangopay/payin_bancontact_web_spec.rb +30 -0
- data/spec/mangopay/payin_bankwire_direct_spec.rb +74 -0
- data/spec/mangopay/payin_bankwire_external_instruction_spec.rb +104 -0
- data/spec/mangopay/payin_bizum_web_spec.rb +54 -0
- data/spec/mangopay/payin_blik_web_spec.rb +41 -0
- data/spec/mangopay/payin_card_direct_spec.rb +69 -0
- data/spec/mangopay/payin_card_web_spec.rb +64 -0
- data/spec/mangopay/payin_directdebit_direct_spec.rb +37 -0
- data/spec/mangopay/payin_directdebit_web_spec.rb +38 -0
- data/spec/mangopay/payin_giropay_web_spec.rb +30 -0
- data/spec/mangopay/payin_googlepay_direct_spec.rb +21 -0
- data/spec/mangopay/payin_ideal_web_spec.rb +30 -0
- data/spec/mangopay/payin_intent_spec.rb +151 -0
- data/spec/mangopay/payin_klarna_web_spec.rb +32 -0
- data/spec/mangopay/payin_mbway_web_spec.rb +32 -0
- data/spec/mangopay/payin_multibanco_web_spec.rb +31 -0
- data/spec/mangopay/payin_paybybank_web_spec.rb +56 -0
- data/spec/mangopay/payin_payconiq_web_spec.rb +31 -0
- data/spec/mangopay/payin_paypal_web_spec.rb +113 -0
- data/spec/mangopay/payin_preauthorized_direct_spec.rb +118 -0
- data/spec/mangopay/payin_satispay_web_spec.rb +32 -0
- data/spec/mangopay/payin_swish_web_spec.rb +30 -0
- data/spec/mangopay/payin_twint_web_spec.rb +30 -0
- data/spec/mangopay/payment_method_metadata_spec.rb +15 -0
- data/spec/mangopay/payout_bankwire_spec.rb +93 -0
- data/spec/mangopay/preauthorization_spec.rb +51 -0
- data/spec/mangopay/recipient_spec.rb +134 -0
- data/spec/mangopay/recurring_payin_spec.rb +222 -0
- data/spec/mangopay/refund_spec.rb +34 -0
- data/spec/mangopay/regulatory_spec.rb +26 -0
- data/spec/mangopay/report_spec.rb +40 -0
- data/spec/mangopay/report_v2_spec.rb +117 -0
- data/spec/mangopay/report_wallets_spec.rb +40 -0
- data/spec/mangopay/settlement_sample.csv +8 -0
- data/spec/mangopay/settlement_spec.rb +38 -0
- data/spec/mangopay/shared_resources.rb +1380 -0
- data/spec/mangopay/transaction_spec.rb +59 -0
- data/spec/mangopay/transfer_spec.rb +77 -0
- data/spec/mangopay/ubo_declaration_spec.rb +44 -0
- data/spec/mangopay/ubo_spec.rb +39 -0
- data/spec/mangopay/user_spec.rb +444 -0
- data/spec/mangopay/virtual_account_spec.rb +52 -0
- data/spec/mangopay/wallet_spec.rb +100 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/tmp/.keep +0 -0
- metadata +280 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
describe MangoPay::ReportV2 do
|
|
2
|
+
|
|
3
|
+
def create
|
|
4
|
+
params = {
|
|
5
|
+
"Tag": "Created using the Mangopay API Postman collection",
|
|
6
|
+
"DownloadFormat": "CSV",
|
|
7
|
+
"ReportType": "COLLECTED_FEES",
|
|
8
|
+
"AfterDate": 1740787200,
|
|
9
|
+
"BeforeDate": 1743544740
|
|
10
|
+
}
|
|
11
|
+
MangoPay::ReportV2.create(params)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe 'CREATE' do
|
|
15
|
+
it 'creates a report v2' do
|
|
16
|
+
created = create
|
|
17
|
+
expect(created['Id']).to_not be_nil
|
|
18
|
+
expect(created['Status']).to eq("PENDING")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'creates an intent report' do
|
|
22
|
+
params = {
|
|
23
|
+
"DownloadFormat": "CSV",
|
|
24
|
+
"ReportType": "ECHO_INTENT",
|
|
25
|
+
"AfterDate": 1748782023,
|
|
26
|
+
"BeforeDate": 1753102013,
|
|
27
|
+
"Filters": {
|
|
28
|
+
"PaymentMethod": "PAYPAL",
|
|
29
|
+
"Status": "CAPTURED",
|
|
30
|
+
"Type": "PAYIN"
|
|
31
|
+
},
|
|
32
|
+
"Columns": %w[Id Status Amount Currency FeesAmount FeesCurrency Type PaymentMethod BuyerId SellerId]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
created = MangoPay::ReportV2.create(params)
|
|
36
|
+
expect(created['Id']).to_not be_nil
|
|
37
|
+
expect(created['Status']).to eq("PENDING")
|
|
38
|
+
expect(created['ReportType']).to eq("ECHO_INTENT")
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'creates an intent actions report' do
|
|
42
|
+
params = {
|
|
43
|
+
"DownloadFormat": "CSV",
|
|
44
|
+
"ReportType": "ECHO_INTENT_ACTION",
|
|
45
|
+
"AfterDate": 1748782023,
|
|
46
|
+
"BeforeDate": 1753102013,
|
|
47
|
+
"Filters": {
|
|
48
|
+
"PaymentMethod": "PAYPAL",
|
|
49
|
+
"Status": "CAPTURED",
|
|
50
|
+
"Type": "PAYIN"
|
|
51
|
+
},
|
|
52
|
+
"Columns": %w[IntentId Id ExternalProcessingDate ExternalProviderReference ExternalMerchantReference Status Amount Currency FeesAmount FeesCurrency Type PaymentMethod BuyerId SellerId]
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
created = MangoPay::ReportV2.create(params)
|
|
56
|
+
expect(created['Id']).to_not be_nil
|
|
57
|
+
expect(created['Status']).to eq("PENDING")
|
|
58
|
+
expect(created['ReportType']).to eq("ECHO_INTENT_ACTION")
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it 'creates settlement report' do
|
|
62
|
+
params = {
|
|
63
|
+
"Tag": "Creating a report using new Mangopay system",
|
|
64
|
+
"DownloadFormat": "CSV",
|
|
65
|
+
"ReportType": "ECHO_SETTLEMENT",
|
|
66
|
+
"AfterDate": 1748782023,
|
|
67
|
+
"BeforeDate": 1753102013,
|
|
68
|
+
"Filters": {
|
|
69
|
+
"Status": "RECONCILED",
|
|
70
|
+
"ExternalProviderName": "PAYPAL"
|
|
71
|
+
},
|
|
72
|
+
"Columns": %w[Id CreationDate FileName SettlementCurrency Status SettledTransactionCount UnsettledTransactionCount SettledAmount DeclaredAmount DeficitAmount]
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
created = MangoPay::ReportV2.create(params)
|
|
76
|
+
expect(created['Id']).to_not be_nil
|
|
77
|
+
expect(created['Status']).to eq("PENDING")
|
|
78
|
+
expect(created['ReportType']).to eq("ECHO_SETTLEMENT")
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it 'creates split report' do
|
|
83
|
+
params = {
|
|
84
|
+
"Tag": "Creating a report using new Mangopay system",
|
|
85
|
+
"DownloadFormat": "CSV",
|
|
86
|
+
"ReportType": "ECHO_SPLIT",
|
|
87
|
+
"AfterDate": 1748782023,
|
|
88
|
+
"BeforeDate": 1753102013,
|
|
89
|
+
"Filters": {
|
|
90
|
+
"Status": "COMPLETED",
|
|
91
|
+
"IntentId": "int_0197f975-63f6-714e-8fc6-4451e128170f",
|
|
92
|
+
"Scheduled": false
|
|
93
|
+
},
|
|
94
|
+
"Columns": %w[Id IntentId AuthorId Amount Currency FeesAmount FeesCurrency Status Description CreditedWalletId DebitedWalletId Scheduled CreationDate ExecutionDate]
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
created = MangoPay::ReportV2.create(params)
|
|
98
|
+
expect(created['Id']).to_not be_nil
|
|
99
|
+
expect(created['Status']).to eq("PENDING")
|
|
100
|
+
expect(created['ReportType']).to eq("ECHO_SPLIT")
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
describe 'GET' do
|
|
104
|
+
it 'gets a report' do
|
|
105
|
+
created = create
|
|
106
|
+
fetched = MangoPay::ReportV2.get(created['Id'])
|
|
107
|
+
expect(fetched['Id']).to eq(created['Id'])
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it 'gets all the reports' do
|
|
111
|
+
reports = MangoPay::ReportV2.get_all
|
|
112
|
+
expect(reports).to be_kind_of(Array)
|
|
113
|
+
expect(reports).not_to be_empty
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
describe MangoPay::Report do
|
|
2
|
+
|
|
3
|
+
def create
|
|
4
|
+
params = {
|
|
5
|
+
Tag: 'custom meta',
|
|
6
|
+
CallbackURL: 'http://www.my-site.com/callbackURL/',
|
|
7
|
+
DownloadFormat: 'CSV',
|
|
8
|
+
Sort: 'CreationDate:DESC',
|
|
9
|
+
Preview: false,
|
|
10
|
+
Filters: {},
|
|
11
|
+
Columns: [ 'Id', 'CreationDate' ],
|
|
12
|
+
ReportType: 'wallets'
|
|
13
|
+
}
|
|
14
|
+
MangoPay::Report.create(params)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe 'CREATE' do
|
|
18
|
+
it 'creates a report' do
|
|
19
|
+
created = create
|
|
20
|
+
expect(created['Id']).to_not be_nil
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe 'FETCH' do
|
|
25
|
+
|
|
26
|
+
it 'fetches a report' do
|
|
27
|
+
created = create
|
|
28
|
+
fetched = MangoPay::Report.fetch(created['Id'])
|
|
29
|
+
expect(fetched['Id']).to eq(created['Id'])
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'fetches all the reports' do
|
|
33
|
+
reports = MangoPay::Report.fetch()
|
|
34
|
+
expect(reports).to be_kind_of(Array)
|
|
35
|
+
expect(reports).not_to be_empty
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
IntentId,ExternalProviderReference,ExternalPaymentMethod,ExternalTransactionType,ExternalTransactionStatus,ExternalProcessingDate,Amount,Currency,ExternalInitialReference,ExternalProviderFees
|
|
2
|
+
int_0197b19d-ee51-7b60-84cb-207491cf383a,6TU984332A894613W,PAYPAL,PAYMENT,SETTLED,19-06-2025,1000,EUR,,0
|
|
3
|
+
,,,,,,,,,
|
|
4
|
+
SettlementDate,19-06-2025,,,,,,,,
|
|
5
|
+
ExternalProviderName,Paypal,,,,,,,,
|
|
6
|
+
TotalSettlementFeesAmount,0,,,,,,,,
|
|
7
|
+
TotalSettlementAmount,1000,,,,,,,,
|
|
8
|
+
SettlementCurrency,EUR,,,,,,,,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
describe MangoPay::Settlement do
|
|
2
|
+
|
|
3
|
+
let!(:settlement) do
|
|
4
|
+
create_settlement_if_needed
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def create_settlement_if_needed
|
|
8
|
+
@settlement ||= begin
|
|
9
|
+
file_path = File.expand_path('settlement_sample.csv', __dir__)
|
|
10
|
+
file = File.binread(file_path)
|
|
11
|
+
MangoPay::Settlement.upload(file)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe 'UPLOAD' do
|
|
16
|
+
it 'uploads the file' do
|
|
17
|
+
expect(@settlement['Status']).to eq('UPLOADED')
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe 'GET' do
|
|
22
|
+
it 'fetches the file' do
|
|
23
|
+
fetched = MangoPay::Settlement.get(@settlement['SettlementId'])
|
|
24
|
+
expect(fetched['Status']).to eq('UPLOADED')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe 'UPDATE' do
|
|
29
|
+
it 'updates the file' do
|
|
30
|
+
file_path = File.expand_path('settlement_sample.csv', __dir__)
|
|
31
|
+
file = File.binread(file_path)
|
|
32
|
+
before_update = MangoPay::Settlement.upload(file)
|
|
33
|
+
expect(before_update['Status']).to eq('UPLOADED')
|
|
34
|
+
updated = MangoPay::Settlement.update(before_update['SettlementId'], file)
|
|
35
|
+
expect(updated['Status']).to eq('UPLOADED')
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|