mangopay 3.17.0 → 3.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: afb1569667ffe29e931e6ffd8e29b965c6dd84e094741c8bfb307ff44f7e71d3
4
- data.tar.gz: e77127572650d95af53a9564d9c7d845785d161c9043212e27baa4f36b171740
3
+ metadata.gz: 2459553bb0f22fb9230f0b13fa8068e6dccb7996c3436a669bea65e05af3e575
4
+ data.tar.gz: 1242453e9fd1f2d9fb943c737c0eef69e1caf26aed2aaae24ee2012803816ddc
5
5
  SHA512:
6
- metadata.gz: 7c78c113e106af277a4e0ec63bc1e8602fa2ff120bc2016041c018031275beb8b9c225d93f27f53566ba9560032aaed4936a6d0f087f5593665ba87ba11d8fe8
7
- data.tar.gz: 841cab6e5d7d41a4db88075121f597737c10d2dd113556e812d887547b86c65d79af296b2ec29f455d4011e400e420840b4a2908dc446fa4d31511bcbb753196
6
+ metadata.gz: f3478fdff62b888c86e3e38d1079cd467eb0e7860e16fc9977d9e6be49bec4c645e5a63b0a954c2f416577788abd125759d6b079e191b55a846af524044598e9
7
+ data.tar.gz: 11634f163a8d798787a4a1a200592b2387caf05df99df24a4089add703d6128f648aaa8c884c590bbaba2e53ab85ca45100e52fbb3ff89e218a6e0c9d7ddfedb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## [3.19.0] - 2023-11-02
2
+ ### Updated
3
+
4
+ - Giropay and Ideal integrations with Mangopay have been improved.
5
+ - Klarna param "MerchantOrderId" has been renamed to "Reference"
6
+
7
+ ## [3.18.0] - 2023-09-29
8
+ ### Added
9
+ - Instantly convert funds between 2 wallets of different currencies owned by the same user with the new SPOT FX endpoints
10
+
1
11
  ## [3.17.0] - 2023-09-20
2
12
  ### Added
3
13
 
@@ -0,0 +1,24 @@
1
+ module MangoPay
2
+
3
+ class InstantConversion < Resource
4
+ include HTTPCalls::Fetch
5
+ include HTTPCalls::Update
6
+
7
+ class << self
8
+ def get_rate(debited_currency, credited_currency, params)
9
+ url = "#{MangoPay.api_path}/conversion/rate/#{debited_currency}/#{credited_currency}"
10
+ MangoPay.request(:get, url, params)
11
+ end
12
+
13
+ def create(params)
14
+ url = "#{MangoPay.api_path}/instant-conversion"
15
+ MangoPay.request(:post, url, params)
16
+ end
17
+
18
+ def get(id, params)
19
+ url = "#{MangoPay.api_path}/instant-conversion/#{id}"
20
+ MangoPay.request(:get, url, params)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -197,6 +197,26 @@ module MangoPay
197
197
  end
198
198
  end
199
199
 
200
+ module Ideal
201
+ class Web < Resource
202
+ include HTTPCalls::Create
203
+
204
+ def self.url(*)
205
+ "#{MangoPay.api_path}/payins/payment-methods/ideal"
206
+ end
207
+ end
208
+ end
209
+
210
+ module Giropay
211
+ class Web < Resource
212
+ include HTTPCalls::Create
213
+
214
+ def self.url(*)
215
+ "#{MangoPay.api_path}/payins/payment-methods/giropay"
216
+ end
217
+ end
218
+ end
219
+
200
220
  module RecurringPayments
201
221
  class Recurring < Resource
202
222
  include HTTPCalls::Create
@@ -1,3 +1,3 @@
1
1
  module MangoPay
2
- VERSION = '3.17.0'
2
+ VERSION = '3.19.0'
3
3
  end
data/lib/mangopay.rb CHANGED
@@ -44,6 +44,7 @@ module MangoPay
44
44
  autoload :Ubo, 'mangopay/ubo'
45
45
  autoload :Regulatory, 'mangopay/regulatory'
46
46
  autoload :Deposit, 'mangopay/deposit'
47
+ autoload :InstantConversion, 'mangopay/instant_conversion'
47
48
 
48
49
  # temporary
49
50
  autoload :Temp, 'mangopay/temp'
@@ -0,0 +1,33 @@
1
+ describe MangoPay::InstantConversion, type: :feature do
2
+ include_context 'instant_conversion'
3
+
4
+ describe 'GET CONVERSION RATE' do
5
+ it 'get a conversion rate' do
6
+ conversion_rate = get_conversion_rate('EUR','GBP')
7
+
8
+ expect(conversion_rate['ClientRate']).not_to be_nil
9
+ expect(conversion_rate['MarketRate']).not_to be_nil
10
+ end
11
+ end
12
+
13
+ describe 'CREATE CONVERSION' do
14
+ it 'creates a new conversion' do
15
+ conversion = create_instant_conversion
16
+
17
+ expect(conversion['DebitedFunds']['Amount']).not_to be_nil
18
+ expect(conversion['CreditedFunds']['Amount']).not_to be_nil
19
+ expect(conversion['Status']).equal? 'SUCCEEDED'
20
+ end
21
+ end
22
+
23
+ describe 'GET EXISTING CONVERSION' do
24
+ it 'get an existing conversion' do
25
+ conversion = create_instant_conversion
26
+ returned_conversion = get_instant_conversion(conversion['Id'])
27
+
28
+ expect(returned_conversion['DebitedFunds']['Amount']).not_to be_nil
29
+ expect(returned_conversion['CreditedFunds']['Amount']).not_to be_nil
30
+ expect(returned_conversion['Status']).equal? 'SUCCEEDED'
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ describe MangoPay::PayIn::Giropay::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('GIROPAY')
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 giropay web payin' do
15
+ created = new_payin_giropay_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_giropay_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::Ideal::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('IDEAL')
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 ideal web payin' do
15
+ created = new_payin_ideal_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_ideal_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
@@ -6,24 +6,24 @@ shared_context 'users' do
6
6
 
7
7
  def define_new_natural_user
8
8
  {
9
- Tag: 'Test natural user',
10
- Email: 'my@email.com',
11
- FirstName: 'John',
12
- LastName: 'Doe',
13
- Address: {
14
- AddressLine1: 'Le Palais Royal',
15
- AddressLine2: '8 Rue de Montpensier',
16
- City: 'Paris',
17
- Region: '',
18
- PostalCode: '75001',
19
- Country: 'FR'
20
- },
21
- Birthday: 1_300_186_358,
22
- Birthplace: 'Paris',
23
- Nationality: 'FR',
24
- CountryOfResidence: 'FR',
25
- Occupation: 'Worker',
26
- IncomeRange: 1
9
+ Tag: 'Test natural user',
10
+ Email: 'my@email.com',
11
+ FirstName: 'John',
12
+ LastName: 'Doe',
13
+ Address: {
14
+ AddressLine1: 'Le Palais Royal',
15
+ AddressLine2: '8 Rue de Montpensier',
16
+ City: 'Paris',
17
+ Region: '',
18
+ PostalCode: '75001',
19
+ Country: 'FR'
20
+ },
21
+ Birthday: 1_300_186_358,
22
+ Birthplace: 'Paris',
23
+ Nationality: 'FR',
24
+ CountryOfResidence: 'FR',
25
+ Occupation: 'Worker',
26
+ IncomeRange: 1
27
27
  }
28
28
  end
29
29
 
@@ -33,35 +33,35 @@ shared_context 'users' do
33
33
 
34
34
  let(:new_legal_user) do
35
35
  MangoPay::LegalUser.create(
36
- Name: 'Super',
37
- Email: 'super@email.com',
38
- LegalPersonType: 'BUSINESS',
39
- HeadquartersAddress: {
40
- AddressLine1: '6 Parvis Notre-Dame',
41
- AddressLine2: 'Pl. Jean-Paul II',
42
- City: 'Paris',
43
- Region: 'FR',
44
- PostalCode: '75004',
45
- Country: 'FR'
46
- },
47
- LegalRepresentativeFirstName: 'John',
48
- LegalRepresentativeLastName: 'Doe',
49
- LegalRepresentativeAdress: {
50
- AddressLine1: '38 Rue de Montpensier',
51
- AddressLine2: '',
52
- City: 'Paris',
53
- Region: '',
54
- PostalCode: '75001',
55
- Country: 'FR'
56
- },
57
- LegalRepresentativeEmail: 'john@doe.com',
58
- LegalRepresentativeBirthday: 1_300_186_358,
59
- LegalRepresentativeNationality: 'FR',
60
- LegalRepresentativeCountryOfResidence: 'FR',
61
- CompanyNumber: 'LU123456789',
62
- Statute: '',
63
- ProofOfRegistration: '',
64
- ShareholderDeclaration: ''
36
+ Name: 'Super',
37
+ Email: 'super@email.com',
38
+ LegalPersonType: 'BUSINESS',
39
+ HeadquartersAddress: {
40
+ AddressLine1: '6 Parvis Notre-Dame',
41
+ AddressLine2: 'Pl. Jean-Paul II',
42
+ City: 'Paris',
43
+ Region: 'FR',
44
+ PostalCode: '75004',
45
+ Country: 'FR'
46
+ },
47
+ LegalRepresentativeFirstName: 'John',
48
+ LegalRepresentativeLastName: 'Doe',
49
+ LegalRepresentativeAdress: {
50
+ AddressLine1: '38 Rue de Montpensier',
51
+ AddressLine2: '',
52
+ City: 'Paris',
53
+ Region: '',
54
+ PostalCode: '75001',
55
+ Country: 'FR'
56
+ },
57
+ LegalRepresentativeEmail: 'john@doe.com',
58
+ LegalRepresentativeBirthday: 1_300_186_358,
59
+ LegalRepresentativeNationality: 'FR',
60
+ LegalRepresentativeCountryOfResidence: 'FR',
61
+ CompanyNumber: 'LU123456789',
62
+ Statute: '',
63
+ ProofOfRegistration: '',
64
+ ShareholderDeclaration: ''
65
65
  )
66
66
  end
67
67
  end
@@ -76,10 +76,10 @@ shared_context 'wallets' do
76
76
 
77
77
  def create_new_wallet(user)
78
78
  MangoPay::Wallet.create(
79
- Owners: [user['Id']],
80
- Description: 'A test wallet',
81
- Currency: 'EUR',
82
- Tag: 'Test wallet'
79
+ Owners: [user['Id']],
80
+ Description: 'A test wallet',
81
+ Currency: 'EUR',
82
+ Tag: 'Test wallet'
83
83
  )
84
84
  end
85
85
 
@@ -98,22 +98,22 @@ end
98
98
  shared_context 'ubo' do
99
99
  def new_ubo(user, ubo_declaration)
100
100
  ubo = {
101
- FirstName: 'John',
102
- LastName: 'Doe',
103
- Address: {
104
- AddressLine1: '6 Parvis Notre-Dame',
105
- AddressLine2: 'Pl. Jean-Paul II',
106
- City: 'Paris',
107
- Region: '',
108
- PostalCode: '75004',
109
- Country: 'FR'
110
- },
111
- Nationality: 'FR',
112
- Birthday: 1_300_186_358,
113
- Birthplace: {
114
- City: 'Paris',
115
- Country: 'FR'
116
- }
101
+ FirstName: 'John',
102
+ LastName: 'Doe',
103
+ Address: {
104
+ AddressLine1: '6 Parvis Notre-Dame',
105
+ AddressLine2: 'Pl. Jean-Paul II',
106
+ City: 'Paris',
107
+ Region: '',
108
+ PostalCode: '75004',
109
+ Country: 'FR'
110
+ },
111
+ Nationality: 'FR',
112
+ Birthday: 1_300_186_358,
113
+ Birthplace: {
114
+ City: 'Paris',
115
+ Country: 'FR'
116
+ }
117
117
  }
118
118
  MangoPay::Ubo.create(user['Id'], ubo_declaration['Id'], ubo)
119
119
  end
@@ -129,12 +129,12 @@ shared_context 'bank_accounts' do
129
129
  Type: 'IBAN',
130
130
  OwnerName: 'John',
131
131
  OwnerAddress: {
132
- AddressLine1: 'Le Palais Royal',
133
- AddressLine2: '8 Rue de Montpensier',
134
- City: 'Paris',
135
- Region: '',
136
- PostalCode: '75001',
137
- Country: 'FR'
132
+ AddressLine1: 'Le Palais Royal',
133
+ AddressLine2: '8 Rue de Montpensier',
134
+ City: 'Paris',
135
+ Region: '',
136
+ PostalCode: '75001',
137
+ Country: 'FR'
138
138
  },
139
139
  IBAN: 'FR7630004000031234567890143',
140
140
  BIC: 'BNPAFRPP',
@@ -151,10 +151,10 @@ shared_context 'mandates' do
151
151
 
152
152
  def create_new_mandate
153
153
  MangoPay::Mandate.create(
154
- BankAccountId: new_bank_account['Id'],
155
- Culture: 'FR',
156
- ReturnURL: MangoPay.configuration.root_url,
157
- Tag: 'Test mandate'
154
+ BankAccountId: new_bank_account['Id'],
155
+ Culture: 'FR',
156
+ ReturnURL: MangoPay.configuration.root_url,
157
+ Tag: 'Test mandate'
158
158
  )
159
159
  end
160
160
  end
@@ -186,15 +186,15 @@ shared_context 'payins' do
186
186
 
187
187
  let(:new_payin_directdebit_web) do
188
188
  MangoPay::PayIn::DirectDebit::Web.create(
189
- AuthorId: new_natural_user['Id'],
190
- CreditedUserId: new_wallet['Owners'][0],
191
- CreditedWalletId: new_wallet['Id'],
192
- DebitedFunds: {Currency: 'EUR', Amount: 1000},
193
- Fees: {Currency: 'EUR', Amount: 0},
194
- DirectDebitType: 'GIROPAY',
195
- ReturnURL: MangoPay.configuration.root_url,
196
- Culture: 'FR',
197
- Tag: 'Test PayIn/DirectDebit/Web'
189
+ AuthorId: new_natural_user['Id'],
190
+ CreditedUserId: new_wallet['Owners'][0],
191
+ CreditedWalletId: new_wallet['Id'],
192
+ DebitedFunds: { Currency: 'EUR', Amount: 1000 },
193
+ Fees: { Currency: 'EUR', Amount: 0 },
194
+ DirectDebitType: 'GIROPAY',
195
+ ReturnURL: MangoPay.configuration.root_url,
196
+ Culture: 'FR',
197
+ Tag: 'Test PayIn/DirectDebit/Web'
198
198
  )
199
199
  end
200
200
 
@@ -204,14 +204,14 @@ shared_context 'payins' do
204
204
 
205
205
  let(:new_payin_paypal_web) do
206
206
  MangoPay::PayIn::PayPal::Web.create(
207
- AuthorId: new_natural_user['Id'],
208
- CreditedUserId: new_wallet['Owners'][0],
209
- CreditedWalletId: new_wallet['Id'],
210
- DebitedFunds: {Currency: 'EUR', Amount: 1000},
211
- Fees: {Currency: 'EUR', Amount: 0},
212
- ReturnURL: MangoPay.configuration.root_url,
213
- Culture: "FR",
214
- Tag: 'Test PayIn/PayPal/Web'
207
+ AuthorId: new_natural_user['Id'],
208
+ CreditedUserId: new_wallet['Owners'][0],
209
+ CreditedWalletId: new_wallet['Id'],
210
+ DebitedFunds: { Currency: 'EUR', Amount: 1000 },
211
+ Fees: { Currency: 'EUR', Amount: 0 },
212
+ ReturnURL: MangoPay.configuration.root_url,
213
+ Culture: "FR",
214
+ Tag: 'Test PayIn/PayPal/Web'
215
215
  )
216
216
  end
217
217
 
@@ -221,13 +221,13 @@ shared_context 'payins' do
221
221
 
222
222
  let(:new_payin_payconiq_web) do
223
223
  MangoPay::PayIn::Payconiq::Web.create(
224
- AuthorId: new_natural_user['Id'],
225
- CreditedWalletId: new_wallet['Id'],
226
- DebitedFunds: {Currency: 'EUR', Amount: 100},
227
- Fees: {Currency: 'EUR', Amount: 0},
228
- ReturnURL: MangoPay.configuration.root_url,
229
- Country: "BE",
230
- Tag: 'Custom Meta'
224
+ AuthorId: new_natural_user['Id'],
225
+ CreditedWalletId: new_wallet['Id'],
226
+ DebitedFunds: { Currency: 'EUR', Amount: 100 },
227
+ Fees: { Currency: 'EUR', Amount: 0 },
228
+ ReturnURL: MangoPay.configuration.root_url,
229
+ Country: "BE",
230
+ Tag: 'Custom Meta'
231
231
  )
232
232
  end
233
233
 
@@ -237,20 +237,20 @@ shared_context 'payins' do
237
237
 
238
238
  let(:new_payin_applepay_direct) do
239
239
  MangoPay::PayIn::ApplePay::Direct.create(
240
- AuthorId: new_natural_user['Id'],
241
- CreditedUserId: new_wallet['Owners'][0],
242
- CreditedWalletId: new_wallet['Id'],
243
- DebitedFunds: {Currency: 'EUR', Amount: 199},
244
- Fees: {Currency: 'EUR', Amount: 1},
245
- PaymentType: 'APPLEPAY',
246
- PaymentData: {
247
- TransactionId: '061EB32181A2D9CA42AD16031B476EEBAA62A9A095AD660E2759FBA52B51A61',
248
- Network: 'VISA',
249
- TokenData: "{\"version\":\"EC_v1\",\"data\":\"w4HMBVqNC9ghPP4zncTA\\/0oQAsduERfsx78oxgniynNjZLANTL6+0koEtkQnW\\/K38Zew8qV1GLp+fLHo+qCBpiKCIwlz3eoFBTbZU+8pYcjaeIYBX9SOxcwxXsNGrGLk+kBUqnpiSIPaAG1E+WPT8R1kjOCnGvtdombvricwRTQkGjtovPfzZo8LzD3ZQJnHMsWJ8QYDLyr\\/ZN9gtLAtsBAMvwManwiaG3pOIWpyeOQOb01YcEVO16EZBjaY4x4C\\/oyFLWDuKGvhbJwZqWh1d1o9JT29QVmvy3Oq2JEjq3c3NutYut4rwDEP4owqI40Nb7mP2ebmdNgnYyWfPmkRfDCRHIWtbMC35IPg5313B1dgXZ2BmyZRXD5p+mr67vAk7iFfjEpu3GieFqwZrTl3\\/pI5V8Sxe3SIYKgT5Hr7ow==\",\"signature\":\"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID5jCCA4ugAwIBAgIIaGD2mdnMpw8wCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE2MDYwMzE4MTY0MFoXDTIxMDYwMjE4MTY0MFowYjEoMCYGA1UEAwwfZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtU0FOREJPWDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgjD9q8Oc914gLFDZm0US5jfiqQHdbLPgsc1LUmeY+M9OvegaJajCHkwz3c6OKpbC9q+hkwNFxOh6RCbOlRsSlaOCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDIwHQYDVR0OBBYEFAIkMAua7u1GMZekplopnkJxghxFMAwGA1UdEwEB\\/wQCMAAwHwYDVR0jBBgwFoAUI\\/JJxE+T5O8n5sT2KGw\\/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB\\/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB\\/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0kAMEYCIQDaHGOui+X2T44R6GVpN7m2nEcr6T6sMjOhZ5NuSo1egwIhAL1a+\\/hp88DKJ0sv3eT3FxWcs71xmbLKD\\/QJ3mWagrJNMIIC7jCCAnWgAwIBAgIISW0vvzqY2pcwCgYIKoZIzj0EAwIwZzEbMBkGA1UEAwwSQXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMTQwNTA2MjM0NjMwWhcNMjkwNTA2MjM0NjMwWjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATwFxGEGddkhdUaXiWBB3bogKLv3nuuTeCN\\/EuT4TNW1WZbNa4i0Jd2DSJOe7oI\\/XYXzojLdrtmcL7I6CmE\\/1RFo4H3MIH0MEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZXJvb3RjYWczMB0GA1UdDgQWBBQj8knET5Pk7yfmxPYobD+iu\\/0uSzAPBgNVHRMBAf8EBTADAQH\\/MB8GA1UdIwQYMBaAFLuw3qFYM4iapIqZ3r6966\\/ayySrMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB\\/wQEAwIBBjAQBgoqhkiG92NkBgIOBAIFADAKBggqhkjOPQQDAgNnADBkAjA6z3KDURaZsYb7NcNWymK\\/9Bft2Q91TaKOvvGcgV5Ct4n4mPebWZ+Y1UENj53pwv4CMDIt1UQhsKMFd2xd8zg7kGf9F3wsIW2WT8ZyaYISb1T4en0bmcubCYkhYQaZDwmSHQAAMYIBizCCAYcCAQEwgYYwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTAghoYPaZ2cynDzANBglghkgBZQMEAgEFAKCBlTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xOTA1MjMxMTA1MDdaMCoGCSqGSIb3DQEJNDEdMBswDQYJYIZIAWUDBAIBBQChCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIIvfGVQYBeOilcB7GNI8m8+FBVZ28QfA6BIXaggBja2PMAoGCCqGSM49BAMCBEYwRAIgU01yYfjlx9bvGeC5CU2RS5KBEG+15HH9tz\\/sg3qmQ14CID4F4ZJwAz+tXAUcAIzoMpYSnM8YBlnGJSTSp+LhspenAAAAAAAA\",\"header\":{\"ephemeralPublicKey\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0rs3wRpirXjPbFDQfPRdfEzRIZDWm0qn7Y0HB0PNzV1DDKfpYrnhRb4GEhBF\\/oEXBOe452PxbCnN1qAlqcSUWw==\",\"publicKeyHash\":\"saPRAqS7TZ4bAYwzBj8ezDDC55ZolyH1FL+Xc8fd93o=\",\"transactionId\":\"b061eb32181a2d9ca42ad16031b476eebaa62a9a095ad660e2759fba52b51a61\"}}"
250
- },
251
- StatementDescriptor: "php",
252
- ReturnURL: MangoPay.configuration.root_url,
253
- Tag: 'Test PayIn/ApplePay/Direct'
240
+ AuthorId: new_natural_user['Id'],
241
+ CreditedUserId: new_wallet['Owners'][0],
242
+ CreditedWalletId: new_wallet['Id'],
243
+ DebitedFunds: { Currency: 'EUR', Amount: 199 },
244
+ Fees: { Currency: 'EUR', Amount: 1 },
245
+ PaymentType: 'APPLEPAY',
246
+ PaymentData: {
247
+ TransactionId: '061EB32181A2D9CA42AD16031B476EEBAA62A9A095AD660E2759FBA52B51A61',
248
+ Network: 'VISA',
249
+ TokenData: "{\"version\":\"EC_v1\",\"data\":\"w4HMBVqNC9ghPP4zncTA\\/0oQAsduERfsx78oxgniynNjZLANTL6+0koEtkQnW\\/K38Zew8qV1GLp+fLHo+qCBpiKCIwlz3eoFBTbZU+8pYcjaeIYBX9SOxcwxXsNGrGLk+kBUqnpiSIPaAG1E+WPT8R1kjOCnGvtdombvricwRTQkGjtovPfzZo8LzD3ZQJnHMsWJ8QYDLyr\\/ZN9gtLAtsBAMvwManwiaG3pOIWpyeOQOb01YcEVO16EZBjaY4x4C\\/oyFLWDuKGvhbJwZqWh1d1o9JT29QVmvy3Oq2JEjq3c3NutYut4rwDEP4owqI40Nb7mP2ebmdNgnYyWfPmkRfDCRHIWtbMC35IPg5313B1dgXZ2BmyZRXD5p+mr67vAk7iFfjEpu3GieFqwZrTl3\\/pI5V8Sxe3SIYKgT5Hr7ow==\",\"signature\":\"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID5jCCA4ugAwIBAgIIaGD2mdnMpw8wCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE2MDYwMzE4MTY0MFoXDTIxMDYwMjE4MTY0MFowYjEoMCYGA1UEAwwfZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtU0FOREJPWDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgjD9q8Oc914gLFDZm0US5jfiqQHdbLPgsc1LUmeY+M9OvegaJajCHkwz3c6OKpbC9q+hkwNFxOh6RCbOlRsSlaOCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDIwHQYDVR0OBBYEFAIkMAua7u1GMZekplopnkJxghxFMAwGA1UdEwEB\\/wQCMAAwHwYDVR0jBBgwFoAUI\\/JJxE+T5O8n5sT2KGw\\/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB\\/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB\\/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0kAMEYCIQDaHGOui+X2T44R6GVpN7m2nEcr6T6sMjOhZ5NuSo1egwIhAL1a+\\/hp88DKJ0sv3eT3FxWcs71xmbLKD\\/QJ3mWagrJNMIIC7jCCAnWgAwIBAgIISW0vvzqY2pcwCgYIKoZIzj0EAwIwZzEbMBkGA1UEAwwSQXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMTQwNTA2MjM0NjMwWhcNMjkwNTA2MjM0NjMwWjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATwFxGEGddkhdUaXiWBB3bogKLv3nuuTeCN\\/EuT4TNW1WZbNa4i0Jd2DSJOe7oI\\/XYXzojLdrtmcL7I6CmE\\/1RFo4H3MIH0MEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZXJvb3RjYWczMB0GA1UdDgQWBBQj8knET5Pk7yfmxPYobD+iu\\/0uSzAPBgNVHRMBAf8EBTADAQH\\/MB8GA1UdIwQYMBaAFLuw3qFYM4iapIqZ3r6966\\/ayySrMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB\\/wQEAwIBBjAQBgoqhkiG92NkBgIOBAIFADAKBggqhkjOPQQDAgNnADBkAjA6z3KDURaZsYb7NcNWymK\\/9Bft2Q91TaKOvvGcgV5Ct4n4mPebWZ+Y1UENj53pwv4CMDIt1UQhsKMFd2xd8zg7kGf9F3wsIW2WT8ZyaYISb1T4en0bmcubCYkhYQaZDwmSHQAAMYIBizCCAYcCAQEwgYYwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTAghoYPaZ2cynDzANBglghkgBZQMEAgEFAKCBlTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xOTA1MjMxMTA1MDdaMCoGCSqGSIb3DQEJNDEdMBswDQYJYIZIAWUDBAIBBQChCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIIvfGVQYBeOilcB7GNI8m8+FBVZ28QfA6BIXaggBja2PMAoGCCqGSM49BAMCBEYwRAIgU01yYfjlx9bvGeC5CU2RS5KBEG+15HH9tz\\/sg3qmQ14CID4F4ZJwAz+tXAUcAIzoMpYSnM8YBlnGJSTSp+LhspenAAAAAAAA\",\"header\":{\"ephemeralPublicKey\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0rs3wRpirXjPbFDQfPRdfEzRIZDWm0qn7Y0HB0PNzV1DDKfpYrnhRb4GEhBF\\/oEXBOe452PxbCnN1qAlqcSUWw==\",\"publicKeyHash\":\"saPRAqS7TZ4bAYwzBj8ezDDC55ZolyH1FL+Xc8fd93o=\",\"transactionId\":\"b061eb32181a2d9ca42ad16031b476eebaa62a9a095ad660e2759fba52b51a61\"}}"
250
+ },
251
+ StatementDescriptor: "php",
252
+ ReturnURL: MangoPay.configuration.root_url,
253
+ Tag: 'Test PayIn/ApplePay/Direct'
254
254
  )
255
255
  end
256
256
 
@@ -260,70 +260,69 @@ shared_context 'payins' do
260
260
  ###############################################
261
261
  let(:new_payin_googlepay_direct) do
262
262
  MangoPay::PayIn::GooglePay::Direct.create(
263
- AuthorId: new_natural_user['Id'],
264
- CreditedWalletId: new_wallet['Id'],
265
- DebitedFunds: {Currency: 'EUR', Amount: 199},
266
- Fees: {Currency: 'EUR', Amount: 1},
267
- StatementDescriptor: "ruby",
268
- Tag: 'Test PayIn/GooglePay/Direct',
269
- IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C",
270
- SecureModeReturnURL: 'http://test.com',
271
- SecureMode: 'DEFAULT',
272
- ReturnURL: 'https://mangopay.com/docs/please-ignore',
273
- BrowserInfo: {
274
- AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
275
- JavaEnabled: true,
276
- Language: "fr-FR",
277
- ColorDepth: 4,
278
- ScreenHeight: 1800,
279
- ScreenWidth: 400,
280
- JavascriptEnabled: true,
281
- TimeZoneOffset: "+60",
282
- UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
283
- },
284
- PaymentData: "{\"signature\":\"MEUCIQCLXOan2Y9DobLVSOeD5V64Peayvz0ZAWisdz/1iTdthAIgVFb4Hve4EhtW81k46SiMlnXLIiCn1h2+vVQGjHe+sSo\\u003d\",\"intermediateSigningKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDGRER6R6PH6K39YTIYX+CpDNej6gQgvi/Wx19SOPtiDnkjAl4/LF9pXlvZYe+aJH0Dy095I6BlfY8bNBB5gjPg\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"1688521049102\\\"}\",\"signatures\":[\"MEYCIQDup1B+rkiPAWmpg7RmqY0NfgdGhmdyL8wvAX+6C1aOU2QIhAIZACSDQ/ZexIyEia5KrRlG2B+y3AnKNlhRzumRcnNOR\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"YSSGK9yFdKP+mJB5+wAjnOujnThPM1E/KbbJxd3MDzPVI66ip1DBESldvQXYjjeLq6Rf1tKE9oLwwaj6u0/gU7Z9t3g1MoW+9YoEE1bs1IxImif7IQGAosfYjjbBBfDkOaqEs2JJC5qt6xjKO9lQ/E6JPkPFGqF7+OJ1vzmD83Pi3sHWkVge5MhxXQ3yBNhrjus3kV7zUoYA+uqNrciWcWypc1NndF/tiwSkvUTzM6n4dS8X84fkJiSO7PZ65C0yw0mdybRRnyL2fFdWGssve1zZFAvYfzcpNamyuZGGlu/SCoayitojmMsqe5Cu0efD9+WvvDr9PA+Vo1gzuz7LmiZe81SGvdFhRoq62FBAUiwSsi2A3pWinZxM2XbYNph+HJ5FCNspWhz4ur9JG4ZMLemCXuaybvL++W6PWywAtoiE0mQcBIX3vhOq5itv0RkaKVe6nbcAS2UryRz2u/nDCJLKpIv2Wi11NtCUT2mgD8F6qfcXhvVZHyeLqZ1OLgCudTTSdKirzezbgPTg4tQpW++KufeD7bgG+01XhCWt+7/ftqcSf8n//gSRINne8j2G6w+2\\\",\\\"ephemeralPublicKey\\\":\\\"BLY2+R8C0T+BSf/W3HEq305qH63IGmJxMVmbfJ6+x1V7GQg9W9v7eHc3j+8TeypVn+nRlPu98tivuMXECg+rWZs\\\\u003d\\\",\\\"tag\\\":\\\"MmEjNdLfsDNfYd/FRUjoJ4/IfLypNRqx8zgHfa6Ftmo\\\\u003d\\\"}\"}",
285
- Billing: {
286
- FirstName: 'FName',
287
- LastName: 'LName',
288
- Address: {
289
- AddressLine1: 'AddressLine1',
290
- AddressLine2: 'AddressLine2',
291
- City: 'City',
292
- Region: 'Region',
293
- PostalCode: 'PostalCode',
294
- Country: 'FR'
295
- }
296
- },
297
- Shipping: {
298
- FirstName: 'FName',
299
- LastName: 'LName',
300
- Address: {
301
- AddressLine1: 'AddressLine1',
302
- AddressLine2: 'AddressLine2',
303
- City: 'City',
304
- Region: 'Region',
305
- PostalCode: 'PostalCode',
306
- Country: 'FR'
307
- }
263
+ AuthorId: new_natural_user['Id'],
264
+ CreditedWalletId: new_wallet['Id'],
265
+ DebitedFunds: { Currency: 'EUR', Amount: 199 },
266
+ Fees: { Currency: 'EUR', Amount: 1 },
267
+ StatementDescriptor: "ruby",
268
+ Tag: 'Test PayIn/GooglePay/Direct',
269
+ IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C",
270
+ SecureModeReturnURL: 'http://test.com',
271
+ SecureMode: 'DEFAULT',
272
+ ReturnURL: 'https://mangopay.com/docs/please-ignore',
273
+ BrowserInfo: {
274
+ AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
275
+ JavaEnabled: true,
276
+ Language: "fr-FR",
277
+ ColorDepth: 4,
278
+ ScreenHeight: 1800,
279
+ ScreenWidth: 400,
280
+ JavascriptEnabled: true,
281
+ TimeZoneOffset: "+60",
282
+ UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
283
+ },
284
+ PaymentData: "{\"signature\":\"MEUCIQCLXOan2Y9DobLVSOeD5V64Peayvz0ZAWisdz/1iTdthAIgVFb4Hve4EhtW81k46SiMlnXLIiCn1h2+vVQGjHe+sSo\\u003d\",\"intermediateSigningKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDGRER6R6PH6K39YTIYX+CpDNej6gQgvi/Wx19SOPtiDnkjAl4/LF9pXlvZYe+aJH0Dy095I6BlfY8bNBB5gjPg\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"1688521049102\\\"}\",\"signatures\":[\"MEYCIQDup1B+rkiPAWmpg7RmqY0NfgdGhmdyL8wvAX+6C1aOU2QIhAIZACSDQ/ZexIyEia5KrRlG2B+y3AnKNlhRzumRcnNOR\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"YSSGK9yFdKP+mJB5+wAjnOujnThPM1E/KbbJxd3MDzPVI66ip1DBESldvQXYjjeLq6Rf1tKE9oLwwaj6u0/gU7Z9t3g1MoW+9YoEE1bs1IxImif7IQGAosfYjjbBBfDkOaqEs2JJC5qt6xjKO9lQ/E6JPkPFGqF7+OJ1vzmD83Pi3sHWkVge5MhxXQ3yBNhrjus3kV7zUoYA+uqNrciWcWypc1NndF/tiwSkvUTzM6n4dS8X84fkJiSO7PZ65C0yw0mdybRRnyL2fFdWGssve1zZFAvYfzcpNamyuZGGlu/SCoayitojmMsqe5Cu0efD9+WvvDr9PA+Vo1gzuz7LmiZe81SGvdFhRoq62FBAUiwSsi2A3pWinZxM2XbYNph+HJ5FCNspWhz4ur9JG4ZMLemCXuaybvL++W6PWywAtoiE0mQcBIX3vhOq5itv0RkaKVe6nbcAS2UryRz2u/nDCJLKpIv2Wi11NtCUT2mgD8F6qfcXhvVZHyeLqZ1OLgCudTTSdKirzezbgPTg4tQpW++KufeD7bgG+01XhCWt+7/ftqcSf8n//gSRINne8j2G6w+2\\\",\\\"ephemeralPublicKey\\\":\\\"BLY2+R8C0T+BSf/W3HEq305qH63IGmJxMVmbfJ6+x1V7GQg9W9v7eHc3j+8TeypVn+nRlPu98tivuMXECg+rWZs\\\\u003d\\\",\\\"tag\\\":\\\"MmEjNdLfsDNfYd/FRUjoJ4/IfLypNRqx8zgHfa6Ftmo\\\\u003d\\\"}\"}",
285
+ Billing: {
286
+ FirstName: 'FName',
287
+ LastName: 'LName',
288
+ Address: {
289
+ AddressLine1: 'AddressLine1',
290
+ AddressLine2: 'AddressLine2',
291
+ City: 'City',
292
+ Region: 'Region',
293
+ PostalCode: 'PostalCode',
294
+ Country: 'FR'
308
295
  }
296
+ },
297
+ Shipping: {
298
+ FirstName: 'FName',
299
+ LastName: 'LName',
300
+ Address: {
301
+ AddressLine1: 'AddressLine1',
302
+ AddressLine2: 'AddressLine2',
303
+ City: 'City',
304
+ Region: 'Region',
305
+ PostalCode: 'PostalCode',
306
+ Country: 'FR'
307
+ }
308
+ }
309
309
  )
310
310
  end
311
311
 
312
-
313
312
  ###############################################
314
313
  # directdebit/direct
315
314
  ###############################################
316
315
 
317
316
  let(:new_payin_directdebit_direct) do
318
317
  MangoPay::PayIn::DirectDebit::Direct.create(
319
- AuthorId: new_natural_user['Id'],
320
- CreditedUserId: new_wallet['Owners'][0],
321
- CreditedWalletId: new_wallet['Id'],
322
- DebitedFunds: {Currency: 'EUR', Amount: 1000},
323
- Fees: {Currency: 'EUR', Amount: 0},
324
- MandateId: new_mandate['Id'],
325
- ReturnURL: MangoPay.configuration.root_url,
326
- Tag: 'Test PayIn/DirectDebit/Direct'
318
+ AuthorId: new_natural_user['Id'],
319
+ CreditedUserId: new_wallet['Owners'][0],
320
+ CreditedWalletId: new_wallet['Id'],
321
+ DebitedFunds: { Currency: 'EUR', Amount: 1000 },
322
+ Fees: { Currency: 'EUR', Amount: 0 },
323
+ MandateId: new_mandate['Id'],
324
+ ReturnURL: MangoPay.configuration.root_url,
325
+ Tag: 'Test PayIn/DirectDebit/Direct'
327
326
  )
328
327
  end
329
328
 
@@ -333,30 +332,30 @@ shared_context 'payins' do
333
332
 
334
333
  let(:new_payin_card_web) do
335
334
  MangoPay::PayIn::Card::Web.create(
336
- AuthorId: new_natural_user['Id'],
337
- CreditedUserId: new_wallet['Owners'][0],
338
- CreditedWalletId: new_wallet['Id'],
339
- DebitedFunds: {Currency: 'EUR', Amount: 1000},
340
- Fees: {Currency: 'EUR', Amount: 0},
341
- CardType: 'CB_VISA_MASTERCARD',
342
- ReturnURL: MangoPay.configuration.root_url,
343
- Culture: 'FR',
344
- Tag: 'Test PayIn/Card/Web'
335
+ AuthorId: new_natural_user['Id'],
336
+ CreditedUserId: new_wallet['Owners'][0],
337
+ CreditedWalletId: new_wallet['Id'],
338
+ DebitedFunds: { Currency: 'EUR', Amount: 1000 },
339
+ Fees: { Currency: 'EUR', Amount: 0 },
340
+ CardType: 'CB_VISA_MASTERCARD',
341
+ ReturnURL: MangoPay.configuration.root_url,
342
+ Culture: 'FR',
343
+ Tag: 'Test PayIn/Card/Web'
345
344
  )
346
345
  end
347
346
 
348
347
  let(:new_payin_card_web_payline) do
349
348
  MangoPay::PayIn::Card::Web.create(
350
- AuthorId: new_natural_user['Id'],
351
- CreditedUserId: new_wallet['Owners'][0],
352
- CreditedWalletId: new_wallet['Id'],
353
- DebitedFunds: {Currency: 'EUR', Amount: 1000},
354
- Fees: {Currency: 'EUR', Amount: 0},
355
- CardType: 'CB_VISA_MASTERCARD',
356
- ReturnURL: MangoPay.configuration.root_url,
357
- Culture: 'FR',
358
- Tag: 'Test PayIn/Card/Web',
359
- TemplateURLOptions: {PAYLINEV2: "https://www.maysite.com/payline_template/"}
349
+ AuthorId: new_natural_user['Id'],
350
+ CreditedUserId: new_wallet['Owners'][0],
351
+ CreditedWalletId: new_wallet['Id'],
352
+ DebitedFunds: { Currency: 'EUR', Amount: 1000 },
353
+ Fees: { Currency: 'EUR', Amount: 0 },
354
+ CardType: 'CB_VISA_MASTERCARD',
355
+ ReturnURL: MangoPay.configuration.root_url,
356
+ Culture: 'FR',
357
+ Tag: 'Test PayIn/Card/Web',
358
+ TemplateURLOptions: { PAYLINEV2: "https://www.maysite.com/payline_template/" }
360
359
  )
361
360
  end
362
361
 
@@ -366,9 +365,9 @@ shared_context 'payins' do
366
365
 
367
366
  let(:new_card_registration) do
368
367
  MangoPay::CardRegistration.create(
369
- UserId: new_natural_user['Id'],
370
- Currency: 'EUR',
371
- Tag: 'Test Card Registration'
368
+ UserId: new_natural_user['Id'],
369
+ Currency: 'EUR',
370
+ Tag: 'Test Card Registration'
372
371
  )
373
372
  end
374
373
 
@@ -378,11 +377,11 @@ shared_context 'payins' do
378
377
 
379
378
  # 2nd step: tokenize by payline (fills-in RegistrationData)
380
379
  data = {
381
- data: cardreg['PreregistrationData'],
382
- accessKeyRef: cardreg['AccessKey'],
383
- cardNumber: 4970105191923460,
384
- cardExpirationDate: 1226,
385
- cardCvx: 123}
380
+ data: cardreg['PreregistrationData'],
381
+ accessKeyRef: cardreg['AccessKey'],
382
+ cardNumber: 4970105191923460,
383
+ cardExpirationDate: 1226,
384
+ cardCvx: 123 }
386
385
 
387
386
  res = Net::HTTP.post_form(URI(cardreg['CardRegistrationURL']), data)
388
387
  raise Exception, [res, res.body] unless res.is_a?(Net::HTTPOK) && res.body.start_with?('data=')
@@ -400,11 +399,11 @@ shared_context 'payins' do
400
399
 
401
400
  # 2nd step: tokenize by payline (fills-in RegistrationData)
402
401
  data = {
403
- data: cardreg['PreregistrationData'],
404
- accessKeyRef: cardreg['AccessKey'],
405
- cardNumber: 4970105191923460,
406
- cardExpirationDate: 1224,
407
- cardCvx: 123}
402
+ data: cardreg['PreregistrationData'],
403
+ accessKeyRef: cardreg['AccessKey'],
404
+ cardNumber: 4970105191923460,
405
+ cardExpirationDate: 1224,
406
+ cardCvx: 123 }
408
407
 
409
408
  res = Net::HTTP.post_form(URI(cardreg['CardRegistrationURL']), data)
410
409
  raise Exception, [res, res.body] unless res.is_a?(Net::HTTPOK) && res.body.start_with?('data=')
@@ -422,11 +421,11 @@ shared_context 'payins' do
422
421
 
423
422
  # 2nd step: tokenize by payline (fills-in RegistrationData)
424
423
  data = {
425
- data: cardreg['PreregistrationData'],
426
- accessKeyRef: cardreg['AccessKey'],
427
- cardNumber: 4970105181818183,
428
- cardExpirationDate: 1226,
429
- cardCvx: 123}
424
+ data: cardreg['PreregistrationData'],
425
+ accessKeyRef: cardreg['AccessKey'],
426
+ cardNumber: 4970105181818183,
427
+ cardExpirationDate: 1226,
428
+ cardCvx: 123 }
430
429
 
431
430
  res = Net::HTTP.post_form(URI(cardreg['CardRegistrationURL']), data)
432
431
  raise Exception, [res, res.body] unless res.is_a?(Net::HTTPOK) && res.body.start_with?('data=')
@@ -447,8 +446,8 @@ shared_context 'payins' do
447
446
  MangoPay::PayIn::Mbway::Web.create(
448
447
  AuthorId: new_natural_user['Id'],
449
448
  CreditedWalletId: new_wallet['Id'],
450
- DebitedFunds: {Currency: 'EUR', Amount: 199},
451
- Fees: {Currency: 'EUR', Amount: 1},
449
+ DebitedFunds: { Currency: 'EUR', Amount: 199 },
450
+ Fees: { Currency: 'EUR', Amount: 1 },
452
451
  StatementDescriptor: "ruby",
453
452
  Tag: 'Test PayIn/Mbway/Web',
454
453
  Phone: '351#269458236'
@@ -461,8 +460,8 @@ shared_context 'payins' do
461
460
  let(:new_payin_multibanco_web) do
462
461
  MangoPay::PayIn::Multibanco::Web.create(
463
462
  AuthorId: new_natural_user['Id'],
464
- DebitedFunds: {Currency: 'EUR', Amount: 199},
465
- Fees: {Currency: 'EUR', Amount: 1},
463
+ DebitedFunds: { Currency: 'EUR', Amount: 199 },
464
+ Fees: { Currency: 'EUR', Amount: 1 },
466
465
  CreditedWalletId: new_wallet['Id'],
467
466
  StatementDescriptor: "ruby",
468
467
  Tag: 'Test PayIn/Multibanco/Web',
@@ -484,8 +483,8 @@ shared_context 'payins' do
484
483
  MangoPay::PayIn::Blik::Web.create(
485
484
  AuthorId: user['Id'],
486
485
  CreditedWalletId: wallet['Id'],
487
- DebitedFunds: {Currency: 'PLN', Amount: 199},
488
- Fees: {Currency: 'PLN', Amount: 1},
486
+ DebitedFunds: { Currency: 'PLN', Amount: 199 },
487
+ Fees: { Currency: 'PLN', Amount: 1 },
489
488
  StatementDescriptor: "ruby",
490
489
  Tag: 'Test PayIn/Blik/Web',
491
490
  ReturnURL: 'https://example.com'
@@ -499,8 +498,8 @@ shared_context 'payins' do
499
498
  MangoPay::PayIn::Satispay::Web.create(
500
499
  AuthorId: new_natural_user['Id'],
501
500
  CreditedWalletId: new_wallet['Id'],
502
- DebitedFunds: {Currency: 'EUR', Amount: 199},
503
- Fees: {Currency: 'EUR', Amount: 1},
501
+ DebitedFunds: { Currency: 'EUR', Amount: 199 },
502
+ Fees: { Currency: 'EUR', Amount: 1 },
504
503
  StatementDescriptor: "ruby",
505
504
  Tag: 'Test PayIn/Mbway/Web',
506
505
  Country: 'IT',
@@ -563,11 +562,42 @@ shared_context 'payins' do
563
562
  FirstName: 'Joe',
564
563
  LastName: 'Blogs'
565
564
  },
566
- MerchantOrderId: 'afd48-879d-48fg',
565
+ Reference: 'afd48-879d-48fg',
567
566
  Tag: 'Test PayIn/Klarna/Web'
568
567
  )
569
568
  end
570
569
 
570
+ ###############################################
571
+ # IDEAL/web
572
+ ###############################################
573
+ let(:new_payin_ideal_web) do
574
+ MangoPay::PayIn::Ideal::Web.create(
575
+ AuthorId: new_natural_user['Id'],
576
+ CreditedWalletId: new_wallet['Id'],
577
+ DebitedFunds: {Currency: 'EUR', Amount: 400},
578
+ Fees: {Currency: 'EUR', Amount: 10},
579
+ ReturnURL: 'http://www.my-site.com/returnURL',
580
+ Bic: 'REVOLT21',
581
+ StatementDescriptor: "test",
582
+ Tag: 'Test PayIn/Ideal/Web'
583
+ )
584
+ end
585
+
586
+ ###############################################
587
+ # Giropay/web
588
+ ###############################################
589
+ let(:new_payin_giropay_web) do
590
+ MangoPay::PayIn::Giropay::Web.create(
591
+ AuthorId: new_natural_user['Id'],
592
+ CreditedWalletId: new_wallet['Id'],
593
+ DebitedFunds: {Currency: 'EUR', Amount: 400},
594
+ Fees: {Currency: 'EUR', Amount: 10},
595
+ ReturnURL: 'http://www.my-site.com/returnURL',
596
+ StatementDescriptor: "test",
597
+ Tag: 'Test PayIn/Giropay/Web'
598
+ )
599
+ end
600
+
571
601
  ###############################################
572
602
  # PAYPAL/web V2
573
603
  ###############################################
@@ -609,35 +639,35 @@ shared_context 'payins' do
609
639
  ShippingPreference: "GET_FROM_FILE",
610
640
  StatementDescriptor: "ruby",
611
641
  Tag: 'Test',
612
- # Culture: 'FR'
642
+ # Culture: 'FR'
613
643
  )
614
644
  end
615
645
 
616
646
  def create_new_payin_card_direct(to_wallet, amnt = 1000)
617
647
  cardreg = new_card_registration_completed
618
648
  MangoPay::PayIn::Card::Direct.create(
619
- AuthorId: new_natural_user['Id'],
620
- CreditedUserId: to_wallet['Owners'][0],
621
- CreditedWalletId: to_wallet['Id'],
622
- DebitedFunds: {Currency: 'EUR', Amount: amnt},
623
- Fees: {Currency: 'EUR', Amount: 0},
624
- CardType: 'CB_VISA_MASTERCARD',
625
- CardId: cardreg['CardId'],
626
- SecureModeReturnURL: 'http://test.com',
627
- Tag: 'Test PayIn/Card/Direct',
628
- Requested3DSVersion: 'V2_1',
629
- BrowserInfo: {
630
- AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
631
- JavaEnabled: true,
632
- Language: "FR-FR",
633
- ColorDepth: 4,
634
- ScreenHeight: 1800,
635
- ScreenWidth: 400,
636
- JavascriptEnabled: true,
637
- TimeZoneOffset: "+60",
638
- UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
639
- },
640
- IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C"
649
+ AuthorId: new_natural_user['Id'],
650
+ CreditedUserId: to_wallet['Owners'][0],
651
+ CreditedWalletId: to_wallet['Id'],
652
+ DebitedFunds: { Currency: 'EUR', Amount: amnt },
653
+ Fees: { Currency: 'EUR', Amount: 0 },
654
+ CardType: 'CB_VISA_MASTERCARD',
655
+ CardId: cardreg['CardId'],
656
+ SecureModeReturnURL: 'http://test.com',
657
+ Tag: 'Test PayIn/Card/Direct',
658
+ Requested3DSVersion: 'V2_1',
659
+ BrowserInfo: {
660
+ AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
661
+ JavaEnabled: true,
662
+ Language: "FR-FR",
663
+ ColorDepth: 4,
664
+ ScreenHeight: 1800,
665
+ ScreenWidth: 400,
666
+ JavascriptEnabled: true,
667
+ TimeZoneOffset: "+60",
668
+ UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
669
+ },
670
+ IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C"
641
671
  )
642
672
  end
643
673
 
@@ -649,25 +679,25 @@ shared_context 'payins' do
649
679
 
650
680
  def create_new_card_preauthorization(cardreg, amnt = 1000)
651
681
  MangoPay::PreAuthorization.create(
652
- AuthorId: new_natural_user['Id'],
653
- DebitedFunds: {Currency: 'EUR', Amount: amnt},
654
- CardId: cardreg['CardId'],
655
- SecureMode: 'DEFAULT',
656
- SecureModeReturnURL: 'http://test.com',
657
- Tag: 'Test Card PreAuthorization',
658
- Requested3DSVersion: 'V2_1',
659
- BrowserInfo: {
660
- AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
661
- JavaEnabled: true,
662
- Language: "FR-FR",
663
- ColorDepth: 4,
664
- ScreenHeight: 1800,
665
- ScreenWidth: 400,
666
- JavascriptEnabled: true,
667
- TimeZoneOffset: "+60",
668
- UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
669
- },
670
- IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C"
682
+ AuthorId: new_natural_user['Id'],
683
+ DebitedFunds: { Currency: 'EUR', Amount: amnt },
684
+ CardId: cardreg['CardId'],
685
+ SecureMode: 'DEFAULT',
686
+ SecureModeReturnURL: 'http://test.com',
687
+ Tag: 'Test Card PreAuthorization',
688
+ Requested3DSVersion: 'V2_1',
689
+ BrowserInfo: {
690
+ AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
691
+ JavaEnabled: true,
692
+ Language: "FR-FR",
693
+ ColorDepth: 4,
694
+ ScreenHeight: 1800,
695
+ ScreenWidth: 400,
696
+ JavascriptEnabled: true,
697
+ TimeZoneOffset: "+60",
698
+ UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
699
+ },
700
+ IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C"
671
701
  )
672
702
  end
673
703
 
@@ -676,25 +706,25 @@ shared_context 'payins' do
676
706
  def create_new_payin_preauthorized_direct(to_wallet, amnt = 1000)
677
707
  preauth = new_card_preauthorization
678
708
  MangoPay::PayIn::PreAuthorized::Direct.create(
679
- AuthorId: new_natural_user['Id'],
680
- CreditedUserId: to_wallet['Owners'][0],
681
- CreditedWalletId: to_wallet['Id'],
682
- DebitedFunds: {Currency: 'EUR', Amount: amnt},
683
- Fees: {Currency: 'EUR', Amount: 0},
684
- PreauthorizationId: preauth['Id'],
685
- Tag: 'Test PayIn/PreAuthorized/Direct',
686
- BrowserInfo: {
687
- AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
688
- JavaEnabled: true,
689
- Language: "FR-FR",
690
- ColorDepth: 4,
691
- ScreenHeight: 1800,
692
- ScreenWidth: 400,
693
- JavascriptEnabled: true,
694
- TimeZoneOffset: "+60",
695
- UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
696
- },
697
- IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C"
709
+ AuthorId: new_natural_user['Id'],
710
+ CreditedUserId: to_wallet['Owners'][0],
711
+ CreditedWalletId: to_wallet['Id'],
712
+ DebitedFunds: { Currency: 'EUR', Amount: amnt },
713
+ Fees: { Currency: 'EUR', Amount: 0 },
714
+ PreauthorizationId: preauth['Id'],
715
+ Tag: 'Test PayIn/PreAuthorized/Direct',
716
+ BrowserInfo: {
717
+ AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
718
+ JavaEnabled: true,
719
+ Language: "FR-FR",
720
+ ColorDepth: 4,
721
+ ScreenHeight: 1800,
722
+ ScreenWidth: 400,
723
+ JavascriptEnabled: true,
724
+ TimeZoneOffset: "+60",
725
+ UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
726
+ },
727
+ IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C"
698
728
  )
699
729
  end
700
730
 
@@ -725,12 +755,12 @@ shared_context 'payins' do
725
755
 
726
756
  def create_new_payin_pre_authorized_deposit_direct(deposit_id, author_id, credited_wallet_id)
727
757
  MangoPay::PayIn::PreAuthorized::Direct.create_pre_authorized_deposit_pay_in(
728
- AuthorId: author_id,
729
- CreditedWalletId: credited_wallet_id,
730
- DebitedFunds: {Currency: 'EUR', Amount: 500},
731
- Fees: {Currency: 'EUR', Amount: 0},
732
- DepositId: deposit_id,
733
- Tag: 'lorem ipsum'
758
+ AuthorId: author_id,
759
+ CreditedWalletId: credited_wallet_id,
760
+ DebitedFunds: { Currency: 'EUR', Amount: 500 },
761
+ Fees: { Currency: 'EUR', Amount: 0 },
762
+ DepositId: deposit_id,
763
+ Tag: 'lorem ipsum'
734
764
  )
735
765
  end
736
766
 
@@ -742,14 +772,33 @@ shared_context 'payins' do
742
772
 
743
773
  def create_new_payin_bankwire_direct(to_wallet, amnt = 1000)
744
774
  MangoPay::PayIn::BankWire::Direct.create(
745
- AuthorId: new_natural_user['Id'],
746
- CreditedUserId: to_wallet['Owners'][0],
747
- CreditedWalletId: to_wallet['Id'],
748
- DeclaredDebitedFunds: {Currency: 'EUR', Amount: amnt},
749
- DeclaredFees: {Currency: 'EUR', Amount: 0},
750
- Tag: 'Test PayIn/BankWire/Direct'
775
+ AuthorId: new_natural_user['Id'],
776
+ CreditedUserId: to_wallet['Owners'][0],
777
+ CreditedWalletId: to_wallet['Id'],
778
+ DeclaredDebitedFunds: { Currency: 'EUR', Amount: amnt },
779
+ DeclaredFees: { Currency: 'EUR', Amount: 0 },
780
+ Tag: 'Test PayIn/BankWire/Direct'
751
781
  )
752
782
  end
783
+
784
+ ###############################################
785
+ # wallet with money
786
+ ###############################################
787
+ #
788
+ let(:new_wallet_with_money){ create_new_wallet_with_money(new_natural_user) }
789
+
790
+ def create_new_wallet_with_money(user)
791
+ wallet = MangoPay::Wallet.create(
792
+ Owners: [user['Id']],
793
+ Description: 'A test wallet',
794
+ Currency: 'EUR',
795
+ Tag: 'Test wallet'
796
+ )
797
+
798
+ pay_in = create_new_payin_card_direct(wallet)
799
+ MangoPay::Wallet.fetch(pay_in['CreditedWalletId'])
800
+ end
801
+
753
802
  end
754
803
 
755
804
  ###############################################
@@ -761,14 +810,14 @@ shared_context 'payouts' do
761
810
 
762
811
  def create_new_payout_bankwire(payin, amnt = 500)
763
812
  MangoPay::PayOut::BankWire.create(
764
- AuthorId: payin['CreditedUserId'],
765
- DebitedWalletId: payin['CreditedWalletId'],
766
- DebitedFunds: {Currency: 'EUR', Amount: amnt},
767
- Fees: {Currency: 'EUR', Amount: 0},
768
- BankAccountId: new_bank_account['Id'],
769
- Communication: 'This is a test',
770
- Tag: 'Test PayOut/Bank/Wire',
771
- PayoutModeRequested: 'Standard'
813
+ AuthorId: payin['CreditedUserId'],
814
+ DebitedWalletId: payin['CreditedWalletId'],
815
+ DebitedFunds: { Currency: 'EUR', Amount: amnt },
816
+ Fees: { Currency: 'EUR', Amount: 0 },
817
+ BankAccountId: new_bank_account['Id'],
818
+ Communication: 'This is a test',
819
+ Tag: 'Test PayOut/Bank/Wire',
820
+ PayoutModeRequested: 'Standard'
772
821
  )
773
822
  end
774
823
  end
@@ -789,13 +838,13 @@ shared_context 'transfers' do
789
838
 
790
839
  def create_new_transfer(from_wallet, to_wallet, amnt = 500)
791
840
  MangoPay::Transfer.create(
792
- AuthorId: from_wallet['Owners'][0],
793
- DebitedWalletId: from_wallet['Id'],
794
- CreditedUserId: to_wallet['Owners'][0],
795
- CreditedWalletId: to_wallet['Id'],
796
- DebitedFunds: {Currency: 'EUR', Amount: amnt},
797
- Fees: {Currency: 'EUR', Amount: 0},
798
- Tag: 'Test transfer'
841
+ AuthorId: from_wallet['Owners'][0],
842
+ DebitedWalletId: from_wallet['Id'],
843
+ CreditedUserId: to_wallet['Owners'][0],
844
+ CreditedWalletId: to_wallet['Id'],
845
+ DebitedFunds: { Currency: 'EUR', Amount: amnt },
846
+ Fees: { Currency: 'EUR', Amount: 0 },
847
+ Tag: 'Test transfer'
799
848
  )
800
849
  end
801
850
  end
@@ -807,9 +856,9 @@ shared_context 'hooks' do
807
856
  hooks = MangoPay::Hook.fetch('page' => 1, 'per_page' => 1)
808
857
  if hooks.empty?
809
858
  MangoPay::Hook.create(
810
- EventType: 'PAYIN_NORMAL_CREATED',
811
- Url: 'http://test.com',
812
- Tag: 'Test hook'
859
+ EventType: 'PAYIN_NORMAL_CREATED',
860
+ Url: 'http://test.com',
861
+ Tag: 'Test hook'
813
862
  )
814
863
  else
815
864
  hooks[0]
@@ -825,64 +874,101 @@ shared_context 'bankingaliases' do
825
874
 
826
875
  let(:new_banking_alias) do
827
876
  MangoPay::BankingAliasesIBAN.create({
828
- CreditedUserId: new_natural_user['Id'],
829
- WalletId: new_wallet['Id'],
830
- OwnerName: new_natural_user['FirstName'],
831
- Country: 'LU'
877
+ CreditedUserId: new_natural_user['Id'],
878
+ WalletId: new_wallet['Id'],
879
+ OwnerName: new_natural_user['FirstName'],
880
+ Country: 'LU'
832
881
  }, new_wallet['Id'])
833
882
  end
834
883
  end
835
884
 
836
-
837
885
  ###############################################
838
886
  # deposits
839
887
  ###############################################
840
888
 
841
889
  def create_new_deposit(card_registration_id, author_id)
842
890
  MangoPay::Deposit.create(
843
- {
844
- AuthorId: author_id,
845
- DebitedFunds: {Currency: 'EUR', Amount: 1000},
846
- CardId: card_registration_id,
847
- SecureModeReturnURL: 'http://mangopay-sandbox-test.com',
848
- StatementDescriptor: "lorem",
849
- Culture: 'FR',
850
- IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C",
851
- BrowserInfo: {
852
- AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
853
- JavaEnabled: true,
854
- Language: "FR-FR",
855
- ColorDepth: 4,
856
- ScreenHeight: 1800,
857
- ScreenWidth: 400,
858
- JavascriptEnabled: true,
859
- TimeZoneOffset: "+60",
860
- UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
861
- },
862
- Billing: {
863
- Address: {
864
- AddressLine1: 'AddressLine1',
865
- AddressLine2: 'AddressLine2',
866
- City: 'City',
867
- Region: 'Region',
868
- PostalCode: 'PostalCode',
869
- Country: 'FR'
870
- },
871
- FirstName: 'Joe',
872
- LastName: 'Blogs'
873
- },
874
- Shipping: {
875
- Address: {
876
- AddressLine1: 'AddressLine1',
877
- AddressLine2: 'AddressLine2',
878
- City: 'City',
879
- Region: 'Region',
880
- PostalCode: 'PostalCode',
881
- Country: 'FR'
882
- },
883
- FirstName: 'Joe',
884
- LastName: 'Blogs'
885
- }
891
+ {
892
+ AuthorId: author_id,
893
+ DebitedFunds: { Currency: 'EUR', Amount: 1000 },
894
+ CardId: card_registration_id,
895
+ SecureModeReturnURL: 'http://mangopay-sandbox-test.com',
896
+ StatementDescriptor: "lorem",
897
+ Culture: 'FR',
898
+ IpAddress: "2001:0620:0000:0000:0211:24FF:FE80:C12C",
899
+ BrowserInfo: {
900
+ AcceptHeader: "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
901
+ JavaEnabled: true,
902
+ Language: "FR-FR",
903
+ ColorDepth: 4,
904
+ ScreenHeight: 1800,
905
+ ScreenWidth: 400,
906
+ JavascriptEnabled: true,
907
+ TimeZoneOffset: "+60",
908
+ UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
909
+ },
910
+ Billing: {
911
+ Address: {
912
+ AddressLine1: 'AddressLine1',
913
+ AddressLine2: 'AddressLine2',
914
+ City: 'City',
915
+ Region: 'Region',
916
+ PostalCode: 'PostalCode',
917
+ Country: 'FR'
918
+ },
919
+ FirstName: 'Joe',
920
+ LastName: 'Blogs'
921
+ },
922
+ Shipping: {
923
+ Address: {
924
+ AddressLine1: 'AddressLine1',
925
+ AddressLine2: 'AddressLine2',
926
+ City: 'City',
927
+ Region: 'Region',
928
+ PostalCode: 'PostalCode',
929
+ Country: 'FR'
930
+ },
931
+ FirstName: 'Joe',
932
+ LastName: 'Blogs'
886
933
  }
934
+ }
887
935
  )
936
+ end
937
+
938
+ ###############################################
939
+ # instant conversions
940
+ ###############################################
941
+ shared_context 'instant_conversion' do
942
+ include_context 'payins'
943
+ def get_conversion_rate(debited_currency, credited_currency)
944
+ MangoPay::InstantConversion.get_rate(debited_currency, credited_currency, params = {})
945
+ end
946
+
947
+ def create_instant_conversion()
948
+ user = new_natural_user
949
+ credited_wallet = MangoPay::Wallet.create(
950
+ Owners: [user['Id']],
951
+ Description: 'A test wallet',
952
+ Currency: 'GBP',
953
+ Tag: 'Test wallet'
954
+ )
955
+
956
+ MangoPay::InstantConversion.create(
957
+ AuthorId: user['Id'],
958
+ CreditedWalletId: credited_wallet['Id'],
959
+ DebitedWalletId: new_wallet_with_money['Id'],
960
+ CreditedFunds: {
961
+ Currency: 'GBP'
962
+ },
963
+ DebitedFunds: {
964
+ Currency: 'EUR',
965
+ Amount: 79
966
+ },
967
+ Tag: 'Instant conversion test'
968
+ )
969
+ end
970
+
971
+ def get_instant_conversion(id)
972
+ MangoPay::InstantConversion.get(id, params = {})
973
+ end
888
974
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mangopay
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.17.0
4
+ version: 3.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoffroy Lorieux
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-09-20 00:00:00.000000000 Z
12
+ date: 2023-11-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
@@ -89,6 +89,7 @@ files:
89
89
  - lib/mangopay/filter_parameters.rb
90
90
  - lib/mangopay/hook.rb
91
91
  - lib/mangopay/http_calls.rb
92
+ - lib/mangopay/instant_conversion.rb
92
93
  - lib/mangopay/json.rb
93
94
  - lib/mangopay/kyc_document.rb
94
95
  - lib/mangopay/legal_user.rb
@@ -123,6 +124,7 @@ files:
123
124
  - spec/mangopay/fetch_filters_spec.rb
124
125
  - spec/mangopay/hook_spec.rb
125
126
  - spec/mangopay/idempotency_spec.rb
127
+ - spec/mangopay/instant_conversion_spec.rb
126
128
  - spec/mangopay/kyc_document_spec.png
127
129
  - spec/mangopay/kyc_document_spec.rb
128
130
  - spec/mangopay/log_requests_filter_spec.rb
@@ -135,7 +137,9 @@ files:
135
137
  - spec/mangopay/payin_card_web_spec.rb
136
138
  - spec/mangopay/payin_directdebit_direct_spec.rb
137
139
  - spec/mangopay/payin_directdebit_web_spec.rb
140
+ - spec/mangopay/payin_giropay_web_spec.rb
138
141
  - spec/mangopay/payin_googlepay_direct_spec.rb
142
+ - spec/mangopay/payin_ideal_web_spec.rb
139
143
  - spec/mangopay/payin_klarna_web_spec.rb
140
144
  - spec/mangopay/payin_mbway_web_spec.rb
141
145
  - spec/mangopay/payin_multibanco_web_spec.rb
@@ -197,6 +201,7 @@ test_files:
197
201
  - spec/mangopay/fetch_filters_spec.rb
198
202
  - spec/mangopay/hook_spec.rb
199
203
  - spec/mangopay/idempotency_spec.rb
204
+ - spec/mangopay/instant_conversion_spec.rb
200
205
  - spec/mangopay/kyc_document_spec.png
201
206
  - spec/mangopay/kyc_document_spec.rb
202
207
  - spec/mangopay/log_requests_filter_spec.rb
@@ -209,7 +214,9 @@ test_files:
209
214
  - spec/mangopay/payin_card_web_spec.rb
210
215
  - spec/mangopay/payin_directdebit_direct_spec.rb
211
216
  - spec/mangopay/payin_directdebit_web_spec.rb
217
+ - spec/mangopay/payin_giropay_web_spec.rb
212
218
  - spec/mangopay/payin_googlepay_direct_spec.rb
219
+ - spec/mangopay/payin_ideal_web_spec.rb
213
220
  - spec/mangopay/payin_klarna_web_spec.rb
214
221
  - spec/mangopay/payin_mbway_web_spec.rb
215
222
  - spec/mangopay/payin_multibanco_web_spec.rb