Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions Adyen/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ def __init__(
username=None,
password=None,
xapikey=None,
application_name=None,
review_payout_username=None,
review_payout_password=None,
store_payout_username=None, store_payout_password=None,
Expand Down Expand Up @@ -100,6 +101,7 @@ def __init__(
self.username = username
self.password = password
self.xapikey = xapikey
self.application_name = application_name
self.review_payout_username = review_payout_username
self.review_payout_password = review_payout_password
self.store_payout_username = store_payout_username
Expand Down Expand Up @@ -349,7 +351,8 @@ def call_adyen_api(

headers = {
self.APPLICATION_INFO_HEADER_NAME: settings.LIB_NAME,
self.APPLICATION_VERSION_HEADER_NAME: settings.LIB_VERSION
self.APPLICATION_VERSION_HEADER_NAME: settings.LIB_VERSION,
'User-Agent': self.http_client.user_agent,
}

# Adyen requires this header to be set and uses the combination of
Expand Down Expand Up @@ -388,8 +391,11 @@ def call_adyen_api(
return adyen_result

def _init_http_client(self):
user_agent_suffix = self.USER_AGENT_SUFFIX
if self.application_name:
user_agent_suffix = self.application_name + " " + user_agent_suffix
self.http_client = HTTPClient(
user_agent_suffix=self.USER_AGENT_SUFFIX,
user_agent_suffix=user_agent_suffix,
lib_version=self.LIB_VERSION,
force_request=self.http_force,
timeout=self.http_timeout,
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ adyen = Adyen.Adyen()
# Configure the client
adyen.client.xapikey = "YourXapikey"
adyen.client.platform = "test" # change to "live" for production
adyen.client.application_name = "MyTestApp" # if applicable, set application name (for tracking purposes)


# Prepare the request
request = {
Expand Down Expand Up @@ -109,6 +111,7 @@ from Adyen.services import AdyenCheckoutApi
adyen_client = AdyenClient()
adyen_client.xapikey = "YourXapikey"
adyen_client.platform = "test"
adyen_client.application_name = "MyTestApp" # if applicable, set application name (for tracking purposes)

# Instantiate the AdyenCheckoutApi service
checkout_service = AdyenCheckoutApi(client=adyen_client)
Expand All @@ -125,6 +128,7 @@ Similarly you can instantiate a separate client for services that required diffe
adyen_lem_client = AdyenClient()
adyen_lem_client.xapikey = "YourLEMXapikey"
adyen_lem_client.platform = "test"
adyen_lem_client.application_name = "MyTestApp" # if applicable, set application name (for tracking purposes)
~~~~

#### Force HTTP library
Expand Down
18 changes: 9 additions & 9 deletions test/BalancePlatformTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def test_creating_balance_account(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.balance_platform_url}/balanceAccounts',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand All @@ -49,7 +49,7 @@ def test_creating_account_holder(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.balance_platform_url}/accountHolders',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand All @@ -63,7 +63,7 @@ def test_get_balance_platform(self):
self.adyen.client.http_client.request.assert_called_once_with(
'GET',
f'{self.balance_platform_url}/balancePlatforms/{platform_id}',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=None,
xapikey="YourXapikey"
)
Expand All @@ -82,7 +82,7 @@ def test_creating_payment_instrument(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.balance_platform_url}/paymentInstruments',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand Down Expand Up @@ -113,7 +113,7 @@ def test_creating_transfer_limit(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.balance_platform_url}/balancePlatforms/{balance_platform_id}/transferLimits',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand Down Expand Up @@ -147,7 +147,7 @@ def test_creating_webhook(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.balance_platform_url}/balancePlatforms/{balance_platform_id}/webhooks/{webhook_id}/settings',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand All @@ -164,7 +164,7 @@ def test_creating_payment_instrument_group(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.balance_platform_url}/paymentInstrumentGroups',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand All @@ -179,7 +179,7 @@ def test_get_transaction_rule(self):
'GET',
f'{self.balance_platform_url}/'
f'transactionRules/{transactionRuleId}',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=None,
xapikey="YourXapikey"
)
Expand All @@ -198,7 +198,7 @@ def test_update_network_token(self):
self.adyen.client.http_client.request.assert_called_once_with(
'PATCH',
f'{self.balance_platform_url}/networkTokens/TK123ABC',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
5 changes: 4 additions & 1 deletion test/BaseTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@ def create_client_from_file(self, status, request, filename=None):
st = ""
strjson = ""

self.ady.client.http_client = httpclient.HTTPClient
# Ensure the actual http_client instance is initialized
if not self.ady.client.http_init:
self.ady.client._init_http_client()

self.ady.client.http_init = True
self.ady.client.http_client.request = mock.MagicMock(
return_value=[strjson, request, status, data])
Expand Down
2 changes: 1 addition & 1 deletion test/BinLookupTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def test_get_cost_estimate_success(self):
'POST',
'https://pal-test.adyen.com/pal/servlet/'
f'BinLookup/{self.binLookup_version}/getCostEstimate',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json={
'merchantAccount': 'YourMerchantAccount',
'amount': '1000',
Expand Down
20 changes: 10 additions & 10 deletions test/CheckoutTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def test_payments_error_mocked(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.baseUrl}/payments',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json={
'returnUrl': 'https://your-company.com/...',
'reference': '54431',
Expand Down Expand Up @@ -134,7 +134,7 @@ def test_payments_details_success_mocked(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.baseUrl}/payments/details',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json={
'paymentData': 'Hee57361f99....',
'details': {'MD': 'sdfsdfsdf...', 'PaRes': 'sdkfhskdjfsdf...'}
Expand Down Expand Up @@ -323,7 +323,7 @@ def test_payments_capture_success_mocked(self):
f'{self.baseUrl}/payments/{psp_reference}/captures',
json=request,
xapikey='YourXapikey',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
)
self.assertEqual(psp_reference, result.message["paymentPspReference"])
self.assertIsNotNone(result.message["pspReference"])
Expand Down Expand Up @@ -365,7 +365,7 @@ def test_orders_success(self):
f'{self.baseUrl}/orders',
json=request,
xapikey='YourXapikey',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},

)
self.assertEqual("8515930288670953", result.message['pspReference'])
Expand All @@ -387,7 +387,7 @@ def test_orders_cancel_success(self):
f'{self.baseUrl}/orders/cancel',
json=request,
xapikey='YourXapikey',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
)
self.assertEqual("8515931182066678", result.message['pspReference'])
self.assertEqual("Received", result.message['resultCode'])
Expand All @@ -406,7 +406,7 @@ def test_paymentmethods_balance_success(self):
f'{self.baseUrl}/paymentMethods/balance',
json=request,
xapikey='YourXapikey',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
)
self.assertEqual("851611111111713K", result.message['pspReference'])
self.assertEqual("Success", result.message['resultCode'])
Expand Down Expand Up @@ -442,7 +442,7 @@ def test_sessions_error(self):
f'{self.baseUrl}/sessions',
json={'merchantAccount': 'YourMerchantAccount'},
xapikey='YourXapikey',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
)
self.assertEqual(422, result.message['status'])
self.assertEqual("130", result.message['errorCode'])
Expand Down Expand Up @@ -487,7 +487,7 @@ def test_payment_link(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.baseUrl}/paymentLinks',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
xapikey='YourXapikey',
json=request
)
Expand All @@ -504,7 +504,7 @@ def test_get_payment_link(self):
self.adyen.client.http_client.request.assert_called_once_with(
'GET',
f'{self.baseUrl}/paymentLinks/{id}',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
xapikey="YourXapikey",
json=None
)
Expand All @@ -523,7 +523,7 @@ def test_update_payment_link(self):
self.adyen.client.http_client.request.assert_called_once_with(
'PATCH',
f'{self.baseUrl}/paymentLinks/{id}',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
xapikey="YourXapikey",
json=request
)
Expand Down
2 changes: 1 addition & 1 deletion test/DataProtectionTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def test_data_erasure(self):
'POST',
f'{self.data_protection_url}'
'/requestSubjectErasure',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
xapikey="YourXapikey",
json=request
)
Expand Down
12 changes: 6 additions & 6 deletions test/DisputesTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def test_accept_dispute(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.disputes_url}/acceptDispute',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand All @@ -49,7 +49,7 @@ def test_defend_dispute(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.disputes_url}/defendDispute',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand All @@ -68,7 +68,7 @@ def test_delete_defense_dispute_document(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.disputes_url}/deleteDisputeDefenseDocument',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand All @@ -86,7 +86,7 @@ def test_download_dispute_defense_document(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.disputes_url}/deleteDisputeDefenseDocument',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand All @@ -104,7 +104,7 @@ def test_retrieve_applicable_defense_reasons(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.disputes_url}/retrieveApplicableDefenseReasons',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Expand All @@ -129,7 +129,7 @@ def test_supply_defense_document(self):
self.adyen.client.http_client.request.assert_called_once_with(
'POST',
f'{self.disputes_url}/supplyDefenseDocument',
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION},
headers={'adyen-library-name': 'adyen-python-api-library', 'adyen-library-version': settings.LIB_VERSION, 'User-Agent': 'adyen-python-api-library/' + settings.LIB_VERSION},
json=request,
xapikey="YourXapikey"
)
Loading