diff --git a/lib/mangopay/pay_in.rb b/lib/mangopay/pay_in.rb index df0e25c..29c8e26 100644 --- a/lib/mangopay/pay_in.rb +++ b/lib/mangopay/pay_in.rb @@ -233,6 +233,16 @@ def self.url(*) end end + module Bancontact + class Web < Resource + include HTTPCalls::Create + + def self.url(*) + "#{MangoPay.api_path}/payins/payment-methods/bancontact" + end + end + end + module RecurringPayments class Recurring < Resource include HTTPCalls::Create diff --git a/spec/mangopay/payin_bancontact_web_spec.rb b/spec/mangopay/payin_bancontact_web_spec.rb new file mode 100644 index 0000000..9f476ff --- /dev/null +++ b/spec/mangopay/payin_bancontact_web_spec.rb @@ -0,0 +1,30 @@ +describe MangoPay::PayIn::Bancontact::Web, type: :feature do + include_context 'wallets' + include_context 'payins' + + def check_type_and_status(payin) + expect(payin['Type']).to eq('PAYIN') + expect(payin['Nature']).to eq('REGULAR') + expect(payin['PaymentType']).to eq('BCMC') + expect(payin['ExecutionType']).to eq('WEB') + expect(payin['Status']).to eq('CREATED') + end + + describe 'CREATE' do + it 'creates a bancontact web payin' do + created = new_payin_bancontact_web + expect(created['Id']).not_to be_nil + check_type_and_status(created) + end + end + + describe 'FETCH' do + it 'fetches a payin' do + created = new_payin_bancontact_web + fetched = MangoPay::PayIn.fetch(created['Id']) + expect(fetched['Id']).to eq(created['Id']) + check_type_and_status(created) + check_type_and_status(fetched) + end + end +end \ No newline at end of file diff --git a/spec/mangopay/shared_resources.rb b/spec/mangopay/shared_resources.rb index 0af611d..8b29b4a 100644 --- a/spec/mangopay/shared_resources.rb +++ b/spec/mangopay/shared_resources.rb @@ -554,6 +554,22 @@ def create_new_document(user) ) end + ############################################### + # Bancontact/web + ############################################### + let(:new_payin_bancontact_web) do + MangoPay::PayIn::Bancontact::Web.create( + AuthorId: new_natural_user['Id'], + CreditedWalletId: new_wallet['Id'], + DebitedFunds: { Currency: 'EUR', Amount: 400 }, + Fees: { Currency: 'EUR', Amount: 10 }, + ReturnURL: 'http://www.my-site.com/returnURL', + StatementDescriptor: "test", + Tag: 'Test PayIn/Bancontact/Web', + Culture: 'FR' + ) + end + ############################################### # PAYPAL/web V2 ###############################################