diff --git a/eopayment/mollie.py b/eopayment/mollie.py index efc6dc1..4bfe006 100644 --- a/eopayment/mollie.py +++ b/eopayment/mollie.py @@ -75,6 +75,8 @@ class Payment(PaymentCommon): def request(self, amount, **kwargs): amount = self.clean_amount(amount, cents=False) + orderid = kwargs.pop('orderid', None) + subject = kwargs.pop('subject', None) metadata = { k: v for k, v in kwargs.items() if k in ('email', 'first_name', 'last_name') and v is not None @@ -89,6 +91,12 @@ class Payment(PaymentCommon): 'metadata': metadata, 'description': self.description_text, } + if orderid is not None: + body['description'] = orderid + metadata['orderid'] = orderid + if subject is not None: + body['description'] = subject + body['subject'] = subject resp = self.call_endpoint('POST', 'payments', data=body) diff --git a/tests/test_mollie.py b/tests/test_mollie.py index 38e629e..0791140 100644 --- a/tests/test_mollie.py +++ b/tests/test_mollie.py @@ -181,6 +181,44 @@ def test_mollie_request(mollie): assert body['redirectUrl'] == RETURN_URL +@with_httmock(add_payment) +def test_mollie_request_orderid(mollie): + email = 'test@test.com' + payment_id, kind, url = mollie.request(2.5, email=email, orderid='1234') + + assert payment_id == PAYMENT_ID + assert kind == eopayment.URL + assert 'mollie.com/payscreen/' in url + + body = json.loads(add_payment.call['requests'][0].body.decode()) + assert body['amount']['value'] == '2.5' + assert body['amount']['currency'] == 'EUR' + assert body['metadata']['email'] == email + assert body['metadata']['orderid'] == '1234' + assert body['webhookUrl'] == WEBHOOK_URL + assert body['redirectUrl'] == RETURN_URL + assert body['description'] == '1234' + + +@with_httmock(add_payment) +def test_mollie_request_orderid_subject(mollie): + email = 'test@test.com' + payment_id, kind, url = mollie.request(2.5, email=email, orderid='1234', subject='Ticket cantine #1234') + + assert payment_id == PAYMENT_ID + assert kind == eopayment.URL + assert 'mollie.com/payscreen/' in url + + body = json.loads(add_payment.call['requests'][0].body.decode()) + assert body['amount']['value'] == '2.5' + assert body['amount']['currency'] == 'EUR' + assert body['metadata']['email'] == email + assert body['metadata']['orderid'] == '1234' + assert body['webhookUrl'] == WEBHOOK_URL + assert body['redirectUrl'] == RETURN_URL + assert body['description'] == 'Ticket cantine #1234' + + @with_httmock(successful_payment) def test_mollie_response(mollie): payment_response = mollie.response(QUERY_STRING)