mangopay-v4 4.0.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/.gitignore +30 -0
- data/.rspec +4 -0
- data/.rubocop.yml +2 -0
- data/.travis.yml +13 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.md +380 -0
- data/bin/mangopay +9 -0
- data/lib/mangopay.rb +133 -0
- data/lib/mangopay/api/api.rb +9 -0
- data/lib/mangopay/api/api_methods.rb +137 -0
- data/lib/mangopay/api/auth_token_manager.rb +173 -0
- data/lib/mangopay/api/http_client.rb +325 -0
- data/lib/mangopay/api/service/bank_accounts.rb +146 -0
- data/lib/mangopay/api/service/cards.rb +152 -0
- data/lib/mangopay/api/service/client_wallets.rb +89 -0
- data/lib/mangopay/api/service/clients.rb +68 -0
- data/lib/mangopay/api/service/dispute_documents.rb +158 -0
- data/lib/mangopay/api/service/disputes.rb +187 -0
- data/lib/mangopay/api/service/e_money.rb +42 -0
- data/lib/mangopay/api/service/events.rb +47 -0
- data/lib/mangopay/api/service/hooks.rb +93 -0
- data/lib/mangopay/api/service/kyc_documents.rb +153 -0
- data/lib/mangopay/api/service/mandates.rb +142 -0
- data/lib/mangopay/api/service/oauth_tokens.rb +25 -0
- data/lib/mangopay/api/service/pay_ins.rb +260 -0
- data/lib/mangopay/api/service/pay_outs.rb +54 -0
- data/lib/mangopay/api/service/pre_authorizations.rb +69 -0
- data/lib/mangopay/api/service/refunds.rb +62 -0
- data/lib/mangopay/api/service/reports.rb +151 -0
- data/lib/mangopay/api/service/repudiations.rb +32 -0
- data/lib/mangopay/api/service/responses.rb +102 -0
- data/lib/mangopay/api/service/settlement_transfers.rb +55 -0
- data/lib/mangopay/api/service/transactions.rb +183 -0
- data/lib/mangopay/api/service/transfers.rb +54 -0
- data/lib/mangopay/api/service/ubo_declarations.rb +70 -0
- data/lib/mangopay/api/service/users.rb +163 -0
- data/lib/mangopay/api/service/wallets.rb +99 -0
- data/lib/mangopay/api/uri_provider.rb +35 -0
- data/lib/mangopay/common/json_tag_converter.rb +68 -0
- data/lib/mangopay/common/jsonifier.rb +249 -0
- data/lib/mangopay/common/log_provider.rb +34 -0
- data/lib/mangopay/common/rate_limit_interval.rb +17 -0
- data/lib/mangopay/common/read_only_fields.rb +27 -0
- data/lib/mangopay/common/response_error.rb +61 -0
- data/lib/mangopay/common/sort_direction.rb +15 -0
- data/lib/mangopay/common/sort_field.rb +13 -0
- data/lib/mangopay/common/template_url_options.rb +9 -0
- data/lib/mangopay/configuration.rb +39 -0
- data/lib/mangopay/environment.rb +66 -0
- data/lib/mangopay/model/address.rb +27 -0
- data/lib/mangopay/model/declared_ubo.rb +21 -0
- data/lib/mangopay/model/dispute_reason.rb +15 -0
- data/lib/mangopay/model/document_page_consult.rb +15 -0
- data/lib/mangopay/model/e_money.rb +18 -0
- data/lib/mangopay/model/entity/account/bank_account.rb +26 -0
- data/lib/mangopay/model/entity/account/ca_bank_account.rb +27 -0
- data/lib/mangopay/model/entity/account/gb_bank_account.rb +21 -0
- data/lib/mangopay/model/entity/account/iban_bank_account.rb +21 -0
- data/lib/mangopay/model/entity/account/other_bank_account.rb +24 -0
- data/lib/mangopay/model/entity/account/us_bank_account.rb +24 -0
- data/lib/mangopay/model/entity/card.rb +45 -0
- data/lib/mangopay/model/entity/card_registration.rb +43 -0
- data/lib/mangopay/model/entity/client.rb +63 -0
- data/lib/mangopay/model/entity/client_wallet.rb +23 -0
- data/lib/mangopay/model/entity/dispute.rb +50 -0
- data/lib/mangopay/model/entity/dispute_document.rb +29 -0
- data/lib/mangopay/model/entity/entity_base.rb +18 -0
- data/lib/mangopay/model/entity/hook.rb +26 -0
- data/lib/mangopay/model/entity/kyc_document.rb +28 -0
- data/lib/mangopay/model/entity/mandate.rb +51 -0
- data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +22 -0
- data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +33 -0
- data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +13 -0
- data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +40 -0
- data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +23 -0
- data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +38 -0
- data/lib/mangopay/model/entity/pay_in/pay_in.rb +16 -0
- data/lib/mangopay/model/entity/pay_out.rb +22 -0
- data/lib/mangopay/model/entity/pre_authorization.rb +68 -0
- data/lib/mangopay/model/entity/refund.rb +18 -0
- data/lib/mangopay/model/entity/report.rb +51 -0
- data/lib/mangopay/model/entity/repudiation.rb +18 -0
- data/lib/mangopay/model/entity/settlement_transfer.rb +17 -0
- data/lib/mangopay/model/entity/transaction.rb +52 -0
- data/lib/mangopay/model/entity/transfer.rb +13 -0
- data/lib/mangopay/model/entity/ubo_declaration.rb +32 -0
- data/lib/mangopay/model/entity/user/legal_user.rb +53 -0
- data/lib/mangopay/model/entity/user/natural_user.rb +50 -0
- data/lib/mangopay/model/entity/user/user.rb +18 -0
- data/lib/mangopay/model/entity/wallet.rb +28 -0
- data/lib/mangopay/model/enum/account_type.rb +24 -0
- data/lib/mangopay/model/enum/card_status.rb +15 -0
- data/lib/mangopay/model/enum/card_type.rb +33 -0
- data/lib/mangopay/model/enum/card_validity.rb +19 -0
- data/lib/mangopay/model/enum/country_iso.rb +759 -0
- data/lib/mangopay/model/enum/culture_code.rb +44 -0
- data/lib/mangopay/model/enum/currency_iso.rb +552 -0
- data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +16 -0
- data/lib/mangopay/model/enum/declared_ubo_status.rb +18 -0
- data/lib/mangopay/model/enum/deposit_type.rb +15 -0
- data/lib/mangopay/model/enum/direct_debit_type.rb +13 -0
- data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +25 -0
- data/lib/mangopay/model/enum/dispute_document_type.rb +23 -0
- data/lib/mangopay/model/enum/dispute_reason_type.rb +33 -0
- data/lib/mangopay/model/enum/dispute_status.rb +21 -0
- data/lib/mangopay/model/enum/dispute_type.rb +15 -0
- data/lib/mangopay/model/enum/document_status.rb +21 -0
- data/lib/mangopay/model/enum/download_format.rb +11 -0
- data/lib/mangopay/model/enum/event_type.rb +74 -0
- data/lib/mangopay/model/enum/funds_type.rb +15 -0
- data/lib/mangopay/model/enum/hook_status.rb +13 -0
- data/lib/mangopay/model/enum/hook_validity.rb +15 -0
- data/lib/mangopay/model/enum/income_range.rb +21 -0
- data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +37 -0
- data/lib/mangopay/model/enum/kyc_document_type.rb +19 -0
- data/lib/mangopay/model/enum/kyc_level.rb +13 -0
- data/lib/mangopay/model/enum/legal_person_type.rb +15 -0
- data/lib/mangopay/model/enum/mandate_culture_code.rb +23 -0
- data/lib/mangopay/model/enum/mandate_execution_type.rb +11 -0
- data/lib/mangopay/model/enum/mandate_scheme.rb +13 -0
- data/lib/mangopay/model/enum/mandate_status.rb +24 -0
- data/lib/mangopay/model/enum/mandate_type.rb +11 -0
- data/lib/mangopay/model/enum/natural_user_capacity.rb +15 -0
- data/lib/mangopay/model/enum/pay_in_execution_type.rb +18 -0
- data/lib/mangopay/model/enum/pay_in_payment_type.rb +21 -0
- data/lib/mangopay/model/enum/pay_out_payment_type.rb +11 -0
- data/lib/mangopay/model/enum/payment_status.rb +21 -0
- data/lib/mangopay/model/enum/person_type.rb +15 -0
- data/lib/mangopay/model/enum/platform_type.rb +23 -0
- data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +11 -0
- data/lib/mangopay/model/enum/pre_authorization_status.rb +18 -0
- data/lib/mangopay/model/enum/refund_reason_type.rb +21 -0
- data/lib/mangopay/model/enum/report_status.rb +17 -0
- data/lib/mangopay/model/enum/report_type.rb +13 -0
- data/lib/mangopay/model/enum/secure_mode.rb +16 -0
- data/lib/mangopay/model/enum/transaction_nature.rb +17 -0
- data/lib/mangopay/model/enum/transaction_status.rb +15 -0
- data/lib/mangopay/model/enum/transaction_type.rb +15 -0
- data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +19 -0
- data/lib/mangopay/model/enum/ubo_declaration_status.rb +21 -0
- data/lib/mangopay/model/event.rb +18 -0
- data/lib/mangopay/model/model.rb +194 -0
- data/lib/mangopay/model/money.rb +17 -0
- data/lib/mangopay/model/pay_in_web_extended_view.rb +31 -0
- data/lib/mangopay/model/refund_reason.rb +15 -0
- data/lib/mangopay/model/report_filter.rb +83 -0
- data/lib/mangopay/model/request/cancel_request.rb +16 -0
- data/lib/mangopay/model/request/complete_registration_request.rb +13 -0
- data/lib/mangopay/model/request/currency_request.rb +13 -0
- data/lib/mangopay/model/request/deactivation_request.rb +10 -0
- data/lib/mangopay/model/request/filter_request.rb +38 -0
- data/lib/mangopay/model/request/submit_document_request.rb +14 -0
- data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +14 -0
- data/lib/mangopay/model/request/upload_file_request.rb +9 -0
- data/lib/mangopay/model/response_replica.rb +27 -0
- data/lib/mangopay/util/custom_formatter.rb +12 -0
- data/lib/mangopay/util/custom_logger.rb +34 -0
- data/lib/mangopay/util/enum.rb +52 -0
- data/lib/mangopay/util/file_encoder.rb +16 -0
- data/lib/mangopay/util/non_instantiable.rb +6 -0
- data/lib/mangopay/util/storage_strategy.rb +10 -0
- data/lib/mangopay/util/void_logger.rb +6 -0
- data/mangopay.gemspec +32 -0
- data/spec/context/address_context.rb +25 -0
- data/spec/context/bank_account_context.rb +138 -0
- data/spec/context/card_context.rb +46 -0
- data/spec/context/client_context.rb +45 -0
- data/spec/context/dispute_context.rb +37 -0
- data/spec/context/dispute_document_context.rb +20 -0
- data/spec/context/hook_context.rb +16 -0
- data/spec/context/kyc_document_context.rb +23 -0
- data/spec/context/mandate_context.rb +27 -0
- data/spec/context/pay_in_context.rb +225 -0
- data/spec/context/pay_out_context.rb +39 -0
- data/spec/context/pre_authorization_context.rb +41 -0
- data/spec/context/refund_context.rb +33 -0
- data/spec/context/report_context.rb +22 -0
- data/spec/context/repudiation_context.rb +19 -0
- data/spec/context/settlement_transfer_context.rb +28 -0
- data/spec/context/transfer_context.rb +51 -0
- data/spec/context/ubo_declaration_context.rb +25 -0
- data/spec/context/user_context.rb +83 -0
- data/spec/context/wallet_context.rb +53 -0
- data/spec/mangopay/bank_accounts_spec.rb +229 -0
- data/spec/mangopay/cards_spec.rb +135 -0
- data/spec/mangopay/client_wallets_spec.rb +148 -0
- data/spec/mangopay/clients_spec.rb +55 -0
- data/spec/mangopay/configuration_spec.rb +126 -0
- data/spec/mangopay/dispute_documents_spec.rb +174 -0
- data/spec/mangopay/disputes_spec.rb +265 -0
- data/spec/mangopay/e_money_spec.rb +38 -0
- data/spec/mangopay/events_spec.rb +50 -0
- data/spec/mangopay/hooks_spec.rb +71 -0
- data/spec/mangopay/kyc_documents_spec.rb +180 -0
- data/spec/mangopay/mandates_spec.rb +219 -0
- data/spec/mangopay/oauth_tokens_spec.rb +41 -0
- data/spec/mangopay/pay_ins_spec.rb +181 -0
- data/spec/mangopay/pay_outs_spec.rb +39 -0
- data/spec/mangopay/pre_authorizations_spec.rb +58 -0
- data/spec/mangopay/refunds_spec.rb +40 -0
- data/spec/mangopay/reports_spec.rb +121 -0
- data/spec/mangopay/responses_spec.rb +295 -0
- data/spec/mangopay/settlement_transfers_spec.rb +37 -0
- data/spec/mangopay/transactions_spec.rb +233 -0
- data/spec/mangopay/transfers_spec.rb +38 -0
- data/spec/mangopay/ubo_declarations_spec.rb +65 -0
- data/spec/mangopay/users_spec.rb +146 -0
- data/spec/mangopay/wallets_spec.rb +104 -0
- data/spec/resources/logo.png +0 -0
- data/spec/resources/test_pdf.pdf +0 -0
- data/spec/spec_helper.rb +72 -0
- metadata +349 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1a98e4f72516c98036fa3b66f788d4c4c9b99728
|
4
|
+
data.tar.gz: a6d24e15066b387c855af6b8b661863537cf4dc4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 763338b0ec20bf27424ef1d294ba2d2616be0ef8c5b88347f43c9247d1fa0fe4363a07e13f03f798759a9d93352e9f88e4488a0aea82a278117b26e7e69b466c
|
7
|
+
data.tar.gz: 1a68da9d4460438dde042272b6de5c7ae94aad6b221c268f1846a7c7ef4960dc92abdfe30b1ce9dd1ff1bba770a5170246edea8f3a3d2a22d7e6faf08a44d5ab
|
data/.gitignore
ADDED
@@ -0,0 +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
|
+
|
30
|
+
.idea
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,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
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +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.
|
data/README.md
ADDED
@@ -0,0 +1,380 @@
|
|
1
|
+
# MangoPay Ruby SDK [](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.client_passphrase = :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_passphrase = 'first_pass'
|
350
|
+
end
|
351
|
+
MangoPay.use_environment :env2
|
352
|
+
MangoPay.configure do |config|
|
353
|
+
config.client_id = 'second_id'
|
354
|
+
config.client_passphrase = '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
|
+
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)
|