diff --git a/Adyen/services/checkout.py b/Adyen/services/checkout.py deleted file mode 100644 index e2ee0a2b..00000000 --- a/Adyen/services/checkout.py +++ /dev/null @@ -1,158 +0,0 @@ -from .base import AdyenServiceBase - - -class AdyenCheckoutApi(AdyenServiceBase): - """This represents the Adyen Checkout API . - - API calls currently implemented: - paymentMethods - payments - payments/details - originKeys - - Modifications: - capture - refunds - cancels - reversals - - - Please refer to the checkout documentation for specifics around the API. - https://docs.adyen.com/online-payments - - The AdyenPayment class, is accessible as adyen.payment.method(args) - - Args: - client (AdyenAPIClient, optional): An API client for the service to - use. If not provided, a new API client will be created. - """ - - def __init__(self, client=None): - super(AdyenCheckoutApi, self).__init__(client=client) - self.service = "checkout" - - def payment_methods(self, request, **kwargs): - endpoint = "paymentMethods" - if 'merchantAccount' in request: - if request['merchantAccount'] == '': - raise ValueError( - 'merchantAccount must contain the merchant account' - ' when retrieving payment methods.') - method = "POST" - - return self.client.call_adyen_api(request, self.service, method, endpoint, **kwargs) - - def payments(self, request, idempotency_key=None, **kwargs): - endpoint = "payments" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, - **kwargs) - - def payments_details(self, request=None, idempotency_key=None, **kwargs): - endpoint = "payments/details" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, - **kwargs) - - def payment_session(self, request=None, **kwargs): - endpoint = "paymentSession" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, **kwargs) - - def payment_result(self, request=None, **kwargs): - endpoint = "payments/result" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, **kwargs) - - def payments_captures(self, request, idempotency_key=None, path_param=None, **kwargs): - if path_param == "": - raise ValueError( - 'must contain a pspReference in the path_param, path_param cannot be empty' - ) - endpoint = f"payments/{path_param}/captures" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) - - def payments_cancels_without_reference(self, request, idempotency_key=None, **kwargs): - endpoint = "cancels" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) - - def payments_cancels_with_reference(self, request, idempotency_key=None, path_param=None, **kwargs): - if path_param == "": - raise ValueError( - 'must contain a pspReference in the path_param, path_param cannot be empty' - ) - endpoint = f"payments/{path_param}/cancels" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) - - def payments_reversals(self, request, idempotency_key=None, path_param=None, **kwargs): - if path_param == "": - raise ValueError( - 'must contain a pspReference in the path_param, path_param cannot be empty' - ) - endpoint = f"payments/{path_param}/reversals" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) - - def payments_refunds(self, request, idempotency_key=None, path_param=None, **kwargs): - if path_param == "": - raise ValueError( - 'must contain a pspReference in the path_param, path_param cannot be empty' - ) - endpoint = f"payments/{path_param}/refunds" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) - - def origin_keys(self, request=None, **kwargs): - endpoint = "originKeys" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, **kwargs) - - def sessions(self, request=None, **kwargs): - endpoint = "sessions" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, **kwargs) - - # Orders endpoints - - # /paymentMethods/balance - def payment_methods_balance(self, request, **kwargs): - endpoint = "paymentMethods/balance" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, **kwargs) - - # /orders - def orders(self, request, **kwargs): - endpoint = "orders" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, **kwargs) - - # /orders/cancel - def orders_cancel(self, request, **kwargs): - endpoint = "orders/cancel" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, **kwargs) - - # Apple Pay session validation - def applepay_session(self, request, **kwargs): - endpoint = "applePay/sessions" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, **kwargs) - - # Payment links endpoints - def payment_links(self, request, idempotency_key=None, **kwargs): - endpoint = "paymentLinks" - method = "POST" - return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) - - def get_payment_link(self, path_param=None, idempotency_key=None, **kwargs): - endpoint = f"paymentLinks/{path_param}" - method = "GET" - return self.client.call_adyen_api(None, self.service, method, endpoint, idempotency_key, **kwargs) - - def update_payment_link(self, request, path_param=None, idempotency_key=None, **kwargs): - endpoint = f"paymentLinks/{path_param}" - method = "PATCH" - return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) diff --git a/Adyen/services/checkout/__init__.py b/Adyen/services/checkout/__init__.py new file mode 100644 index 00000000..49c8fbb2 --- /dev/null +++ b/Adyen/services/checkout/__init__.py @@ -0,0 +1,34 @@ +""" + Adyen Checkout API + + Adyen Checkout API provides a simple and flexible way to initiate and authorise online payments. You can use the same integration for payments made with cards (including 3D Secure), mobile wallets, and local payment methods (for example, iDEAL and Sofort). This API reference provides information on available endpoints and how to interact with them. To learn more about the API, visit [online payments documentation](https://docs.adyen.com/online-payments). ## Authentication Each request to Checkout API must be signed with an API key. For this, [get your API key](https://docs.adyen.com/development-resources/api-credentials#generate-api-key) from your Customer Area, and set this key to the `X-API-Key` header value, for example: ``` curl -H \"Content-Type: application/json\" \\ -H \"X-API-Key: YOUR_API_KEY\" \\ ... ``` ## Versioning Checkout API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number. For example: ``` https://checkout-test.adyen.com/v69/payments ``` ## Going live To access the live endpoints, you need an API key from your live Customer Area. The live endpoint URLs contain a prefix which is unique to your company account, for example: ``` https://{PREFIX}-checkout-live.adyenpayments.com/checkout/v69/payments ``` Get your `{PREFIX}` from your live Customer Area under **Developers** > **API URLs** > **Prefix**. When preparing to do live transactions with Checkout API, follow the [go-live checklist](https://docs.adyen.com/online-payments/go-live-checklist) to make sure you've got all the required configuration in place. ## Release notes Have a look at the [release notes](https://docs.adyen.com/online-payments/release-notes?integration_type=api&version=69) to find out what changed in this version! # noqa: E501 + + The version of the OpenAPI document: 69 + Contact: developer-experience@adyen.com + Generated by: https://openapi-generator.tech +""" + +from ..base import AdyenServiceBase +from .classic_checkout_sdk_api import ClassicCheckoutSDKApi +from .modifications_api import ModificationsApi +from .orders_api import OrdersApi +from .payment_links_api import PaymentLinksApi +from .payments_api import PaymentsApi +from .utility_api import UtilityApi + + +class AdyenCheckoutApi(AdyenServiceBase): + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, client=None): + super(AdyenCheckoutApi, self).__init__(client=client) + self.classic_checkout_sdk_api = ClassicCheckoutSDKApi(client=client) + self.modifications_api = ModificationsApi(client=client) + self.orders_api = OrdersApi(client=client) + self.payment_links_api = PaymentLinksApi(client=client) + self.payments_api = PaymentsApi(client=client) + self.utility_api = UtilityApi(client=client) diff --git a/Adyen/services/checkout/classic_checkout_sdk_api.py b/Adyen/services/checkout/classic_checkout_sdk_api.py new file mode 100644 index 00000000..730edc22 --- /dev/null +++ b/Adyen/services/checkout/classic_checkout_sdk_api.py @@ -0,0 +1,32 @@ +from ..base import AdyenServiceBase + + +class ClassicCheckoutSDKApi(AdyenServiceBase): + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, client=None): + super(ClassicCheckoutSDKApi, self).__init__(client=client) + self.service = "checkout" + + def payment_session(self, request, idempotency_key=None, **kwargs): + """ + Create a payment session + """ + endpoint = f"/paymentSession" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def verify_payment_result(self, request, idempotency_key=None, **kwargs): + """ + Verify a payment result + """ + endpoint = f"/payments/result" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + diff --git a/Adyen/services/checkout/modifications_api.py b/Adyen/services/checkout/modifications_api.py new file mode 100644 index 00000000..2953a860 --- /dev/null +++ b/Adyen/services/checkout/modifications_api.py @@ -0,0 +1,68 @@ +from ..base import AdyenServiceBase + + +class ModificationsApi(AdyenServiceBase): + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, client=None): + super(ModificationsApi, self).__init__(client=client) + self.service = "checkout" + + def cancel_authorised_payment(self, request, idempotency_key=None, **kwargs): + """ + Cancel an authorised payment + """ + endpoint = f"/cancels" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def update_authorised_amount(self, request, paymentPspReference, idempotency_key=None, **kwargs): + """ + Update an authorised amount + """ + endpoint = f"/payments/{paymentPspReference}/amountUpdates" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def cancel_authorised_payment_by_psp_reference(self, request, paymentPspReference, idempotency_key=None, **kwargs): + """ + Cancel an authorised payment + """ + endpoint = f"/payments/{paymentPspReference}/cancels" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def capture_authorised_payment(self, request, paymentPspReference, idempotency_key=None, **kwargs): + """ + Capture an authorised payment + """ + endpoint = f"/payments/{paymentPspReference}/captures" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def refund_captured_payment(self, request, paymentPspReference, idempotency_key=None, **kwargs): + """ + Refund a captured payment + """ + endpoint = f"/payments/{paymentPspReference}/refunds" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def refund_or_cancel_payment(self, request, paymentPspReference, idempotency_key=None, **kwargs): + """ + Refund or cancel a payment + """ + endpoint = f"/payments/{paymentPspReference}/reversals" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + diff --git a/Adyen/services/checkout/orders_api.py b/Adyen/services/checkout/orders_api.py new file mode 100644 index 00000000..84d3e1f8 --- /dev/null +++ b/Adyen/services/checkout/orders_api.py @@ -0,0 +1,41 @@ +from ..base import AdyenServiceBase + + +class OrdersApi(AdyenServiceBase): + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, client=None): + super(OrdersApi, self).__init__(client=client) + self.service = "checkout" + + def create_order(self, request, idempotency_key=None, **kwargs): + """ + Create an order + """ + endpoint = f"/orders" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def cancel_order(self, request, idempotency_key=None, **kwargs): + """ + Cancel an order + """ + endpoint = f"/orders/cancel" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def get_balance_of_gift_card(self, request, idempotency_key=None, **kwargs): + """ + Get the balance of a gift card + """ + endpoint = f"/paymentMethods/balance" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + diff --git a/Adyen/services/checkout/payment_links_api.py b/Adyen/services/checkout/payment_links_api.py new file mode 100644 index 00000000..b749ab44 --- /dev/null +++ b/Adyen/services/checkout/payment_links_api.py @@ -0,0 +1,41 @@ +from ..base import AdyenServiceBase + + +class PaymentLinksApi(AdyenServiceBase): + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, client=None): + super(PaymentLinksApi, self).__init__(client=client) + self.service = "checkout" + + def get_payment_link(self, linkId, idempotency_key=None, **kwargs): + """ + Get a payment link + """ + endpoint = f"/paymentLinks/{linkId}" + endpoint = endpoint.replace('/', '', 1) + method = "GET" + return self.client.call_adyen_api(None, self.service, method, endpoint, idempotency_key, **kwargs) + + def update_payment_link(self, request, linkId, idempotency_key=None, **kwargs): + """ + Update the status of a payment link + """ + endpoint = f"/paymentLinks/{linkId}" + endpoint = endpoint.replace('/', '', 1) + method = "PATCH" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def create_payment_link(self, request, idempotency_key=None, **kwargs): + """ + Create a payment link + """ + endpoint = f"/paymentLinks" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + diff --git a/Adyen/services/checkout/payments_api.py b/Adyen/services/checkout/payments_api.py new file mode 100644 index 00000000..d4cd7898 --- /dev/null +++ b/Adyen/services/checkout/payments_api.py @@ -0,0 +1,68 @@ +from ..base import AdyenServiceBase + + +class PaymentsApi(AdyenServiceBase): + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, client=None): + super(PaymentsApi, self).__init__(client=client) + self.service = "checkout" + + def list_brands_on_card(self, request, idempotency_key=None, **kwargs): + """ + Get the list of brands on the card + """ + endpoint = f"/cardDetails" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def donations(self, request, idempotency_key=None, **kwargs): + """ + Start a transaction for donations + """ + endpoint = f"/donations" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def payment_methods(self, request, idempotency_key=None, **kwargs): + """ + Get a list of available payment methods + """ + endpoint = f"/paymentMethods" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def payments(self, request, idempotency_key=None, **kwargs): + """ + Start a transaction + """ + endpoint = f"/payments" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def payments_details(self, request, idempotency_key=None, **kwargs): + """ + Submit details for a payment + """ + endpoint = f"/payments/details" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def sessions(self, request, idempotency_key=None, **kwargs): + """ + Create a payment session + """ + endpoint = f"/sessions" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + diff --git a/Adyen/services/checkout/utility_api.py b/Adyen/services/checkout/utility_api.py new file mode 100644 index 00000000..c8e7752b --- /dev/null +++ b/Adyen/services/checkout/utility_api.py @@ -0,0 +1,32 @@ +from ..base import AdyenServiceBase + + +class UtilityApi(AdyenServiceBase): + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, client=None): + super(UtilityApi, self).__init__(client=client) + self.service = "checkout" + + def get_apple_pay_session(self, request, idempotency_key=None, **kwargs): + """ + Get an Apple Pay session + """ + endpoint = f"/applePay/sessions" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + + def create_originkey_values_for_domains(self, request, idempotency_key=None, **kwargs): + """ + Create originKey values for domains + """ + endpoint = f"/originKeys" + endpoint = endpoint.replace('/', '', 1) + method = "POST" + return self.client.call_adyen_api(request, self.service, method, endpoint, idempotency_key, **kwargs) + diff --git a/templates/api.mustache b/templates/api.mustache index 050db927..ffab7bc7 100644 --- a/templates/api.mustache +++ b/templates/api.mustache @@ -1,4 +1,3 @@ -{{>partial_header}} from ..base import AdyenServiceBase diff --git a/test/CheckoutTest.py b/test/CheckoutTest.py index cce3b609..05fbcd51 100644 --- a/test/CheckoutTest.py +++ b/test/CheckoutTest.py @@ -25,7 +25,7 @@ def test_payment_methods_success_mocked(self): "checkout/" "paymentmethods" "-success.json") - result = self.adyen.checkout.payment_methods(request) + result = self.adyen.checkout.payments_api.payment_methods(request) self.assertEqual("AliPay", result.message['paymentMethods'][0]['name']) self.assertEqual("Credit Card", result.message['paymentMethods'][2]['name']) @@ -40,7 +40,7 @@ def test_payment_methods_error_mocked(self): "paymentmethods-" "error-forbidden" "-403.json") - result = self.adyen.checkout.payment_methods(request) + result = self.adyen.checkout.payments_api.payment_methods(request) self.assertEqual(403, result.message['status']) self.assertEqual("901", result.message['errorCode']) self.assertEqual("Invalid Merchant Account", result.message['message']) @@ -64,7 +64,7 @@ def test_payments_success_mocked(self): "payments" "-success" ".json") - result = self.adyen.checkout.payments(request) + result = self.adyen.checkout.payments_api.payments(request) self.assertEqual("8535296650153317", result.message['pspReference']) self.assertEqual("Authorised", result.message['resultCode']) self.assertEqual("8/2018", @@ -91,7 +91,7 @@ def test_payments_error_mocked(self): "-invalid" "-data-422" ".json") - result = self.adyen.checkout.payments(request) + result = self.adyen.checkout.payments_api.payments(request) self.adyen.client.http_client.request.assert_called_once_with( 'POST', @@ -135,7 +135,7 @@ def test_payments_details_success_mocked(self): "paymentsdetails" "-success.json") - result = self.adyen.checkout.payments_details(request) + result = self.adyen.checkout.payments_api.payments_details(request) self.adyen.client.http_client.request.assert_called_once_with( 'POST', @@ -165,7 +165,7 @@ def test_payments_details_error_mocked(self): "paymentsdetails" "-error-invalid-" "data-422.json") - result = self.adyen.checkout.payments_details(request) + result = self.adyen.checkout.payments_api.payments_details(request) self.assertEqual(422, result.message['status']) self.assertEqual("101", result.message['errorCode']) self.assertEqual("Invalid card number", result.message['message']) @@ -187,7 +187,7 @@ def test_payments_session_success_mocked(self): "checkout/" "paymentsession" "-success.json") - result = self.adyen.checkout.payment_session(request) + result = self.adyen.checkout.classic_checkout_sdk_api.payment_session(request) self.assertIsNotNone(result.message['paymentSession']) def test_payments_session_error_mocked(self): @@ -207,7 +207,7 @@ def test_payments_session_error_mocked(self): "paymentsession" "-error-invalid-" "data-422.json") - result = self.adyen.checkout.payment_session(request) + result = self.adyen.checkout.classic_checkout_sdk_api.payment_session(request) self.assertEqual(422, result.message['status']) self.assertEqual("14_012", result.message['errorCode']) self.assertEqual("The provided SDK token could not be parsed.", @@ -221,7 +221,7 @@ def test_payments_result_success_mocked(self): "checkout/" "paymentsresult" "-success.json") - result = self.adyen.checkout.payment_result(request) + result = self.adyen.checkout.classic_checkout_sdk_api.verify_payment_result(request) self.assertEqual("8535253563623704", result.message['pspReference']) self.assertEqual("Authorised", result.message['resultCode']) @@ -234,7 +234,7 @@ def test_payments_result_error_mocked(self): "-error-invalid-" "data-payload-" "422.json") - result = self.adyen.checkout.payment_result(request) + result = self.adyen.checkout.classic_checkout_sdk_api.verify_payment_result(request) self.assertEqual(422, result.message['status']) self.assertEqual("14_018", result.message['errorCode']) self.assertEqual("Invalid payload provided", result.message['message']) @@ -251,7 +251,7 @@ def test_payments_cancels_without_reference(self): "checkout/" "paymentscancel-" "withoutreference-succes.json") - results = self.adyen.checkout.payments_cancels_without_reference(request=requests) + results = self.adyen.checkout.modifications_api.cancel_authorised_payment(requests) self.assertIsNotNone(results.message['paymentReference']) self.assertEqual("8412534564722331", results.message['pspReference']) self.assertEqual("received", results.message['status']) @@ -270,7 +270,7 @@ def test_payments_cancels_without_reference_error_mocked(self): "data-payload-" "422.json") - result = self.adyen.checkout.payments_cancels_without_reference(requests) + result = self.adyen.checkout.modifications_api.cancel_authorised_payment(requests) self.assertEqual(422, result.message['status']) self.assertEqual("14_018", result.message['errorCode']) self.assertEqual("Invalid payload provided", result.message['message']) @@ -285,19 +285,19 @@ def test_payments_cancels_success_mocked(self): "checkout/" "paymentscancels" "-success.json") - result = self.adyen.checkout.payments_cancels_with_reference(request=requests, path_param=reference_id) + result = self.adyen.checkout.modifications_api.refund_or_cancel_payment(requests, reference_id) self.assertEqual(reference_id, result.message["paymentPspReference"]) self.assertEqual("received", result.message['status']) def test_payments_cancels_error_mocked(self): - requests = {"reference": "Your wro order number"} + request = {"reference": "Your wro order number"} psp_reference = "8836183819713023" - self.adyen.client = self.test.create_client_from_file(200, requests, + self.adyen.client = self.test.create_client_from_file(200, request, "test/mocks/" "checkout/" "paymentsresult-error-invalid-" "data-payload-422.json") - result = self.adyen.checkout.payments_cancels_with_reference(request=requests, path_param=psp_reference) + result = self.adyen.checkout.modifications_api.refund_or_cancel_payment(request, psp_reference) self.assertEqual(422, result.message['status']) self.assertEqual("14_018", result.message['errorCode']) self.assertEqual("Invalid payload provided", result.message['message']) @@ -316,7 +316,7 @@ def test_payments_refunds_success_mocked(self): "paymentscancel-" "withoutreference-succes.json") - result = self.adyen.checkout.payments_refunds(request=requests, path_param=psp_reference) + result = self.adyen.checkout.modifications_api.refund_captured_payment(requests,psp_reference) self.assertEqual(psp_reference, result.message["paymentReference"]) self.assertIsNotNone(result.message["pspReference"]) self.assertEqual("received", result.message['status']) @@ -334,29 +334,12 @@ def test_payments_refunds_error_mocked(self): "paymentsresult-error-invalid-" "data-payload-422.json") - result = self.adyen.checkout.payments_refunds(request=requests, path_param=reference_id) + result = self.adyen.checkout.modifications_api.refund_captured_payment(requests, reference_id) self.assertEqual(422, result.message['status']) self.assertEqual("14_018", result.message['errorCode']) self.assertEqual("Invalid payload provided", result.message['message']) self.assertEqual("validation", result.message['errorType']) - def test_payments_refunds_raises_value_error(self): - requests = { - "paymentReference": "Payment123", - "merchantAccount": "YOUR_MERCHANT_ACCOUNT", - "reference": "YourCancelReference", - } - self.adyen.client = self.test.create_client_from_file(200, requests, - "test/mocks/" - "checkout/" - "paymentscancel-" - "withoutreference-succes.json") - with self.assertRaises(ValueError) as exc: - self.adyen.checkout.payments_refunds(request=requests, path_param="") - self.assertEqual(exc.exception.__class__, ValueError) - self.assertEqual(exc.exception.__str__(), 'must contain a pspReference in the path_param, path_param cannot ' - 'be empty') - def test_reversals_success_mocked(self): requests = { "reference": "YourReversalReference", @@ -369,7 +352,7 @@ def test_reversals_success_mocked(self): "paymentsreversals-" "success.json") - result = self.adyen.checkout.payments_reversals(request=requests, path_param=psp_reference) + result = self.adyen.checkout.modifications_api.refund_or_cancel_payment(requests, psp_reference) self.assertEqual(psp_reference, result.message["paymentPspReference"]) self.assertIsNotNone(result.message["pspReference"]) self.assertEqual("received", result.message['status']) @@ -387,7 +370,7 @@ def test_payments_reversals_failure_mocked(self): "paymentsresult-error-invalid-" "data-payload-422.json") - result = self.adyen.checkout.payments_reversals(request=requests, path_param=psp_reference) + result = self.adyen.checkout.modifications_api.refund_or_cancel_payment(requests,psp_reference) self.assertEqual(422, result.message['status']) self.assertEqual("14_018", result.message['errorCode']) self.assertEqual("Invalid payload provided", result.message['message']) @@ -409,7 +392,14 @@ def test_payments_capture_success_mocked(self): "paymentcapture-" "success.json") - result = self.adyen.checkout.payments_captures(request=request, path_param=psp_reference) + result = self.adyen.checkout.modifications_api.capture_authorised_payment(request, psp_reference) + self.adyen.client.http_client.request.assert_called_once_with( + 'POST', + f'https://checkout-test.adyen.com/{self.checkout_version}/payments/{psp_reference}/captures', + json=request, + xapikey='YourXapikey', + headers={} + ) self.assertEqual(psp_reference, result.message["paymentPspReference"]) self.assertIsNotNone(result.message["pspReference"]) self.assertEqual("received", result.message['status']) @@ -431,7 +421,7 @@ def test_payments_capture_error_mocked(self): "paymentsresult-error-invalid-" "data-payload-422.json") - result = self.adyen.checkout.payments_captures(request=request, path_param=psp_reference) + result = self.adyen.checkout.modifications_api.capture_authorised_payment(request, psp_reference) self.assertEqual(422, result.message['status']) self.assertEqual("14_018", result.message['errorCode']) self.assertEqual("Invalid payload provided", result.message['message']) @@ -444,7 +434,14 @@ def test_orders_success(self): "checkout/" "orders" "-success.json") - result = self.adyen.checkout.orders(request) + result = self.adyen.checkout.orders_api.create_order(request) + self.adyen.client.http_client.request.assert_called_once_with( + 'POST', + f'https://checkout-test.adyen.com/{self.checkout_version}/orders', + json=request, + xapikey='YourXapikey', + headers={} + ) self.assertEqual("8515930288670953", result.message['pspReference']) self.assertEqual("Success", result.message['resultCode']) self.assertEqual("order reference", result.message['reference']) @@ -458,7 +455,14 @@ def test_orders_cancel_success(self): "checkout/" "orders-cancel" "-success.json") - result = self.adyen.checkout.orders_cancel(request) + result = self.adyen.checkout.orders_api.cancel_order(request) + self.adyen.client.http_client.request.assert_called_once_with( + 'POST', + f'https://checkout-test.adyen.com/{self.checkout_version}/orders/cancel', + json=request, + xapikey='YourXapikey', + headers={} + ) self.assertEqual("8515931182066678", result.message['pspReference']) self.assertEqual("Received", result.message['resultCode']) @@ -470,7 +474,14 @@ def test_paymentmethods_balance_success(self): "paymentmethods" "-balance" "-success.json") - result = self.adyen.checkout.payment_methods_balance(request) + result = self.adyen.checkout.orders_api.get_balance_of_gift_card(request) + self.adyen.client.http_client.request.assert_called_once_with( + 'POST', + f'https://checkout-test.adyen.com/{self.checkout_version}/paymentMethods/balance', + json=request, + xapikey='YourXapikey', + headers={} + ) self.assertEqual("851611111111713K", result.message['pspReference']) self.assertEqual("Success", result.message['resultCode']) self.assertEqual(100, result.message['balance']['value']) @@ -483,7 +494,8 @@ def test_sessions_success(self): "checkout/" "sessions" "-success.json") - result = self.adyen.checkout.sessions(request) + result = self.adyen.checkout.payments_api.sessions(request) + self.assertEqual("session-test-id", result.message['id']) self.assertEqual("TestReference", result.message['reference']) self.assertEqual("http://test-url.com", result.message['returnUrl']) @@ -498,7 +510,14 @@ def test_sessions_error(self): "-invalid" "-data-422" ".json") - result = self.adyen.checkout.sessions(request) + result = self.adyen.checkout.payments_api.sessions(request) + self.adyen.client.http_client.request.assert_called_once_with( + 'POST', + f'https://checkout-test.adyen.com/{self.checkout_version}/sessions', + json={'merchantAccount': 'YourMerchantAccount', 'applicationInfo': {'adyenLibrary': {'name': 'adyen-python-api-library', 'version': '7.1.1'}}}, + xapikey='YourXapikey', + headers={} + ) self.assertEqual(422, result.message['status']) self.assertEqual("130", result.message['errorCode']) self.assertEqual("validation", result.message['errorType']) @@ -538,7 +557,7 @@ def test_payment_link(self): "paymentlinks" "-success" ".json") - result = self.adyen.checkout.payment_links(request) + result = self.adyen.checkout.payment_links_api.create_payment_link(request) self.adyen.client.http_client.request.assert_called_once_with( 'POST', f'https://checkout-test.adyen.com/{self.checkout_version}/paymentLinks', @@ -555,7 +574,7 @@ def test_get_payment_link(self): "checkout/" "getpaymenlinks" "-succes.json") - result = self.adyen.checkout.get_payment_link(id) + result = self.adyen.checkout.payment_links_api.get_payment_link(id) self.adyen.client.http_client.request.assert_called_once_with( 'GET', f'https://checkout-test.adyen.com/{self.checkout_version}/paymentLinks/{id}', @@ -574,7 +593,7 @@ def test_update_payment_link(self): "test/mocks/checkout" "/updatepaymentlinks" "-success.json") - result = self.adyen.checkout.update_payment_link(request, id) + result = self.adyen.checkout.payment_links_api.update_payment_link(request, id) self.adyen.client.http_client.request.assert_called_once_with( 'PATCH', f'https://checkout-test.adyen.com/{self.checkout_version}/paymentLinks/{id}', diff --git a/test/CheckoutUtilityTest.py b/test/CheckoutUtilityTest.py index 99bb39ce..e546336b 100644 --- a/test/CheckoutUtilityTest.py +++ b/test/CheckoutUtilityTest.py @@ -31,7 +31,7 @@ def test_origin_keys_success_mocked(self): "checkoututility/" "originkeys" "-success.json") - result = self.ady.checkout.origin_keys(request) + result = self.ady.checkout.utility_api.create_originkey_values_for_domains(request) self.assertEqual("pub.v2.7814286629520534.aHR0cHM6Ly93d3cu" "eW91ci1kb21haW4xLmNvbQ.UEwIBmW9-c_uXo5wS" @@ -66,5 +66,5 @@ def test_applePay_session(self): "checkoututility/" "applepay-sessions" "-success.json") - result = self.ady.checkout.applepay_session(request) + result = self.ady.checkout.utility_api.get_apple_pay_session(request) self.assertEqual("BASE_64_ENCODED_DATA", result.message['data']) diff --git a/test/DetermineEndpointTest.py b/test/DetermineEndpointTest.py index 251f7c02..85996305 100644 --- a/test/DetermineEndpointTest.py +++ b/test/DetermineEndpointTest.py @@ -55,7 +55,7 @@ def test_payments_invalid_platform(self): self.client.live_endpoint_prefix = None try: - self.adyen.checkout.payments(request) + self.adyen.checkout.payments_api.sessions(request) except AdyenEndpointInvalidFormat as error: self.assertIsNotNone(error)