mangopay-v4 4.0.0 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +29 -29
- data/.rspec +3 -3
- data/.rubocop.yml +1 -1
- data/.travis.yml +21 -13
- data/Gemfile +2 -2
- data/LICENSE +20 -20
- data/README.md +379 -379
- data/bin/mangopay +9 -9
- data/lib/mangopay.rb +132 -132
- data/lib/mangopay/api/api.rb +8 -8
- data/lib/mangopay/api/api_methods.rb +160 -136
- data/lib/mangopay/api/auth_token_manager.rb +173 -173
- data/lib/mangopay/api/http_client.rb +324 -324
- data/lib/mangopay/api/service/bank_accounts.rb +145 -145
- data/lib/mangopay/api/service/banking_aliases.rb +83 -0
- data/lib/mangopay/api/service/cards.rb +151 -151
- data/lib/mangopay/api/service/client_wallets.rb +88 -88
- data/lib/mangopay/api/service/clients.rb +67 -67
- data/lib/mangopay/api/service/dispute_documents.rb +157 -157
- data/lib/mangopay/api/service/disputes.rb +186 -186
- data/lib/mangopay/api/service/e_money.rb +63 -41
- data/lib/mangopay/api/service/events.rb +46 -46
- data/lib/mangopay/api/service/hooks.rb +92 -92
- data/lib/mangopay/api/service/kyc_documents.rb +152 -152
- data/lib/mangopay/api/service/mandates.rb +141 -141
- data/lib/mangopay/api/service/oauth_tokens.rb +24 -24
- data/lib/mangopay/api/service/pay_ins.rb +369 -259
- data/lib/mangopay/api/service/pay_outs.rb +53 -53
- data/lib/mangopay/api/service/pre_authorizations.rb +126 -68
- data/lib/mangopay/api/service/refunds.rb +159 -61
- data/lib/mangopay/api/service/reports.rb +150 -150
- data/lib/mangopay/api/service/repudiations.rb +31 -31
- data/lib/mangopay/api/service/responses.rb +101 -101
- data/lib/mangopay/api/service/settlement_transfers.rb +54 -54
- data/lib/mangopay/api/service/transactions.rb +246 -182
- data/lib/mangopay/api/service/transfers.rb +53 -53
- data/lib/mangopay/api/service/ubo_declarations.rb +94 -69
- data/lib/mangopay/api/service/users.rb +162 -162
- data/lib/mangopay/api/service/wallets.rb +98 -98
- data/lib/mangopay/api/uri_provider.rb +32 -34
- data/lib/mangopay/common/json_tag_converter.rb +70 -67
- data/lib/mangopay/common/jsonifier.rb +266 -248
- data/lib/mangopay/common/log_provider.rb +33 -33
- data/lib/mangopay/common/rate_limit_interval.rb +16 -16
- data/lib/mangopay/common/read_only_fields.rb +26 -26
- data/lib/mangopay/common/response_error.rb +61 -61
- data/lib/mangopay/common/sort_direction.rb +14 -14
- data/lib/mangopay/common/sort_field.rb +12 -12
- data/lib/mangopay/common/template_url_options.rb +8 -8
- data/lib/mangopay/configuration.rb +38 -38
- data/lib/mangopay/environment.rb +65 -65
- data/lib/mangopay/model/address.rb +26 -26
- data/lib/mangopay/model/billing.rb +13 -0
- data/lib/mangopay/model/birthplace.rb +15 -0
- data/lib/mangopay/model/declared_ubo.rb +20 -20
- data/lib/mangopay/model/dispute_reason.rb +14 -14
- data/lib/mangopay/model/document_page_consult.rb +14 -14
- data/lib/mangopay/model/e_money.rb +17 -17
- data/lib/mangopay/model/entity/account/bank_account.rb +25 -25
- data/lib/mangopay/model/entity/account/ca_bank_account.rb +26 -26
- data/lib/mangopay/model/entity/account/debited_bank_account.rb +31 -0
- data/lib/mangopay/model/entity/account/gb_bank_account.rb +20 -20
- data/lib/mangopay/model/entity/account/iban_bank_account.rb +20 -20
- data/lib/mangopay/model/entity/account/other_bank_account.rb +23 -23
- data/lib/mangopay/model/entity/account/us_bank_account.rb +23 -23
- data/lib/mangopay/model/entity/banking_alias.rb +27 -0
- data/lib/mangopay/model/entity/card.rb +44 -44
- data/lib/mangopay/model/entity/card_registration.rb +42 -42
- data/lib/mangopay/model/entity/client.rb +65 -62
- data/lib/mangopay/model/entity/client_wallet.rb +22 -22
- data/lib/mangopay/model/entity/dispute.rb +49 -49
- data/lib/mangopay/model/entity/dispute_document.rb +28 -28
- data/lib/mangopay/model/entity/entity_base.rb +17 -17
- data/lib/mangopay/model/entity/hook.rb +25 -25
- data/lib/mangopay/model/entity/kyc_document.rb +27 -27
- data/lib/mangopay/model/entity/mandate.rb +50 -50
- data/lib/mangopay/model/entity/pay_in/apple_pay_direct_pay_in.rb +26 -0
- data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +24 -21
- data/lib/mangopay/model/entity/pay_in/bank_wire_external_instruction_pay_in.rb +19 -0
- data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +41 -32
- data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +15 -12
- data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +36 -39
- data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +25 -22
- data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +37 -37
- data/lib/mangopay/model/entity/pay_in/google_pay_direct_pay_in.rb +28 -0
- data/lib/mangopay/model/entity/pay_in/pay_in.rb +18 -15
- data/lib/mangopay/model/entity/pay_in/paypal_web_pay_in.rb +15 -0
- data/lib/mangopay/model/entity/pay_out.rb +21 -21
- data/lib/mangopay/model/entity/pre_authorization.rb +74 -67
- data/lib/mangopay/model/entity/refund.rb +17 -17
- data/lib/mangopay/model/entity/report.rb +50 -50
- data/lib/mangopay/model/entity/repudiation.rb +17 -17
- data/lib/mangopay/model/entity/settlement_transfer.rb +16 -16
- data/lib/mangopay/model/entity/transaction.rb +51 -51
- data/lib/mangopay/model/entity/transfer.rb +12 -12
- data/lib/mangopay/model/entity/ubo.rb +30 -0
- data/lib/mangopay/model/entity/ubo_declaration.rb +29 -31
- data/lib/mangopay/model/entity/user/legal_user.rb +55 -52
- data/lib/mangopay/model/entity/user/natural_user.rb +49 -49
- data/lib/mangopay/model/entity/user/user.rb +17 -17
- data/lib/mangopay/model/entity/wallet.rb +27 -27
- data/lib/mangopay/model/enum/account_type.rb +23 -23
- data/lib/mangopay/model/enum/avs_result.rb +19 -0
- data/lib/mangopay/model/enum/banking_alias_type.rb +12 -0
- data/lib/mangopay/model/enum/business_type.rb +17 -0
- data/lib/mangopay/model/enum/card_status.rb +14 -14
- data/lib/mangopay/model/enum/card_type.rb +32 -32
- data/lib/mangopay/model/enum/card_validity.rb +18 -18
- data/lib/mangopay/model/enum/country_iso.rb +758 -758
- data/lib/mangopay/model/enum/culture_code.rb +43 -43
- data/lib/mangopay/model/enum/currency_iso.rb +551 -551
- data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +15 -15
- data/lib/mangopay/model/enum/declared_ubo_status.rb +17 -17
- data/lib/mangopay/model/enum/deposit_type.rb +14 -14
- data/lib/mangopay/model/enum/direct_debit_type.rb +12 -12
- data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +24 -24
- data/lib/mangopay/model/enum/dispute_document_type.rb +22 -22
- data/lib/mangopay/model/enum/dispute_reason_type.rb +32 -32
- data/lib/mangopay/model/enum/dispute_status.rb +20 -20
- data/lib/mangopay/model/enum/dispute_type.rb +14 -14
- data/lib/mangopay/model/enum/document_status.rb +20 -20
- data/lib/mangopay/model/enum/download_format.rb +10 -10
- data/lib/mangopay/model/enum/event_type.rb +76 -73
- data/lib/mangopay/model/enum/funds_type.rb +14 -14
- data/lib/mangopay/model/enum/hook_status.rb +12 -12
- data/lib/mangopay/model/enum/hook_validity.rb +14 -14
- data/lib/mangopay/model/enum/income_range.rb +20 -20
- data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +36 -36
- data/lib/mangopay/model/enum/kyc_document_type.rb +18 -18
- data/lib/mangopay/model/enum/kyc_level.rb +12 -12
- data/lib/mangopay/model/enum/legal_person_type.rb +14 -14
- data/lib/mangopay/model/enum/mandate_culture_code.rb +22 -22
- data/lib/mangopay/model/enum/mandate_execution_type.rb +10 -10
- data/lib/mangopay/model/enum/mandate_scheme.rb +12 -12
- data/lib/mangopay/model/enum/mandate_status.rb +23 -23
- data/lib/mangopay/model/enum/mandate_type.rb +10 -10
- data/lib/mangopay/model/enum/natural_user_capacity.rb +14 -14
- data/lib/mangopay/model/enum/pay_in_execution_type.rb +17 -17
- data/lib/mangopay/model/enum/pay_in_payment_type.rb +29 -20
- data/lib/mangopay/model/enum/pay_out_payment_type.rb +10 -10
- data/lib/mangopay/model/enum/payment_status.rb +20 -20
- data/lib/mangopay/model/enum/person_type.rb +14 -14
- data/lib/mangopay/model/enum/platform_type.rb +22 -22
- data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +10 -10
- data/lib/mangopay/model/enum/pre_authorization_status.rb +17 -17
- data/lib/mangopay/model/enum/refund_reason_type.rb +20 -20
- data/lib/mangopay/model/enum/report_status.rb +16 -16
- data/lib/mangopay/model/enum/report_type.rb +12 -12
- data/lib/mangopay/model/enum/sector.rb +29 -0
- data/lib/mangopay/model/enum/secure_mode.rb +15 -15
- data/lib/mangopay/model/enum/transaction_nature.rb +16 -16
- data/lib/mangopay/model/enum/transaction_status.rb +14 -14
- data/lib/mangopay/model/enum/transaction_type.rb +14 -14
- data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +18 -18
- data/lib/mangopay/model/enum/ubo_declaration_status.rb +20 -20
- data/lib/mangopay/model/event.rb +17 -17
- data/lib/mangopay/model/model.rb +214 -193
- data/lib/mangopay/model/money.rb +16 -16
- data/lib/mangopay/model/pay_in_web_extended_view.rb +30 -30
- data/lib/mangopay/model/platform_categorization.rb +15 -0
- data/lib/mangopay/model/refund_reason.rb +14 -14
- data/lib/mangopay/model/report_filter.rb +82 -82
- data/lib/mangopay/model/request/cancel_request.rb +15 -15
- data/lib/mangopay/model/request/complete_registration_request.rb +12 -12
- data/lib/mangopay/model/request/currency_request.rb +12 -12
- data/lib/mangopay/model/request/deactivation_request.rb +9 -9
- data/lib/mangopay/model/request/filter_request.rb +37 -37
- data/lib/mangopay/model/request/submit_document_request.rb +13 -13
- data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +16 -13
- data/lib/mangopay/model/request/upload_file_request.rb +8 -8
- data/lib/mangopay/model/response_replica.rb +26 -26
- data/lib/mangopay/model/security_info.rb +13 -0
- data/lib/mangopay/util/custom_formatter.rb +11 -11
- data/lib/mangopay/util/custom_logger.rb +33 -33
- data/lib/mangopay/util/enum.rb +51 -51
- data/lib/mangopay/util/file_encoder.rb +15 -15
- data/lib/mangopay/util/non_instantiable.rb +5 -5
- data/lib/mangopay/util/storage_strategy.rb +9 -9
- data/lib/mangopay/util/void_logger.rb +5 -5
- data/mangopay-v4.gemspec +32 -0
- data/mangopay.gemspec +32 -32
- data/spec/context/address_context.rb +24 -24
- data/spec/context/bank_account_context.rb +137 -137
- data/spec/context/banking_alias_context.rb +17 -0
- data/spec/context/birthplace_context.rb +17 -0
- data/spec/context/card_context.rb +45 -45
- data/spec/context/client_context.rb +43 -44
- data/spec/context/dispute_context.rb +36 -36
- data/spec/context/dispute_document_context.rb +19 -19
- data/spec/context/hook_context.rb +15 -15
- data/spec/context/kyc_document_context.rb +22 -22
- data/spec/context/mandate_context.rb +26 -26
- data/spec/context/pay_in_context.rb +319 -224
- data/spec/context/pay_out_context.rb +39 -38
- data/spec/context/pre_authorization_context.rb +44 -40
- data/spec/context/refund_context.rb +32 -32
- data/spec/context/report_context.rb +21 -21
- data/spec/context/repudiation_context.rb +18 -18
- data/spec/context/settlement_transfer_context.rb +27 -27
- data/spec/context/transfer_context.rb +50 -50
- data/spec/context/ubo_declaration_context.rb +29 -24
- data/spec/context/user_context.rb +83 -82
- data/spec/context/wallet_context.rb +52 -52
- data/spec/mangopay/bank_accounts_spec.rb +228 -228
- data/spec/mangopay/banking_alias_spec.rb +85 -0
- data/spec/mangopay/cards_spec.rb +133 -134
- data/spec/mangopay/client_wallets_spec.rb +147 -147
- data/spec/mangopay/clients_spec.rb +56 -54
- data/spec/mangopay/configuration_spec.rb +125 -125
- data/spec/mangopay/dispute_documents_spec.rb +173 -173
- data/spec/mangopay/disputes_spec.rb +264 -264
- data/spec/mangopay/e_money_spec.rb +57 -37
- data/spec/mangopay/events_spec.rb +49 -49
- data/spec/mangopay/hooks_spec.rb +70 -70
- data/spec/mangopay/kyc_documents_spec.rb +179 -179
- data/spec/mangopay/mandates_spec.rb +218 -218
- data/spec/mangopay/oauth_tokens_spec.rb +40 -40
- data/spec/mangopay/pay_ins_spec.rb +279 -180
- data/spec/mangopay/pay_outs_spec.rb +38 -38
- data/spec/mangopay/pre_authorizations_spec.rb +134 -57
- data/spec/mangopay/refunds_spec.rb +187 -39
- data/spec/mangopay/reports_spec.rb +118 -120
- data/spec/mangopay/responses_spec.rb +324 -294
- data/spec/mangopay/settlement_transfers_spec.rb +36 -36
- data/spec/mangopay/transactions_spec.rb +347 -232
- data/spec/mangopay/transfers_spec.rb +37 -37
- data/spec/mangopay/ubo_declarations_spec.rb +127 -64
- data/spec/mangopay/users_spec.rb +145 -145
- data/spec/mangopay/wallets_spec.rb +103 -103
- data/spec/spec_helper.rb +72 -72
- data/spec/tmp/MangoPay.AuthorizationToken.FileStore.tmp +6 -0
- data/spec/tmp/mangopay.log.tmp +1201 -0
- metadata +31 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 981c0cff11f33ff846ba84600d00d0457ae7eb1293e50233e2736f35dc0ca055
|
4
|
+
data.tar.gz: 6e6587b25fa6f0b4e9dc4ed8b0556bce89cc7a4e152305c866d23e80ac336df1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa874ceb317a7a0bd61c7a60e844d5132901ba6bc184ed749079a3d96fd9e2aa8ad18e5bd5dda7a573d89fe4a23c28a0d7587bfe7242ff6963511045c478113a
|
7
|
+
data.tar.gz: 7d19547c5e2e3c8a118f54d6d9f14f560fa220e740551eac396811924db18a0e0310737b3a219b547bf7f177f682d9a1340dd7632c047b4010e72460b6174802
|
data/.gitignore
CHANGED
@@ -1,30 +1,30 @@
|
|
1
|
-
*.gem
|
2
|
-
*.rbc
|
3
|
-
.bundle
|
4
|
-
.config
|
5
|
-
coverage
|
6
|
-
InstalledFiles
|
7
|
-
lib/bundler/man
|
8
|
-
pkg
|
9
|
-
rdoc
|
10
|
-
spec/reports
|
11
|
-
spec_old/tmp/*.tmp
|
12
|
-
test/tmp
|
13
|
-
test/version_tmp
|
14
|
-
tags
|
15
|
-
|
16
|
-
# YARD artifacts
|
17
|
-
.yardoc
|
18
|
-
_yardoc
|
19
|
-
doc/
|
20
|
-
|
21
|
-
.DS_Store
|
22
|
-
.rvmrc
|
23
|
-
/Gemfile.lock
|
24
|
-
/mangopay-*.gem
|
25
|
-
|
26
|
-
/nbproject/
|
27
|
-
|
28
|
-
/*.sublime-*
|
29
|
-
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
coverage
|
6
|
+
InstalledFiles
|
7
|
+
lib/bundler/man
|
8
|
+
pkg
|
9
|
+
rdoc
|
10
|
+
spec/reports
|
11
|
+
spec_old/tmp/*.tmp
|
12
|
+
test/tmp
|
13
|
+
test/version_tmp
|
14
|
+
tags
|
15
|
+
|
16
|
+
# YARD artifacts
|
17
|
+
.yardoc
|
18
|
+
_yardoc
|
19
|
+
doc/
|
20
|
+
|
21
|
+
.DS_Store
|
22
|
+
.rvmrc
|
23
|
+
/Gemfile.lock
|
24
|
+
/mangopay-*.gem
|
25
|
+
|
26
|
+
/nbproject/
|
27
|
+
|
28
|
+
/*.sublime-*
|
29
|
+
|
30
30
|
.idea
|
data/.rspec
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
--color
|
2
|
-
--profile
|
3
|
-
--r spec_helper
|
1
|
+
--color
|
2
|
+
--profile
|
3
|
+
--r spec_helper
|
4
4
|
--format documentation
|
data/.rubocop.yml
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
Layout/EndOfLine:
|
1
|
+
Layout/EndOfLine:
|
2
2
|
EnforcedStyle: lf
|
data/.travis.yml
CHANGED
@@ -1,13 +1,21 @@
|
|
1
|
-
language: ruby
|
2
|
-
rvm:
|
3
|
-
- 2.0.0
|
4
|
-
script: bundle exec rspec
|
5
|
-
deploy:
|
6
|
-
provider: rubygems
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.0.0
|
4
|
+
script: bundle exec rspec
|
5
|
+
deploy:
|
6
|
+
- provider: rubygems
|
7
|
+
api_key:
|
8
|
+
secure: gvlnYEh9cyL+mYeudKzlD+2Po+LgIzCjHzggJH+WDcbtgxlGAFpxbVJOOm/KY8VKhMgIudNV7FJl4Gl4rrG8JjNxbb+qM57ypU3yyDcUesQ+uj0DnN+xszv7M+XtcRQMlhkStawoj/E0QMYBPkAAr1lBpPIFQdC17GDkdn5XvaQ=
|
9
|
+
gem: mangopay
|
10
|
+
on:
|
11
|
+
tags: false
|
12
|
+
repo: Mangopay/mangopay2-ruby-sdk
|
13
|
+
branch: release
|
14
|
+
- provider: rubygems
|
15
|
+
api_key:
|
16
|
+
secure: gvlnYEh9cyL+mYeudKzlD+2Po+LgIzCjHzggJH+WDcbtgxlGAFpxbVJOOm/KY8VKhMgIudNV7FJl4Gl4rrG8JjNxbb+qM57ypU3yyDcUesQ+uj0DnN+xszv7M+XtcRQMlhkStawoj/E0QMYBPkAAr1lBpPIFQdC17GDkdn5XvaQ=
|
17
|
+
gem: mangopay-v4
|
18
|
+
on:
|
19
|
+
tags: false
|
20
|
+
repo: Mangopay/mangopay2-ruby-sdk
|
21
|
+
branch: v4
|
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
gemspec
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
gemspec
|
data/LICENSE
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
The MIT License (MIT)
|
2
|
-
|
3
|
-
Copyright (c) 2013 Mangopay
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
-
this software and associated documentation files (the "Software"), to deal in
|
7
|
-
the Software without restriction, including without limitation the rights to
|
8
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9
|
-
the Software, and to permit persons to whom the Software is furnished to do so,
|
10
|
-
subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
17
|
-
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18
|
-
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2013 Mangopay
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
7
|
+
the Software without restriction, including without limitation the rights to
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
10
|
+
subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
17
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,380 +1,380 @@
|
|
1
|
-
# MangoPay Ruby SDK [![Build Status](https://travis-ci.org/Mangopay/mangopay2-ruby-sdk.svg?branch=master)](https://travis-ci.org/Mangopay/mangopay2-ruby-sdk)
|
2
|
-
|
3
|
-
The new gem for interacting with the version 2.01 of the Mangopay API.
|
4
|
-
See the [API documentation](http://docs.mangopay.com/api-references/)
|
5
|
-
for more details on the API.
|
6
|
-
|
7
|
-
Tested on the following versions of Ruby: 2.4.1
|
8
|
-
|
9
|
-
## NEWS
|
10
|
-
|
11
|
-
### Version 4.*
|
12
|
-
**BREAKING CHANGES:** This version (4.\*) of the gem is targeting the Mangopay API Version 2.01. It has a brand new structure to make the api calls easier to use. It has not been tested for backward compatibility with 3.\* series.
|
13
|
-
|
14
|
-
For upgrading to v2.01 of the API, there is more information about the changes required [here](https://docs.mangopay.com/api-v2-01-overview/).
|
15
|
-
|
16
|
-
Account creation
|
17
|
-
-------------------------------------------------
|
18
|
-
You can get yourself a [free sandbox account](https://www.mangopay.com/signup/create-sandbox/) or sign up for a [production account](https://www.mangopay.com/signup/production-account/) (note that validation of your production account can take a few days, so think about doing it in advance of when you actually want to go live).
|
19
|
-
|
20
|
-
## Usage
|
21
|
-
|
22
|
-
### Install
|
23
|
-
* You can get yourself a [free sandbox account](https://www.mangopay.com/get-started/create-sandbox/) or sign up for a [production account](https://www.mangopay.com/signup/production-account/) (note that validation of your production account can take a few days, so think about doing it in advance of when you actually want to go live).
|
24
|
-
|
25
|
-
* Install the gem by either running ```gem install mangopay```
|
26
|
-
or by adding it to your Gemfile ```gem 'mangopay'```
|
27
|
-
|
28
|
-
* Using the credential info from the signup process above, call ```MangoPay.configure``` in your script as shown in the snippet below.
|
29
|
-
|
30
|
-
## Examples
|
31
|
-
|
32
|
-
A few examples which demonstrate making each type of request through the SDK V4, comparative to V3.
|
33
|
-
|
34
|
-
### Configure
|
35
|
-
|
36
|
-
#### V3 / V4
|
37
|
-
|
38
|
-
```ruby
|
39
|
-
require 'mangopay'
|
40
|
-
|
41
|
-
MangoPay.configure do |config|
|
42
|
-
config.client_id = :CLIENT_ID
|
43
|
-
config.
|
44
|
-
end
|
45
|
-
```
|
46
|
-
|
47
|
-
### Create a User
|
48
|
-
|
49
|
-
#### V3
|
50
|
-
|
51
|
-
```ruby
|
52
|
-
user_object = {
|
53
|
-
Address: {
|
54
|
-
AddressLine1: 'Test st., no. 18',
|
55
|
-
AddressLine2: 'bl. 16, int. 32',
|
56
|
-
City: 'Brasov',
|
57
|
-
Region: 'Tractoru',
|
58
|
-
PostalCode: '505600',
|
59
|
-
Country: 'RO'
|
60
|
-
},
|
61
|
-
KYCLevel: 'LIGHT',
|
62
|
-
Email: 'hello@moto.com',
|
63
|
-
FirstName: 'Hi',
|
64
|
-
LastName: 'Bye',
|
65
|
-
Birthday: 1_300_186_358,
|
66
|
-
Birthplace: 'Brasov',
|
67
|
-
Nationality: 'RO',
|
68
|
-
CountryOfResidence: 'RO',
|
69
|
-
Occupation: 'Cowboy',
|
70
|
-
IncomeRange: 1
|
71
|
-
}
|
72
|
-
|
73
|
-
created_user = MangoPay::NaturalUser.create user_object
|
74
|
-
|
75
|
-
created_user # => Hash object
|
76
|
-
```
|
77
|
-
|
78
|
-
#### V4
|
79
|
-
|
80
|
-
```ruby
|
81
|
-
address = MangoModel::Address.new
|
82
|
-
|
83
|
-
address.address_line1 = 'Test st., no. 18'
|
84
|
-
address.address_line2 = 'bl. 16, int. 32'
|
85
|
-
address.city = 'Brasov'
|
86
|
-
address.region = 'Tractoru'
|
87
|
-
address.postal_code = '505600'
|
88
|
-
address.country = MangoModel::CountryIso::RO
|
89
|
-
|
90
|
-
user_object = MangoModel::NaturalUser.new # or MangoModel::LegalUser.new
|
91
|
-
|
92
|
-
user_object.address = address
|
93
|
-
user_object.kyc_level = MangoModel::KycLevel::LIGHT
|
94
|
-
user_object.email = 'hello@moto.com'
|
95
|
-
user_object.first_name = 'Hi'
|
96
|
-
user_object.last_name = 'Bye'
|
97
|
-
user_object.birthday = 1_300_186_358
|
98
|
-
user_object.birthplace = 'Brasov'
|
99
|
-
user_object.nationality = MangoModel::CountryIso::RO
|
100
|
-
user_object.country_of_residence = MangoModel::CountryIso::RO
|
101
|
-
user_object.occupation = 'Cowboy'
|
102
|
-
user_object.income_range = MangoModel::IncomeRange::BETWEEN_50_80
|
103
|
-
|
104
|
-
created_user = MangoApi::Users.create user_object
|
105
|
-
|
106
|
-
created_user # => MangoModel::NaturalUser/MangoModel::LegalUser object
|
107
|
-
```
|
108
|
-
|
109
|
-
### Create a PayIn
|
110
|
-
|
111
|
-
#### V3
|
112
|
-
|
113
|
-
```ruby
|
114
|
-
natural_user = get_some_natural_user
|
115
|
-
|
116
|
-
wallet = MangoPay::Wallet.create({
|
117
|
-
Owners: [user['Id']],
|
118
|
-
Description: 'A test wallet',
|
119
|
-
Currency: 'EUR',
|
120
|
-
Tag: 'Test wallet'
|
121
|
-
})
|
122
|
-
|
123
|
-
created_pay_in = MangoPay::PayIn::Card::Web.create({
|
124
|
-
AuthorId: natural_user['Id'],
|
125
|
-
CreditedUserId: wallet['Owners'][0],
|
126
|
-
CreditedWalletId: wallet['Id'],
|
127
|
-
ReturnURL: 'http://www.my-site.com/returnURL/',
|
128
|
-
CardType: 'CB_VISA_MASTERCARD',
|
129
|
-
SecureMode: 'DEFAULT',
|
130
|
-
Culture: 'FR',
|
131
|
-
TemplateURLOptions: {
|
132
|
-
Payline: 'https://www.mysite.com/template/'
|
133
|
-
},
|
134
|
-
StatementDescriptor: 'Mar2016',
|
135
|
-
Tag: 'Create Card Web PayIn',
|
136
|
-
DebitedFunds: {
|
137
|
-
Currency: 'EUR',
|
138
|
-
Amount: 1000
|
139
|
-
},
|
140
|
-
Fees: {
|
141
|
-
Currency: 'EUR',
|
142
|
-
Amount: 0
|
143
|
-
}
|
144
|
-
})
|
145
|
-
|
146
|
-
created_pay_in # => Hash object
|
147
|
-
```
|
148
|
-
|
149
|
-
#### V4
|
150
|
-
|
151
|
-
```ruby
|
152
|
-
user = get_some_user
|
153
|
-
|
154
|
-
wallet = MangoModel::Wallet.new
|
155
|
-
wallet.owners = [user.id]
|
156
|
-
wallet.description = 'A test wallet'
|
157
|
-
wallet.currency = MangoModel::CurrencyIso::EUR
|
158
|
-
wallet.tag = 'Test wallet'
|
159
|
-
|
160
|
-
wallet = MangoApi::Wallets.create wallet
|
161
|
-
|
162
|
-
pay_in = MangoModel::CardWebPayIn.new
|
163
|
-
pay_in.author_id = user.id
|
164
|
-
pay_in.credited_user_id = wallet.owners[0].id
|
165
|
-
pay_in.credited_wallet_id = wallet.id
|
166
|
-
pay_in.return_url = 'http://www.my-site.com/returnURL/'
|
167
|
-
pay_in.card_type = MangoModel::CardType::CB_VISA_MASTERCARD
|
168
|
-
pay_in.secure_mode = MangoModel::SecureMode::DEFAULT
|
169
|
-
pay_in.culture = MangoModel::CultureCode::EN
|
170
|
-
pay_in.template_url_options = TemplateUrlOptions.new
|
171
|
-
pay_in.template_url_options.payline = 'https://www.mysite.com/template/'
|
172
|
-
pay_in.statement_descriptor = 'Mar2016'
|
173
|
-
pay_in.tag = 'Create Card Web PayIn'
|
174
|
-
pay_in.debited_funds = MangoModel::Money.new
|
175
|
-
pay_in.debited_funds.currency = MangoModel::CurrencyIso::EUR
|
176
|
-
pay_in.debited_funds.amount = 1000
|
177
|
-
pay_in.fees = MangoModel::Money.new
|
178
|
-
pay_in.fees.currency = MangoModel::CurrencyIso::EUR
|
179
|
-
pay_in.fees.amount = 0
|
180
|
-
|
181
|
-
pay_in = MangoApi::PayIns.create_card_web pay_in
|
182
|
-
|
183
|
-
pay_in # => MangoModel::CardWebPayIn object
|
184
|
-
```
|
185
|
-
|
186
|
-
### Update a User
|
187
|
-
|
188
|
-
#### V3
|
189
|
-
|
190
|
-
```ruby
|
191
|
-
natural_user = get_some_natural_user
|
192
|
-
|
193
|
-
updated_user = MangoPay::NaturalUser.update(natural_user['Id'] ,{
|
194
|
-
Email: 'jack@email.com'
|
195
|
-
})
|
196
|
-
|
197
|
-
updated_user # => Hash object
|
198
|
-
```
|
199
|
-
|
200
|
-
#### V4
|
201
|
-
|
202
|
-
```ruby
|
203
|
-
any_user = get_some_user
|
204
|
-
|
205
|
-
any_user.email = 'jack@email.com'
|
206
|
-
|
207
|
-
updated_user = MangoApi::Users.update any_user
|
208
|
-
|
209
|
-
updated_user # => MangoModel::LegalUser / MangoModel::NaturalUser object
|
210
|
-
```
|
211
|
-
|
212
|
-
### Get a User by id
|
213
|
-
|
214
|
-
#### V3
|
215
|
-
|
216
|
-
```ruby
|
217
|
-
natural_user = get_some_natural_user
|
218
|
-
|
219
|
-
retrieved_user = MangoPay::LegalUser.fetch(natural_user['Id'])
|
220
|
-
|
221
|
-
retrieved_user # => Hash object
|
222
|
-
```
|
223
|
-
|
224
|
-
#### V4
|
225
|
-
|
226
|
-
```ruby
|
227
|
-
any_user = get_some_user
|
228
|
-
|
229
|
-
retrieved_user = MangoApi::Users.get(any_user.id)
|
230
|
-
|
231
|
-
retrieved_user # => MangoModel::NaturalUser / MangoModel::LegalUser object
|
232
|
-
```
|
233
|
-
|
234
|
-
### Get a PayIn by id
|
235
|
-
|
236
|
-
#### V3
|
237
|
-
|
238
|
-
```ruby
|
239
|
-
pay_in = get_some_pay_in
|
240
|
-
|
241
|
-
retrieved_pay_in = MangoPay::PayIn.fetch(pay_in['Id'])
|
242
|
-
|
243
|
-
retrieved_pay_in # => Hash object
|
244
|
-
```
|
245
|
-
|
246
|
-
#### V4
|
247
|
-
|
248
|
-
```ruby
|
249
|
-
pay_in = get_some_pay_in
|
250
|
-
|
251
|
-
retrieved_pay_in = MangoApi::PayIns.get(pay_in.id)
|
252
|
-
|
253
|
-
retrieved_pay_in # => MangoModel::PayIn object
|
254
|
-
```
|
255
|
-
|
256
|
-
### List users
|
257
|
-
|
258
|
-
#### V3
|
259
|
-
|
260
|
-
```ruby
|
261
|
-
users = MangoPay::User.fetch
|
262
|
-
|
263
|
-
users # => Array of Hash object
|
264
|
-
```
|
265
|
-
|
266
|
-
#### V4
|
267
|
-
|
268
|
-
```ruby
|
269
|
-
users = MangoApi::Users.all
|
270
|
-
|
271
|
-
users # => Array of MangoModel::Dispute objects
|
272
|
-
```
|
273
|
-
|
274
|
-
### Sorting, Paging, Filtering
|
275
|
-
|
276
|
-
#### V3
|
277
|
-
|
278
|
-
```ruby
|
279
|
-
wallet = get_some_wallet
|
280
|
-
|
281
|
-
transactions = MangoPay::Transaction.fetch(wallet['Id'], {
|
282
|
-
'page' => 2,
|
283
|
-
'per_page' => 3,
|
284
|
-
'sort' => 'CreationDate:DESC',
|
285
|
-
'Nature' => 'REGULAR',
|
286
|
-
'Type' => 'PAYIN'
|
287
|
-
})
|
288
|
-
|
289
|
-
transactions # => Array of corresponding Hash objects
|
290
|
-
```
|
291
|
-
|
292
|
-
#### V4
|
293
|
-
|
294
|
-
In the new version, any API method which allows filtering of the result list will yield a FilterRequest object which has fields for every possible filtering parameter. See methods' documentation to learn what parameters are available for each call.
|
295
|
-
|
296
|
-
```ruby
|
297
|
-
wallet = get_some_wallet
|
298
|
-
|
299
|
-
transactions = MangoApi::Transactions.of_wallet(wallet.id) do |filter|
|
300
|
-
filter.page = 2
|
301
|
-
filter.per_page = 3
|
302
|
-
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
303
|
-
filter.sort_direction = MangoPay::SortDirection::ASC
|
304
|
-
filter.nature = MangoModel::TransactionNature::REGULAR
|
305
|
-
filter.type = MangoModel::TransactionType::PAYIN
|
306
|
-
end
|
307
|
-
|
308
|
-
transactions # => Array of corresponding MangoModel::Transaction objects
|
309
|
-
```
|
310
|
-
|
311
|
-
###### See the files in `'lib/mangopay/api/service'` and documentation for more info
|
312
|
-
|
313
|
-
### Error Handling
|
314
|
-
|
315
|
-
Similar in V4 as it was in V3
|
316
|
-
|
317
|
-
```ruby
|
318
|
-
begin
|
319
|
-
MangoApi::Users.create user
|
320
|
-
rescue MangoPay::ResponseError => ex
|
321
|
-
|
322
|
-
ex # => #<MangoPay::ResponseError: One or several required parameters are missing or incorrect. [...] FirstName: The FirstName field is required. LastName: The LastName field is required. Nationality: The Nationality field is required.>
|
323
|
-
|
324
|
-
ex.details # => {
|
325
|
-
# "Message"=>"One or several required parameters are missing or incorrect. [...]",
|
326
|
-
# "Type"=>"param_error",
|
327
|
-
# "Id"=>"5c080105-4da3-467d-820d-0906164e55fe",
|
328
|
-
# "Date"=>1409048671.0,
|
329
|
-
# "errors"=>{
|
330
|
-
# "FirstName"=>"The FirstName field is required.",
|
331
|
-
# "LastName"=>"The LastName field is required.", ...},
|
332
|
-
# "Code"=>"400",
|
333
|
-
# "Url"=>"/v2/.../users/natural"
|
334
|
-
# }
|
335
|
-
end
|
336
|
-
```
|
337
|
-
|
338
|
-
## New Features
|
339
|
-
|
340
|
-
### The `MangoPay::Environment` Object
|
341
|
-
|
342
|
-
Use Environments to specify multiple MangoPay configurations within the same program. Specify the environment you want to switch to by using
|
343
|
-
```ruby
|
344
|
-
require 'mangopay'
|
345
|
-
|
346
|
-
MangoPay.use_environment :env_id # Symbol
|
347
|
-
MangoPay.configure do |config|
|
348
|
-
config.client_id = 'first_id'
|
349
|
-
config.
|
350
|
-
end
|
351
|
-
MangoPay.use_environment :env2
|
352
|
-
MangoPay.configure do |config|
|
353
|
-
config.client_id = 'second_id'
|
354
|
-
config.
|
355
|
-
end
|
356
|
-
MangoPay.use_environment :env1
|
357
|
-
config = MangoPay.configuration
|
358
|
-
config.client_id # => 'first_id'
|
359
|
-
MangoPay.use_environment :env2
|
360
|
-
config = MangoPay.configuration
|
361
|
-
config.client_id # => 'second_id'
|
362
|
-
```
|
363
|
-
They all get stored in memory - only OAuth Tokens may be kept in files.
|
364
|
-
#####`MangoPay.configure` must be called from each new Environment.
|
365
|
-
######Of course, you can just call `MangoPay.configure` without specifying an environment, and all calls will be made under an automatically-assigned `:default` Environment.
|
366
|
-
#####Environments are Thread-specific for the duration of that Thread's lifetime.
|
367
|
-
This is done by Mapping each Thread's Ruby `Object.object_id` to the ID of the currently-active Environment. Configurations and other stuff like Rate Limits are stored in the Environment object obtainable context-specifically with a call to `MangoPay.environment` (i.e. Rate Limits and Configuration etc. of the Client will be Environment-specific). The relationship will be deleted as soon as the Thread dies, but the Environment remains correctly-configured to be used from any other Threads.
|
368
|
-
#####A new Thread will be assigned the most recently used Environment
|
369
|
-
...unless another has meanwhile been switched to, in which case it will be that one (i.e. Environment specified in the last call to `MangoPay.use_environment` or the `:default` Environment if none were made). All calls made from any Thread in the same Environment will return results pertaining to the configuration specified for that specific environment.
|
370
|
-
######This allows for various calls to be made in rapid succession with results dependent on each other without interfering with Configurations used on other Threads' Environments.
|
371
|
-
|
372
|
-
See the `MangoPay` module, the `Environment` and `Configuration` classes and documentation for more info.
|
373
|
-
|
374
|
-
## Examples
|
375
|
-
|
376
|
-
### See tests for explicit examples of configuration and virtually all API calls.
|
377
|
-
|
378
|
-
##### You can run all tests quickly with `rspec` command or configure RubyMine to run an RSpec configuration of all specs in folder `'spec/mangopay'`, or of a single file for targeted debugging.
|
379
|
-
|
1
|
+
# MangoPay Ruby SDK [![Build Status](https://travis-ci.org/Mangopay/mangopay2-ruby-sdk.svg?branch=master)](https://travis-ci.org/Mangopay/mangopay2-ruby-sdk)
|
2
|
+
|
3
|
+
The new gem for interacting with the version 2.01 of the Mangopay API.
|
4
|
+
See the [API documentation](http://docs.mangopay.com/api-references/)
|
5
|
+
for more details on the API.
|
6
|
+
|
7
|
+
Tested on the following versions of Ruby: 2.4.1
|
8
|
+
|
9
|
+
## NEWS
|
10
|
+
|
11
|
+
### Version 4.*
|
12
|
+
**BREAKING CHANGES:** This version (4.\*) of the gem is targeting the Mangopay API Version 2.01. It has a brand new structure to make the api calls easier to use. It has not been tested for backward compatibility with 3.\* series.
|
13
|
+
|
14
|
+
For upgrading to v2.01 of the API, there is more information about the changes required [here](https://docs.mangopay.com/api-v2-01-overview/).
|
15
|
+
|
16
|
+
Account creation
|
17
|
+
-------------------------------------------------
|
18
|
+
You can get yourself a [free sandbox account](https://www.mangopay.com/signup/create-sandbox/) or sign up for a [production account](https://www.mangopay.com/signup/production-account/) (note that validation of your production account can take a few days, so think about doing it in advance of when you actually want to go live).
|
19
|
+
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
### Install
|
23
|
+
* You can get yourself a [free sandbox account](https://www.mangopay.com/get-started/create-sandbox/) or sign up for a [production account](https://www.mangopay.com/signup/production-account/) (note that validation of your production account can take a few days, so think about doing it in advance of when you actually want to go live).
|
24
|
+
|
25
|
+
* Install the gem by either running ```gem install mangopay-v4```
|
26
|
+
or by adding it to your Gemfile ```gem 'mangopay-v4'```
|
27
|
+
|
28
|
+
* Using the credential info from the signup process above, call ```MangoPay.configure``` in your script as shown in the snippet below.
|
29
|
+
|
30
|
+
## Examples
|
31
|
+
|
32
|
+
A few examples which demonstrate making each type of request through the SDK V4, comparative to V3.
|
33
|
+
|
34
|
+
### Configure
|
35
|
+
|
36
|
+
#### V3 / V4
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
require 'mangopay'
|
40
|
+
|
41
|
+
MangoPay.configure do |config|
|
42
|
+
config.client_id = :CLIENT_ID
|
43
|
+
config.client_apiKey = :CLIENT_PASS
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
47
|
+
### Create a User
|
48
|
+
|
49
|
+
#### V3
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
user_object = {
|
53
|
+
Address: {
|
54
|
+
AddressLine1: 'Test st., no. 18',
|
55
|
+
AddressLine2: 'bl. 16, int. 32',
|
56
|
+
City: 'Brasov',
|
57
|
+
Region: 'Tractoru',
|
58
|
+
PostalCode: '505600',
|
59
|
+
Country: 'RO'
|
60
|
+
},
|
61
|
+
KYCLevel: 'LIGHT',
|
62
|
+
Email: 'hello@moto.com',
|
63
|
+
FirstName: 'Hi',
|
64
|
+
LastName: 'Bye',
|
65
|
+
Birthday: 1_300_186_358,
|
66
|
+
Birthplace: 'Brasov',
|
67
|
+
Nationality: 'RO',
|
68
|
+
CountryOfResidence: 'RO',
|
69
|
+
Occupation: 'Cowboy',
|
70
|
+
IncomeRange: 1
|
71
|
+
}
|
72
|
+
|
73
|
+
created_user = MangoPay::NaturalUser.create user_object
|
74
|
+
|
75
|
+
created_user # => Hash object
|
76
|
+
```
|
77
|
+
|
78
|
+
#### V4
|
79
|
+
|
80
|
+
```ruby
|
81
|
+
address = MangoModel::Address.new
|
82
|
+
|
83
|
+
address.address_line1 = 'Test st., no. 18'
|
84
|
+
address.address_line2 = 'bl. 16, int. 32'
|
85
|
+
address.city = 'Brasov'
|
86
|
+
address.region = 'Tractoru'
|
87
|
+
address.postal_code = '505600'
|
88
|
+
address.country = MangoModel::CountryIso::RO
|
89
|
+
|
90
|
+
user_object = MangoModel::NaturalUser.new # or MangoModel::LegalUser.new
|
91
|
+
|
92
|
+
user_object.address = address
|
93
|
+
user_object.kyc_level = MangoModel::KycLevel::LIGHT
|
94
|
+
user_object.email = 'hello@moto.com'
|
95
|
+
user_object.first_name = 'Hi'
|
96
|
+
user_object.last_name = 'Bye'
|
97
|
+
user_object.birthday = 1_300_186_358
|
98
|
+
user_object.birthplace = 'Brasov'
|
99
|
+
user_object.nationality = MangoModel::CountryIso::RO
|
100
|
+
user_object.country_of_residence = MangoModel::CountryIso::RO
|
101
|
+
user_object.occupation = 'Cowboy'
|
102
|
+
user_object.income_range = MangoModel::IncomeRange::BETWEEN_50_80
|
103
|
+
|
104
|
+
created_user = MangoApi::Users.create user_object
|
105
|
+
|
106
|
+
created_user # => MangoModel::NaturalUser/MangoModel::LegalUser object
|
107
|
+
```
|
108
|
+
|
109
|
+
### Create a PayIn
|
110
|
+
|
111
|
+
#### V3
|
112
|
+
|
113
|
+
```ruby
|
114
|
+
natural_user = get_some_natural_user
|
115
|
+
|
116
|
+
wallet = MangoPay::Wallet.create({
|
117
|
+
Owners: [user['Id']],
|
118
|
+
Description: 'A test wallet',
|
119
|
+
Currency: 'EUR',
|
120
|
+
Tag: 'Test wallet'
|
121
|
+
})
|
122
|
+
|
123
|
+
created_pay_in = MangoPay::PayIn::Card::Web.create({
|
124
|
+
AuthorId: natural_user['Id'],
|
125
|
+
CreditedUserId: wallet['Owners'][0],
|
126
|
+
CreditedWalletId: wallet['Id'],
|
127
|
+
ReturnURL: 'http://www.my-site.com/returnURL/',
|
128
|
+
CardType: 'CB_VISA_MASTERCARD',
|
129
|
+
SecureMode: 'DEFAULT',
|
130
|
+
Culture: 'FR',
|
131
|
+
TemplateURLOptions: {
|
132
|
+
Payline: 'https://www.mysite.com/template/'
|
133
|
+
},
|
134
|
+
StatementDescriptor: 'Mar2016',
|
135
|
+
Tag: 'Create Card Web PayIn',
|
136
|
+
DebitedFunds: {
|
137
|
+
Currency: 'EUR',
|
138
|
+
Amount: 1000
|
139
|
+
},
|
140
|
+
Fees: {
|
141
|
+
Currency: 'EUR',
|
142
|
+
Amount: 0
|
143
|
+
}
|
144
|
+
})
|
145
|
+
|
146
|
+
created_pay_in # => Hash object
|
147
|
+
```
|
148
|
+
|
149
|
+
#### V4
|
150
|
+
|
151
|
+
```ruby
|
152
|
+
user = get_some_user
|
153
|
+
|
154
|
+
wallet = MangoModel::Wallet.new
|
155
|
+
wallet.owners = [user.id]
|
156
|
+
wallet.description = 'A test wallet'
|
157
|
+
wallet.currency = MangoModel::CurrencyIso::EUR
|
158
|
+
wallet.tag = 'Test wallet'
|
159
|
+
|
160
|
+
wallet = MangoApi::Wallets.create wallet
|
161
|
+
|
162
|
+
pay_in = MangoModel::CardWebPayIn.new
|
163
|
+
pay_in.author_id = user.id
|
164
|
+
pay_in.credited_user_id = wallet.owners[0].id
|
165
|
+
pay_in.credited_wallet_id = wallet.id
|
166
|
+
pay_in.return_url = 'http://www.my-site.com/returnURL/'
|
167
|
+
pay_in.card_type = MangoModel::CardType::CB_VISA_MASTERCARD
|
168
|
+
pay_in.secure_mode = MangoModel::SecureMode::DEFAULT
|
169
|
+
pay_in.culture = MangoModel::CultureCode::EN
|
170
|
+
pay_in.template_url_options = TemplateUrlOptions.new
|
171
|
+
pay_in.template_url_options.payline = 'https://www.mysite.com/template/'
|
172
|
+
pay_in.statement_descriptor = 'Mar2016'
|
173
|
+
pay_in.tag = 'Create Card Web PayIn'
|
174
|
+
pay_in.debited_funds = MangoModel::Money.new
|
175
|
+
pay_in.debited_funds.currency = MangoModel::CurrencyIso::EUR
|
176
|
+
pay_in.debited_funds.amount = 1000
|
177
|
+
pay_in.fees = MangoModel::Money.new
|
178
|
+
pay_in.fees.currency = MangoModel::CurrencyIso::EUR
|
179
|
+
pay_in.fees.amount = 0
|
180
|
+
|
181
|
+
pay_in = MangoApi::PayIns.create_card_web pay_in
|
182
|
+
|
183
|
+
pay_in # => MangoModel::CardWebPayIn object
|
184
|
+
```
|
185
|
+
|
186
|
+
### Update a User
|
187
|
+
|
188
|
+
#### V3
|
189
|
+
|
190
|
+
```ruby
|
191
|
+
natural_user = get_some_natural_user
|
192
|
+
|
193
|
+
updated_user = MangoPay::NaturalUser.update(natural_user['Id'] ,{
|
194
|
+
Email: 'jack@email.com'
|
195
|
+
})
|
196
|
+
|
197
|
+
updated_user # => Hash object
|
198
|
+
```
|
199
|
+
|
200
|
+
#### V4
|
201
|
+
|
202
|
+
```ruby
|
203
|
+
any_user = get_some_user
|
204
|
+
|
205
|
+
any_user.email = 'jack@email.com'
|
206
|
+
|
207
|
+
updated_user = MangoApi::Users.update any_user
|
208
|
+
|
209
|
+
updated_user # => MangoModel::LegalUser / MangoModel::NaturalUser object
|
210
|
+
```
|
211
|
+
|
212
|
+
### Get a User by id
|
213
|
+
|
214
|
+
#### V3
|
215
|
+
|
216
|
+
```ruby
|
217
|
+
natural_user = get_some_natural_user
|
218
|
+
|
219
|
+
retrieved_user = MangoPay::LegalUser.fetch(natural_user['Id'])
|
220
|
+
|
221
|
+
retrieved_user # => Hash object
|
222
|
+
```
|
223
|
+
|
224
|
+
#### V4
|
225
|
+
|
226
|
+
```ruby
|
227
|
+
any_user = get_some_user
|
228
|
+
|
229
|
+
retrieved_user = MangoApi::Users.get(any_user.id)
|
230
|
+
|
231
|
+
retrieved_user # => MangoModel::NaturalUser / MangoModel::LegalUser object
|
232
|
+
```
|
233
|
+
|
234
|
+
### Get a PayIn by id
|
235
|
+
|
236
|
+
#### V3
|
237
|
+
|
238
|
+
```ruby
|
239
|
+
pay_in = get_some_pay_in
|
240
|
+
|
241
|
+
retrieved_pay_in = MangoPay::PayIn.fetch(pay_in['Id'])
|
242
|
+
|
243
|
+
retrieved_pay_in # => Hash object
|
244
|
+
```
|
245
|
+
|
246
|
+
#### V4
|
247
|
+
|
248
|
+
```ruby
|
249
|
+
pay_in = get_some_pay_in
|
250
|
+
|
251
|
+
retrieved_pay_in = MangoApi::PayIns.get(pay_in.id)
|
252
|
+
|
253
|
+
retrieved_pay_in # => MangoModel::PayIn object
|
254
|
+
```
|
255
|
+
|
256
|
+
### List users
|
257
|
+
|
258
|
+
#### V3
|
259
|
+
|
260
|
+
```ruby
|
261
|
+
users = MangoPay::User.fetch
|
262
|
+
|
263
|
+
users # => Array of Hash object
|
264
|
+
```
|
265
|
+
|
266
|
+
#### V4
|
267
|
+
|
268
|
+
```ruby
|
269
|
+
users = MangoApi::Users.all
|
270
|
+
|
271
|
+
users # => Array of MangoModel::Dispute objects
|
272
|
+
```
|
273
|
+
|
274
|
+
### Sorting, Paging, Filtering
|
275
|
+
|
276
|
+
#### V3
|
277
|
+
|
278
|
+
```ruby
|
279
|
+
wallet = get_some_wallet
|
280
|
+
|
281
|
+
transactions = MangoPay::Transaction.fetch(wallet['Id'], {
|
282
|
+
'page' => 2,
|
283
|
+
'per_page' => 3,
|
284
|
+
'sort' => 'CreationDate:DESC',
|
285
|
+
'Nature' => 'REGULAR',
|
286
|
+
'Type' => 'PAYIN'
|
287
|
+
})
|
288
|
+
|
289
|
+
transactions # => Array of corresponding Hash objects
|
290
|
+
```
|
291
|
+
|
292
|
+
#### V4
|
293
|
+
|
294
|
+
In the new version, any API method which allows filtering of the result list will yield a FilterRequest object which has fields for every possible filtering parameter. See methods' documentation to learn what parameters are available for each call.
|
295
|
+
|
296
|
+
```ruby
|
297
|
+
wallet = get_some_wallet
|
298
|
+
|
299
|
+
transactions = MangoApi::Transactions.of_wallet(wallet.id) do |filter|
|
300
|
+
filter.page = 2
|
301
|
+
filter.per_page = 3
|
302
|
+
filter.sort_field = MangoPay::SortField::CREATION_DATE
|
303
|
+
filter.sort_direction = MangoPay::SortDirection::ASC
|
304
|
+
filter.nature = MangoModel::TransactionNature::REGULAR
|
305
|
+
filter.type = MangoModel::TransactionType::PAYIN
|
306
|
+
end
|
307
|
+
|
308
|
+
transactions # => Array of corresponding MangoModel::Transaction objects
|
309
|
+
```
|
310
|
+
|
311
|
+
###### See the files in `'lib/mangopay/api/service'` and documentation for more info
|
312
|
+
|
313
|
+
### Error Handling
|
314
|
+
|
315
|
+
Similar in V4 as it was in V3
|
316
|
+
|
317
|
+
```ruby
|
318
|
+
begin
|
319
|
+
MangoApi::Users.create user
|
320
|
+
rescue MangoPay::ResponseError => ex
|
321
|
+
|
322
|
+
ex # => #<MangoPay::ResponseError: One or several required parameters are missing or incorrect. [...] FirstName: The FirstName field is required. LastName: The LastName field is required. Nationality: The Nationality field is required.>
|
323
|
+
|
324
|
+
ex.details # => {
|
325
|
+
# "Message"=>"One or several required parameters are missing or incorrect. [...]",
|
326
|
+
# "Type"=>"param_error",
|
327
|
+
# "Id"=>"5c080105-4da3-467d-820d-0906164e55fe",
|
328
|
+
# "Date"=>1409048671.0,
|
329
|
+
# "errors"=>{
|
330
|
+
# "FirstName"=>"The FirstName field is required.",
|
331
|
+
# "LastName"=>"The LastName field is required.", ...},
|
332
|
+
# "Code"=>"400",
|
333
|
+
# "Url"=>"/v2/.../users/natural"
|
334
|
+
# }
|
335
|
+
end
|
336
|
+
```
|
337
|
+
|
338
|
+
## New Features
|
339
|
+
|
340
|
+
### The `MangoPay::Environment` Object
|
341
|
+
|
342
|
+
Use Environments to specify multiple MangoPay configurations within the same program. Specify the environment you want to switch to by using
|
343
|
+
```ruby
|
344
|
+
require 'mangopay'
|
345
|
+
|
346
|
+
MangoPay.use_environment :env_id # Symbol
|
347
|
+
MangoPay.configure do |config|
|
348
|
+
config.client_id = 'first_id'
|
349
|
+
config.client_apiKey = 'first_pass'
|
350
|
+
end
|
351
|
+
MangoPay.use_environment :env2
|
352
|
+
MangoPay.configure do |config|
|
353
|
+
config.client_id = 'second_id'
|
354
|
+
config.client_apiKey = 'second_pass'
|
355
|
+
end
|
356
|
+
MangoPay.use_environment :env1
|
357
|
+
config = MangoPay.configuration
|
358
|
+
config.client_id # => 'first_id'
|
359
|
+
MangoPay.use_environment :env2
|
360
|
+
config = MangoPay.configuration
|
361
|
+
config.client_id # => 'second_id'
|
362
|
+
```
|
363
|
+
They all get stored in memory - only OAuth Tokens may be kept in files.
|
364
|
+
#####`MangoPay.configure` must be called from each new Environment.
|
365
|
+
######Of course, you can just call `MangoPay.configure` without specifying an environment, and all calls will be made under an automatically-assigned `:default` Environment.
|
366
|
+
#####Environments are Thread-specific for the duration of that Thread's lifetime.
|
367
|
+
This is done by Mapping each Thread's Ruby `Object.object_id` to the ID of the currently-active Environment. Configurations and other stuff like Rate Limits are stored in the Environment object obtainable context-specifically with a call to `MangoPay.environment` (i.e. Rate Limits and Configuration etc. of the Client will be Environment-specific). The relationship will be deleted as soon as the Thread dies, but the Environment remains correctly-configured to be used from any other Threads.
|
368
|
+
#####A new Thread will be assigned the most recently used Environment
|
369
|
+
...unless another has meanwhile been switched to, in which case it will be that one (i.e. Environment specified in the last call to `MangoPay.use_environment` or the `:default` Environment if none were made). All calls made from any Thread in the same Environment will return results pertaining to the configuration specified for that specific environment.
|
370
|
+
######This allows for various calls to be made in rapid succession with results dependent on each other without interfering with Configurations used on other Threads' Environments.
|
371
|
+
|
372
|
+
See the `MangoPay` module, the `Environment` and `Configuration` classes and documentation for more info.
|
373
|
+
|
374
|
+
## Examples
|
375
|
+
|
376
|
+
### See tests for explicit examples of configuration and virtually all API calls.
|
377
|
+
|
378
|
+
##### You can run all tests quickly with `rspec` command or configure RubyMine to run an RSpec configuration of all specs in folder `'spec/mangopay'`, or of a single file for targeted debugging.
|
379
|
+
|
380
380
|
Specific tests can be run as well, by passing a `:focus` parameter along with the test's description string (see `'spec_helper.rb'` for more info)
|