From df6e44dbaba185d0bcd7e7e5ad6ef3d4f6c9edd2 Mon Sep 17 00:00:00 2001 From: Iulian Masar Date: Fri, 28 Feb 2025 10:58:24 +0200 Subject: [PATCH] handle latest payconiq api url --- mangopay/resources.py | 24 ++++++++++++++++++++++++ tests/test_payins.py | 29 ++++++++++++++++++++++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/mangopay/resources.py b/mangopay/resources.py index 09fad62..135537b 100644 --- a/mangopay/resources.py +++ b/mangopay/resources.py @@ -950,6 +950,30 @@ class Meta: } +@python_2_unicode_compatible +class PayconiqV2PayIn(PayIn): + author = ForeignKeyField(User, api_name='AuthorId', required=True) + debited_funds = MoneyField(api_name='DebitedFunds', required=True) + fees = MoneyField(api_name='Fees', required=True) + return_url = CharField(api_name='ReturnURL', required=True) + credited_wallet = ForeignKeyField(Wallet, api_name='CreditedWalletId', required=True) + redirect_url = CharField(api_name='RedirectURL') + creation_date = DateField(api_name='CreationDate') + expiration_date = CharField(api_name='ExpirationDate') + deep_link_url = CharField(api_name='DeepLinkURL') + country = CharField(api_name='Country', required=True) + statement_descriptor = CharField(api_name='StatementDescriptor') + qr_code_url = CharField(api_name='QRCodeURL') + + class Meta: + verbose_name = 'payin' + verbose_name_plural = 'payins' + url = { + InsertQuery.identifier: '/payins/payment-methods/payconiq', + SelectQuery.identifier: '/payins' + } + + class ApplepayPayIn(PayIn): tag = CharField(api_name='Tag') author = ForeignKeyField(User, api_name='AuthorId', required=True) diff --git a/tests/test_payins.py b/tests/test_payins.py index 330da17..a2a4fe6 100644 --- a/tests/test_payins.py +++ b/tests/test_payins.py @@ -8,7 +8,7 @@ RecurringPayInRegistration, \ RecurringPayInCIT, PayInRefund, RecurringPayInMIT, CardPreAuthorizedDepositPayIn, MbwayPayIn, PayPalWebPayIn, \ GooglePayDirectPayIn, MultibancoPayIn, SatispayPayIn, BlikPayIn, KlarnaPayIn, IdealPayIn, GiropayPayIn, \ - CardRegistration, BancontactPayIn, SwishPayIn + CardRegistration, BancontactPayIn, SwishPayIn, PayconiqV2PayIn from mangopay.utils import (Money, ShippingAddress, Shipping, Billing, Address, SecurityInfo, ApplepayPaymentData, GooglepayPaymentData, DebitedBankAccount, LineItem, CardInfo) from tests import settings @@ -1871,3 +1871,30 @@ def test_RecurringPayment_CheckCardInfo(self): mit_card_info = created_mit['card_info'] self.assertIsNotNone(mit_card_info) self.assertIsInstance(mit_card_info, CardInfo) + + def test_PayIns_Payconiq_Web_Create(self): + user = BaseTestLive.get_john(True) + + # create wallet + credited_wallet = Wallet() + credited_wallet.owners = (user,) + credited_wallet.currency = 'EUR' + credited_wallet.description = 'WALLET IN EUR' + credited_wallet = Wallet(**credited_wallet.save()) + + payin = PayconiqV2PayIn() + payin.credited_wallet = credited_wallet + payin.author = user + payin.debited_funds = Money(amount=10000, currency='EUR') + payin.fees = Money(amount=0, currency='EUR') + payin.return_url = 'https://test.com' + payin.country = 'BE' + result = PayconiqV2PayIn(**payin.save()) + + self.assertIsNotNone(result) + self.assertEqual("CREATED", result.status) + self.assertEqual("REGULAR", result.nature) + self.assertEqual("WEB", result.execution_type) + self.assertEqual("PAYCONIQ", result.payment_type) + self.assertIsNotNone(result.deep_link_url) + self.assertIsNotNone(result.qr_code_url)