Skip to content

Commit be78ec7

Browse files
Merge pull request #139 from Adyen/develop
Release 5.1.0
2 parents 5532943 + 995eaf5 commit be78ec7

11 files changed

+141
-4
lines changed

Adyen/client.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,10 @@ def _determine_checkout_url(self, platform, action):
173173
action = "payments/result"
174174
if action == "originKeys":
175175
api_version = settings.API_CHECKOUT_UTILITY_VERSION
176+
if action == "paymentMethodsBalance":
177+
action = "paymentMethods/balance"
178+
if action == "ordersCancel":
179+
action = "orders/cancel"
176180

177181
return '/'.join([base_uri, api_version, action])
178182

@@ -492,7 +496,8 @@ def call_checkout_api(self, request_data, action, idempotency_key=None,
492496
"authorise3ds2",
493497
"payments",
494498
"paymentSession",
495-
"paymentLinks"
499+
"paymentLinks",
500+
"paymentMethodsBalance"
496501
]
497502

498503
if action in with_app_info:

Adyen/services.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ class AdyenPayment(AdyenServiceBase):
128128
API calls currently implemented:
129129
authorise
130130
authorise3d
131+
adjustAuthorisation
131132
cancel
132133
capture
133134
refund
@@ -170,6 +171,12 @@ def authorise3d(self, request, idempotency_key=None, **kwargs):
170171
return self.client.call_api(request, self.service,
171172
action, idempotency_key, **kwargs)
172173

174+
def adjustAuthorisation(self, request, **kwargs):
175+
action = "adjustAuthorisation"
176+
177+
return self.client.call_api(request, self.service,
178+
action, **kwargs)
179+
173180
def cancel(self, request, idempotency_key=None, **kwargs):
174181
action = "cancel"
175182

@@ -272,6 +279,7 @@ class AdyenCheckoutApi(AdyenServiceBase):
272279
payments
273280
payments/details
274281
originKeys
282+
275283
Please refer to the checkout documentation for specifics around the API.
276284
https://docs.adyen.com/developers/checkout
277285
@@ -318,6 +326,23 @@ def origin_keys(self, request=None, **kwargs):
318326
action = "originKeys"
319327
return self.client.call_checkout_api(request, action, **kwargs)
320328

329+
# Orders endpoints
330+
331+
# /paymentMethods/balance
332+
def payment_methods_balance(self, request, **kwargs):
333+
action = "paymentMethodsBalance"
334+
return self.client.call_checkout_api(request, action, **kwargs)
335+
336+
# /orders
337+
def orders(self, request, **kwargs):
338+
action = "orders"
339+
return self.client.call_checkout_api(request, action, **kwargs)
340+
341+
# /orders/cancel
342+
def orders_cancel(self, request, **kwargs):
343+
action = "ordersCancel"
344+
return self.client.call_checkout_api(request, action, **kwargs)
345+
321346

322347
class AdyenBinLookup(AdyenServiceBase):
323348
"""This represents the Adyen API Bin Lookup service.

Adyen/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
API_RECURRING_VERSION = "v49"
1313
API_PAYMENT_VERSION = "v64"
1414
API_PAYOUT_VERSION = "v64"
15-
LIB_VERSION = "5.0.0"
15+
LIB_VERSION = "5.1.0"
1616
LIB_NAME = "adyen-python-api-library"

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
setup(
44
name='Adyen',
55
packages=['Adyen'],
6-
version='5.0.0',
6+
version='5.1.0',
77
maintainer='Adyen',
88
maintainer_email='[email protected]',
99
description='Adyen Python Api',

test/CheckoutTest.py

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def test_payments_error_mocked(self):
9797
'returnUrl': 'https://your-company.com/...',
9898
u'applicationInfo': {
9999
u'adyenLibrary': {
100-
u'version': '5.0.0',
100+
u'version': '5.1.0',
101101
u'name': 'adyen-python-api-library'
102102
}
103103
},
@@ -235,3 +235,42 @@ def test_payments_result_error_mocked(self):
235235
self.assertEqual("14_018", result.message['errorCode'])
236236
self.assertEqual("Invalid payload provided", result.message['message'])
237237
self.assertEqual("validation", result.message['errorType'])
238+
239+
def test_orders_success(self):
240+
request = {'merchantAccount': "YourMerchantAccount"}
241+
self.adyen.client = self.test.create_client_from_file(200, request,
242+
"test/mocks/"
243+
"checkout/"
244+
"orders"
245+
"-success.json")
246+
result = self.adyen.checkout.orders(request)
247+
self.assertEqual("8515930288670953", result.message['pspReference'])
248+
self.assertEqual("Success", result.message['resultCode'])
249+
self.assertEqual("order reference", result.message['reference'])
250+
self.assertEqual("EUR", result.message['remainingAmount']["currency"])
251+
self.assertEqual(2500, result.message['remainingAmount']['value'])
252+
253+
def test_orders_cancel_success(self):
254+
request = {'merchantAccount': "YourMerchantAccount"}
255+
self.adyen.client = self.test.create_client_from_file(200, request,
256+
"test/mocks/"
257+
"checkout/"
258+
"orders-cancel"
259+
"-success.json")
260+
result = self.adyen.checkout.orders_cancel(request)
261+
self.assertEqual("8515931182066678", result.message['pspReference'])
262+
self.assertEqual("Received", result.message['resultCode'])
263+
264+
def test_paymentmethods_balance_success(self):
265+
request = {'merchantAccount': "YourMerchantAccount"}
266+
self.adyen.client = self.test.create_client_from_file(200, request,
267+
"test/mocks/"
268+
"checkout/"
269+
"paymentmethods"
270+
"-balance"
271+
"-success.json")
272+
result = self.adyen.checkout.payment_methods_balance(request)
273+
self.assertEqual("851611111111713K", result.message['pspReference'])
274+
self.assertEqual("Success", result.message['resultCode'])
275+
self.assertEqual(100, result.message['balance']['value'])
276+
self.assertEqual("EUR", result.message['balance']['currency'])

test/DetermineEndpointTest.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,25 @@ def test_binlookup_url_no_live_endpoint_prefix_test_platform(self):
106106
("https://pal-test.adyen.com/pal/servlet/"
107107
"BinLookup/v50/get3dsAvailability")
108108
)
109+
110+
def test_checkout_api_url_orders(self):
111+
self.client.live_endpoint_prefix = None
112+
url = self.adyen.client._determine_checkout_url("test",
113+
"orders")
114+
self.assertEqual(url, "https://checkout-test.adyen.com"
115+
"/v67/orders")
116+
117+
def test_checkout_api_url_order_cancel(self):
118+
self.client.live_endpoint_prefix = None
119+
url = self.adyen.client._determine_checkout_url("test",
120+
"ordersCancel")
121+
self.assertEqual(url, "https://checkout-test.adyen.com"
122+
"/v67/orders/cancel")
123+
124+
def test_checkout_api_url_order_payment_methods_balance(self):
125+
self.client.live_endpoint_prefix = None
126+
url = self.adyen.client._determine_checkout_url("test",
127+
"paymentMethods"
128+
"Balance")
129+
self.assertEqual(url, "https://checkout-test.adyen.com""/v67/"
130+
"paymentMethods/balance")

test/ModificationTest.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,21 @@ def test_cancel_received(self):
8383
result = self.ady.payment.cancel(request)
8484
self.assertEqual("[cancel-received]", result.message['response'])
8585

86+
def test_adjust_authorisation_received(self):
87+
request = {}
88+
request['merchantAccount'] = "YourMerchantAccount"
89+
request['reference'] = "YourReference"
90+
request['modificationAmount'] = {"value": "1234", "currency": "EUR"}
91+
request['originalReference'] = "YourOriginalReference"
92+
self.ady.client = self.test.create_client_from_file(200, request,
93+
'test/mocks/'
94+
'adjust-'
95+
'authorisation-'
96+
'received.json')
97+
result = self.ady.payment.adjustAuthorisation(request)
98+
self.assertEqual("[adjustAuthorisation-received]",
99+
result.message['response'])
100+
86101

87102
TestModifications.client.http_force = "requests"
88103
suite = unittest.TestLoader().loadTestsFromTestCase(TestModifications)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"pspReference": "PSP_REFERENCE",
3+
"response": "[adjustAuthorisation-received]"
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"pspReference": "8515931182066678",
3+
"resultCode": "Received"
4+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"pspReference": "8515930288670953",
3+
"resultCode": "Success",
4+
"expiresAt": "2020-06-25T20:01:07Z",
5+
"orderData": "Ab02b4c0!BQABAgBqxSuFhuXUF7IvIRvSw5bDPHN...",
6+
"reference": "order reference",
7+
"remainingAmount": {
8+
"currency": "EUR",
9+
"value": 2500
10+
}
11+
}

0 commit comments

Comments
 (0)