onlinepayments-sdk-python3 6.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- onlinepayments_sdk_python3-6.4.0/LICENSE.txt +52 -0
- onlinepayments_sdk_python3-6.4.0/MANIFEST.in +2 -0
- onlinepayments_sdk_python3-6.4.0/PKG-INFO +154 -0
- onlinepayments_sdk_python3-6.4.0/README.rst +111 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/__init__.py +0 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/api_exception.py +60 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/api_resource.py +57 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authentication/__init__.py +0 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authentication/authenticator.py +24 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authentication/authorization_type.py +10 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authentication/v1hmac_authenticator.py +122 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authorization_exception.py +19 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/call_context.py +62 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/client.py +107 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/__init__.py +0 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/communication_exception.py +8 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/connection.py +84 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/default_connection.py +305 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/i_metadata_provider.py +19 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/metadata_provider.py +132 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/multipart_form_data_object.py +51 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/multipart_form_data_request.py +16 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/not_found_exception.py +10 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/param_request.py +17 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/pooled_connection.py +29 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/request_header.py +60 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/request_param.py +30 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/response_exception.py +58 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/response_header.py +50 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communicator.py +457 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communicator_configuration.py +264 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/declined_payment_exception.py +46 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/declined_payout_exception.py +46 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/declined_refund_exception.py +46 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/declined_transaction_exception.py +22 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/account_on_file.py +102 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/account_on_file_attribute.py +97 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/account_on_file_display_hints.py +64 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/acquirer_information.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/acquirer_selection_information.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/additional_order_input.py +107 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/address.py +145 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/address_personal.py +185 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/airline_data.py +519 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/airline_flight_leg.py +386 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/airline_passenger.py +129 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/amount_breakdown.py +63 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/amount_of_money.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/api_error.py +177 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/apple_pay_line_item.py +145 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/apple_pay_recurring_payment_request.py +116 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/bank_account_iban.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/browser_data.py +130 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/calculate_surcharge_request.py +63 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/calculate_surcharge_response.py +44 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/cancel_payment_request.py +81 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/cancel_payment_response.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture.py +97 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture_output.py +272 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture_payment_request.py +99 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture_response.py +99 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture_status_output.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/captures_response.py +46 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card.py +91 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_bin_details.py +384 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_essentials.py +438 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_fraud_results.py +112 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_info.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payment_method_specific_input.py +586 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payment_method_specific_input_base.py +422 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payment_method_specific_input_for_hosted_checkout.py +82 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payment_method_specific_output.py +423 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payout_method_specific_input.py +99 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_recurrence_details.py +40 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_source.py +95 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_without_cvv.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/click_to_pay.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/company_information.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/complete_payment_card_payment_method_specific_input.py +39 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/complete_payment_request.py +61 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/complete_payment_response.py +85 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/contact_details.py +109 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_hosted_checkout_request.py +195 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_hosted_checkout_response.py +132 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_hosted_tokenization_request.py +133 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_hosted_tokenization_response.py +127 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_mandate_request.py +186 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_mandate_response.py +63 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_mandate_with_return_url.py +186 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_payment_link_request.py +326 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_payment_request.py +227 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_payment_response.py +85 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_payout_request.py +176 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_token_request.py +77 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/created_payment_output.py +57 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/created_token_response.py +120 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/credit_card_specific_input_hosted_tokenization.py +64 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/credit_card_validation_rules_hosted_tokenization.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_input.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_request.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_response.py +81 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_result.py +61 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_specific_input.py +40 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer.py +234 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_account.py +204 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_account_authentication.py +81 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_bank_account.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_device.py +155 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_device_output.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_output.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_payment_activity.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_token.py +83 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/data_object.py +34 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/dcc_card_source.py +93 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/dcc_proposal.py +118 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/decrypted_payment_data.py +120 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/directory_entry.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/discount.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/empty_validator.py +16 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/error_response.py +64 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/external_cardholder_authentication_data.py +216 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/external_token_linked.py +75 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/feedbacks.py +64 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/fixed_list_validator.py +42 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/fraud_fields.py +84 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/fraud_results.py +43 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/g_pay_three_d_secure.py +138 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_hosted_checkout_response.py +63 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_hosted_tokenization_response.py +61 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_iin_details_request.py +57 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_iin_details_response.py +450 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_mandate_response.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_payment_product_groups_response.py +44 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_payment_products_response.py +44 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_privacy_policy_response.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/gift_card_purchase.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/hosted_checkout_specific_input.py +228 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/hosted_checkout_specific_output.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/iin_detail.py +423 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/label_template_element.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/length_validator.py +51 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/line_item.py +107 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/line_item_invoice_data.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/loan_recipient.py +109 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/lodging_data.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_address.py +109 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_address_response.py +109 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_contact_details.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_customer.py +125 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_customer_response.py +125 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_merchant_action.py +61 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_personal_information.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_personal_information_response.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_personal_name.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_personal_name_response.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_redirect_data.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_response.py +150 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/merchant_action.py +132 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_data.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_method_hosted_checkout_specific_input.py +105 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_method_specific_input.py +202 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_method_specific_output.py +139 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_product302_specific_input.py +103 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_product320_specific_input.py +103 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_three_d_secure_challenge_parameters.py +91 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/multiple_payment_information.py +57 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/network_token_data.py +127 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/network_token_essentials.py +134 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/network_token_linked.py +80 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/omnichannel_payout_specific_input.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/omnichannel_refund_specific_input.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/operation_output.py +161 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/operation_payment_references.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order.py +213 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order_line_details.py +181 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order_references.py +120 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order_status_output.py +119 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order_type_information.py +64 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/other_details.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_account_on_file.py +57 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_context.py +77 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_creation_output.py +94 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_details_response.py +148 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_error_response.py +84 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_event.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_order_input.py +84 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_order_output.py +81 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_response.py +198 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_specific_input.py +74 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_links_response.py +44 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_output.py +294 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product.py +296 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product130_specific_input.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product130_specific_three_d_secure.py +91 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3012.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3012_specific_input.py +100 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3013_specific_input.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product302_specific_data.py +44 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3203_specific_output.py +62 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3204_specific_output.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3208_specific_input.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3208_specific_output.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3209_specific_input.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3209_specific_output.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product320_specific_data.py +62 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product350.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5001.py +58 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5001_specific_output.py +112 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5100_specific_input.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5402_specific_output.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5404.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5407.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5500_specific_output.py +91 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product771_specific_output.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product840_customer_account.py +170 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product840_specific_output.py +128 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_display_hints.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field.py +95 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_data_restrictions.py +60 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_display_element.py +97 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_display_hints.py +218 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_form_element.py +72 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_tooltip.py +57 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_validators.py +195 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_filter.py +67 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_filter_hosted_tokenization.py +42 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_filters_hosted_checkout.py +62 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_filters_hosted_tokenization.py +62 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_group.py +103 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_networks_response.py +42 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_references.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_response.py +121 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_status_output.py +152 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_error_response.py +80 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_output.py +63 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_response.py +93 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_result.py +93 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_status_output.py +76 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/pending_authentication.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/personal_information.py +77 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/personal_information_token.py +39 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/personal_name.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/personal_name_token.py +51 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/product302_recurring.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/product320_recurring.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/product_directory.py +46 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/protection_eligibility.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/range_validator.py +51 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/rate_details.py +109 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/reattempt_instructions.py +82 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/reattempt_instructions_conditions.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_data.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_method_specific_input.py +443 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_method_specific_output.py +267 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product3203_specific_input.py +40 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product3204_specific_input.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product3302_specific_input.py +73 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product3306_specific_input.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5001_specific_input.py +62 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5300_specific_input.py +145 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5402_specific_input.py +40 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5403_specific_input.py +40 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5406_specific_input.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5408_specific_input.py +60 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5410_specific_input.py +38 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5412_specific_input.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product809_specific_input.py +40 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product840_specific_input.py +100 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirection_data.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_card_method_specific_output.py +71 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_e_wallet_method_specific_output.py +71 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_error_response.py +82 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_mobile_method_specific_output.py +69 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_output.py +217 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_payment_product840_customer_account.py +69 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_payment_product840_specific_output.py +39 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_redirect_method_specific_output.py +51 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_request.py +143 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_response.py +97 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refunds_response.py +46 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/regular_expression_validator.py +35 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/revoke_mandate_request.py +48 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/send_test_request.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input_base.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_output.py +81 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input_base.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/session_request.py +44 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/session_response.py +114 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/shipping.py +206 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/shipping_method.py +91 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/shopping_cart.py +155 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/shopping_cart_extension.py +77 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/show_form_data.py +151 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/show_instructions_data.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/subsequent_card_payment_method_specific_input.py +153 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/subsequent_payment_product5001_specific_input.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/subsequent_payment_request.py +85 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/subsequent_payment_response.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge.py +141 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_calculation_card.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_for_payment_link.py +40 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_rate.py +91 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_specific_input.py +62 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_specific_output.py +84 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/test_connection.py +35 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/three_d_secure.py +281 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/three_d_secure_base.py +219 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/three_d_secure_data.py +78 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/three_d_secure_results.py +266 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_card.py +57 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_card_data.py +83 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_card_specific_input.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_data.py +63 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_e_wallet.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_response.py +159 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/transaction.py +41 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/uploadable_file.py +51 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/validate_credentials_request.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/validate_credentials_response.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/value_mapping_element.py +62 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/web_hooks_event.py +194 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/exception_factory.py +75 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/factory.py +127 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/i_client.py +78 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/i_communicator.py +180 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/idempotence_exception.py +36 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/json/__init__.py +0 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/json/default_marshaller.py +60 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/json/marshaller.py +32 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/json/marshaller_syntax_exception.py +13 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/__init__.py +0 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/body_obfuscator.py +113 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/communicator_logger.py +35 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/header_obfuscator.py +49 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/log_message.py +94 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/logging_capable.py +26 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/obfuscation_capable.py +24 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/obfuscation_rule.py +50 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/python_communicator_logger.py +54 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/request_log_message.py +28 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/response_log_message.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/sys_out_communicator_logger.py +36 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/captures/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/captures/captures_client.py +61 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/captures/i_captures_client.py +34 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/complete/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/complete/complete_client.py +65 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/complete/i_complete_client.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedcheckout/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedcheckout/hosted_checkout_client.py +95 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedcheckout/i_hosted_checkout_client.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedtokenization/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedtokenization/hosted_tokenization_client.py +95 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedtokenization/i_hosted_tokenization_client.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/i_merchant_client.py +166 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/mandates/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/mandates/i_mandates_client.py +114 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/mandates/mandates_client.py +202 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/merchant_client.py +192 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/paymentlinks/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/paymentlinks/get_payment_links_in_bulk_params.py +36 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/paymentlinks/i_payment_links_client.py +95 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/paymentlinks/payment_links_client.py +162 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payments/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payments/i_payments_client.py +143 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payments/payments_client.py +248 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payouts/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payouts/i_payouts_client.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payouts/payouts_client.py +96 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/privacypolicy/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/privacypolicy/get_privacy_policy_params.py +54 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/privacypolicy/i_privacy_policy_client.py +36 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/privacypolicy/privacy_policy_client.py +59 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/get_product_group_params.py +140 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/get_product_groups_params.py +140 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/i_product_groups_client.py +58 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/product_groups_client.py +96 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/get_payment_product_networks_params.py +89 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/get_payment_product_params.py +138 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/get_payment_products_params.py +138 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/get_product_directory_params.py +54 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/i_products_client.py +102 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/products_client.py +170 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/refunds/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/refunds/i_refunds_client.py +34 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/refunds/refunds_client.py +61 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/services/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/services/i_services_client.py +96 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/services/services_client.py +159 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/sessions/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/sessions/i_sessions_client.py +35 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/sessions/sessions_client.py +60 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/subsequent/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/subsequent/i_subsequent_client.py +37 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/subsequent/subsequent_client.py +65 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/tokens/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/tokens/i_tokens_client.py +74 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/tokens/tokens_client.py +129 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/webhooks/__init__.py +4 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/webhooks/i_webhooks_client.py +55 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/webhooks/webhooks_client.py +93 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/platform_exception.py +19 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/proxy_configuration.py +102 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/reference_exception.py +19 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/validation_exception.py +19 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/__init__.py +0 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/api_version_mismatch_exception.py +24 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/in_memory_secret_key_store.py +48 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/secret_key_not_available_exception.py +18 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/secret_key_store.py +15 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/signature_validation_exception.py +17 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/signature_validator.py +56 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/webhooks_helper.py +52 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/PKG-INFO +154 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/SOURCES.txt +427 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/dependency_links.txt +1 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/requires.txt +2 -0
- onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/top_level.txt +1 -0
- onlinepayments_sdk_python3-6.4.0/setup.cfg +7 -0
- onlinepayments_sdk_python3-6.4.0/setup.py +72 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
Copyright (c) 2020 Global Collect Services B.V.
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
|
4
|
+
obtaining a copy of this software and associated documentation
|
|
5
|
+
files (the "Software"), to deal in the Software without
|
|
6
|
+
restriction, including without limitation the rights to use,
|
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the
|
|
9
|
+
Software is furnished to do so, subject to the following
|
|
10
|
+
conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be
|
|
13
|
+
included in all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
*** Notices for Requests - Copyright 2019 Kenneth Reitz
|
|
26
|
+
|
|
27
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
28
|
+
you may not use this file except in compliance with the License.
|
|
29
|
+
You may obtain a copy of the License at
|
|
30
|
+
|
|
31
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
32
|
+
|
|
33
|
+
Unless required by applicable law or agreed to in writing, software
|
|
34
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
35
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
36
|
+
See the License for the specific language governing permissions and
|
|
37
|
+
limitations under the License.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
*** Notices for Toolbelt - Copyright 2014 Ian Cordasco, Cory Benfield
|
|
41
|
+
|
|
42
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
43
|
+
you may not use this file except in compliance with the License.
|
|
44
|
+
You may obtain a copy of the License at
|
|
45
|
+
|
|
46
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
47
|
+
|
|
48
|
+
Unless required by applicable law or agreed to in writing, software
|
|
49
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
50
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
51
|
+
See the License for the specific language governing permissions and
|
|
52
|
+
limitations under the License.
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: onlinepayments-sdk-python3
|
|
3
|
+
Version: 6.4.0
|
|
4
|
+
Summary: SDK to communicate with the Online Payments platform using the Online Payments Server API
|
|
5
|
+
Home-page: https://github.com/wl-online-payments-direct/sdk-python3
|
|
6
|
+
Author: Worldline Direct support team
|
|
7
|
+
Author-email: 82139942+worldline-direct-support-team@users.noreply.github.com
|
|
8
|
+
License: MIT
|
|
9
|
+
Keywords: Online Payments SDK
|
|
10
|
+
Platform: python 3.7
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
13
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Topic :: Office/Business :: Financial
|
|
24
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
25
|
+
Requires-Python: >= 3.7
|
|
26
|
+
Description-Content-Type: text/x-rst
|
|
27
|
+
License-File: LICENSE.txt
|
|
28
|
+
Requires-Dist: requests>=2.25.0
|
|
29
|
+
Requires-Dist: requests-toolbelt>=0.8.0
|
|
30
|
+
Dynamic: author
|
|
31
|
+
Dynamic: author-email
|
|
32
|
+
Dynamic: classifier
|
|
33
|
+
Dynamic: description
|
|
34
|
+
Dynamic: description-content-type
|
|
35
|
+
Dynamic: home-page
|
|
36
|
+
Dynamic: keywords
|
|
37
|
+
Dynamic: license
|
|
38
|
+
Dynamic: license-file
|
|
39
|
+
Dynamic: platform
|
|
40
|
+
Dynamic: requires-dist
|
|
41
|
+
Dynamic: requires-python
|
|
42
|
+
Dynamic: summary
|
|
43
|
+
|
|
44
|
+
Online Payments Python SDK
|
|
45
|
+
==========================
|
|
46
|
+
|
|
47
|
+
Introduction
|
|
48
|
+
------------
|
|
49
|
+
|
|
50
|
+
The Python SDK helps you to communicate with the payment platform server
|
|
51
|
+
API. Its primary features are:
|
|
52
|
+
|
|
53
|
+
- convenient Python library for the API calls and responses
|
|
54
|
+
|
|
55
|
+
- marshals Python request objects to HTTP requests
|
|
56
|
+
- unmarshals HTTP responses to Python response objects or Python exceptions
|
|
57
|
+
|
|
58
|
+
- handling of all the details concerning authentication
|
|
59
|
+
- handling of required metadata
|
|
60
|
+
|
|
61
|
+
Its use is demonstrated by an example for each possible call. The examples execute a call using the provided API key.
|
|
62
|
+
|
|
63
|
+
Structure of this repository
|
|
64
|
+
----------------------------
|
|
65
|
+
|
|
66
|
+
This repository consists out of three main components:
|
|
67
|
+
|
|
68
|
+
#. The source code of the SDK itself: ``/onlinepayments/sdk/``
|
|
69
|
+
#. The source code of the SDK unit tests: ``/tests/unit/``
|
|
70
|
+
#. The source code of the SDK integration tests: ``/tests/integration/``
|
|
71
|
+
|
|
72
|
+
Note that the source code of the unit tests and integration tests can only be found on GitHub.
|
|
73
|
+
|
|
74
|
+
Requirements
|
|
75
|
+
------------
|
|
76
|
+
|
|
77
|
+
Python 3.7 or higher is required. In addition, the following packages are required:
|
|
78
|
+
|
|
79
|
+
- `requests <https://requests.readthedocs.io/>`__ 2.25.0 or higher
|
|
80
|
+
- `requests-toolbelt <https://toolbelt.readthedocs.io/>`__ 0.8.0 or higher
|
|
81
|
+
|
|
82
|
+
These packages will be installed automatically if the SDK is installed manually or using pip following the below instructions.
|
|
83
|
+
|
|
84
|
+
Installation
|
|
85
|
+
------------
|
|
86
|
+
|
|
87
|
+
To install the SDK using pip, execute the following command:
|
|
88
|
+
|
|
89
|
+
.. code:: bash
|
|
90
|
+
|
|
91
|
+
pip install onlinepayments-sdk-python3
|
|
92
|
+
|
|
93
|
+
Alternatively, you can install the SDK from a source distribution file:
|
|
94
|
+
|
|
95
|
+
#. Download the latest version of the Python SDK from GitHub. Choose the
|
|
96
|
+
``onlinepayments-sdk-python3-x.y.z.zip`` file from the
|
|
97
|
+
`releases <https://github.com/wl-online-payments-direct/sdk-python3/releases>`__
|
|
98
|
+
page, where ``x.y.z`` is the version number.
|
|
99
|
+
#. Execute the following command in the folder where the SDK was
|
|
100
|
+
downloaded to:
|
|
101
|
+
|
|
102
|
+
#. Execute the following command in the folder where the SDK was downloaded to:
|
|
103
|
+
|
|
104
|
+
.. code:: bash
|
|
105
|
+
|
|
106
|
+
pip install onlinepayments-sdk-python3-x.y.z.zip
|
|
107
|
+
|
|
108
|
+
Uninstalling
|
|
109
|
+
------------
|
|
110
|
+
|
|
111
|
+
After the Python SDK has been installed, it can be uninstalled using the following command:
|
|
112
|
+
|
|
113
|
+
.. code:: bash
|
|
114
|
+
|
|
115
|
+
pip uninstall onlinepayments-sdk-python3
|
|
116
|
+
|
|
117
|
+
The required packages can be uninstalled in the same way.
|
|
118
|
+
|
|
119
|
+
Running tests
|
|
120
|
+
-------------
|
|
121
|
+
|
|
122
|
+
There are two types of tests: unit tests and integration tests. The unit tests will work out-of-the-box; for the integration tests some configuration is required.
|
|
123
|
+
First, some environment variables need to be set:
|
|
124
|
+
- ``onlinePayments.api.v1hmac.apiKeyId`` for the API key id to use.
|
|
125
|
+
- ``onlinePayments.api.v1hmac.secretApiKey`` for the secret API key to use.
|
|
126
|
+
- ``onlinePayments.api.merchantId`` for your merchant ID.
|
|
127
|
+
|
|
128
|
+
In addition, to run the proxy integration tests, the proxy URI, username and password should be set in the ``tests/resources/configuration.proxy.ini`` file.
|
|
129
|
+
|
|
130
|
+
In order to run the unit and integration tests, the `mock <https://pypi.python.org/pypi/mock>`__ backport and `mockito <https://pypi.python.org/pypi/mockito>`__ are required. These can be installed using the following command:
|
|
131
|
+
|
|
132
|
+
.. code:: bash
|
|
133
|
+
|
|
134
|
+
pip install mock mockito
|
|
135
|
+
|
|
136
|
+
The following commands can now be executed from the ``tests`` directory to execute the tests:
|
|
137
|
+
|
|
138
|
+
- Unit tests:
|
|
139
|
+
|
|
140
|
+
.. code:: bash
|
|
141
|
+
|
|
142
|
+
python run_unit_tests.py
|
|
143
|
+
|
|
144
|
+
- Integration tests:
|
|
145
|
+
|
|
146
|
+
.. code:: bash
|
|
147
|
+
|
|
148
|
+
python run_integration_tests.py
|
|
149
|
+
|
|
150
|
+
- Both unit and integration tests:
|
|
151
|
+
|
|
152
|
+
.. code:: bash
|
|
153
|
+
|
|
154
|
+
python run_all_tests.py
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
Online Payments Python SDK
|
|
2
|
+
==========================
|
|
3
|
+
|
|
4
|
+
Introduction
|
|
5
|
+
------------
|
|
6
|
+
|
|
7
|
+
The Python SDK helps you to communicate with the payment platform server
|
|
8
|
+
API. Its primary features are:
|
|
9
|
+
|
|
10
|
+
- convenient Python library for the API calls and responses
|
|
11
|
+
|
|
12
|
+
- marshals Python request objects to HTTP requests
|
|
13
|
+
- unmarshals HTTP responses to Python response objects or Python exceptions
|
|
14
|
+
|
|
15
|
+
- handling of all the details concerning authentication
|
|
16
|
+
- handling of required metadata
|
|
17
|
+
|
|
18
|
+
Its use is demonstrated by an example for each possible call. The examples execute a call using the provided API key.
|
|
19
|
+
|
|
20
|
+
Structure of this repository
|
|
21
|
+
----------------------------
|
|
22
|
+
|
|
23
|
+
This repository consists out of three main components:
|
|
24
|
+
|
|
25
|
+
#. The source code of the SDK itself: ``/onlinepayments/sdk/``
|
|
26
|
+
#. The source code of the SDK unit tests: ``/tests/unit/``
|
|
27
|
+
#. The source code of the SDK integration tests: ``/tests/integration/``
|
|
28
|
+
|
|
29
|
+
Note that the source code of the unit tests and integration tests can only be found on GitHub.
|
|
30
|
+
|
|
31
|
+
Requirements
|
|
32
|
+
------------
|
|
33
|
+
|
|
34
|
+
Python 3.7 or higher is required. In addition, the following packages are required:
|
|
35
|
+
|
|
36
|
+
- `requests <https://requests.readthedocs.io/>`__ 2.25.0 or higher
|
|
37
|
+
- `requests-toolbelt <https://toolbelt.readthedocs.io/>`__ 0.8.0 or higher
|
|
38
|
+
|
|
39
|
+
These packages will be installed automatically if the SDK is installed manually or using pip following the below instructions.
|
|
40
|
+
|
|
41
|
+
Installation
|
|
42
|
+
------------
|
|
43
|
+
|
|
44
|
+
To install the SDK using pip, execute the following command:
|
|
45
|
+
|
|
46
|
+
.. code:: bash
|
|
47
|
+
|
|
48
|
+
pip install onlinepayments-sdk-python3
|
|
49
|
+
|
|
50
|
+
Alternatively, you can install the SDK from a source distribution file:
|
|
51
|
+
|
|
52
|
+
#. Download the latest version of the Python SDK from GitHub. Choose the
|
|
53
|
+
``onlinepayments-sdk-python3-x.y.z.zip`` file from the
|
|
54
|
+
`releases <https://github.com/wl-online-payments-direct/sdk-python3/releases>`__
|
|
55
|
+
page, where ``x.y.z`` is the version number.
|
|
56
|
+
#. Execute the following command in the folder where the SDK was
|
|
57
|
+
downloaded to:
|
|
58
|
+
|
|
59
|
+
#. Execute the following command in the folder where the SDK was downloaded to:
|
|
60
|
+
|
|
61
|
+
.. code:: bash
|
|
62
|
+
|
|
63
|
+
pip install onlinepayments-sdk-python3-x.y.z.zip
|
|
64
|
+
|
|
65
|
+
Uninstalling
|
|
66
|
+
------------
|
|
67
|
+
|
|
68
|
+
After the Python SDK has been installed, it can be uninstalled using the following command:
|
|
69
|
+
|
|
70
|
+
.. code:: bash
|
|
71
|
+
|
|
72
|
+
pip uninstall onlinepayments-sdk-python3
|
|
73
|
+
|
|
74
|
+
The required packages can be uninstalled in the same way.
|
|
75
|
+
|
|
76
|
+
Running tests
|
|
77
|
+
-------------
|
|
78
|
+
|
|
79
|
+
There are two types of tests: unit tests and integration tests. The unit tests will work out-of-the-box; for the integration tests some configuration is required.
|
|
80
|
+
First, some environment variables need to be set:
|
|
81
|
+
- ``onlinePayments.api.v1hmac.apiKeyId`` for the API key id to use.
|
|
82
|
+
- ``onlinePayments.api.v1hmac.secretApiKey`` for the secret API key to use.
|
|
83
|
+
- ``onlinePayments.api.merchantId`` for your merchant ID.
|
|
84
|
+
|
|
85
|
+
In addition, to run the proxy integration tests, the proxy URI, username and password should be set in the ``tests/resources/configuration.proxy.ini`` file.
|
|
86
|
+
|
|
87
|
+
In order to run the unit and integration tests, the `mock <https://pypi.python.org/pypi/mock>`__ backport and `mockito <https://pypi.python.org/pypi/mockito>`__ are required. These can be installed using the following command:
|
|
88
|
+
|
|
89
|
+
.. code:: bash
|
|
90
|
+
|
|
91
|
+
pip install mock mockito
|
|
92
|
+
|
|
93
|
+
The following commands can now be executed from the ``tests`` directory to execute the tests:
|
|
94
|
+
|
|
95
|
+
- Unit tests:
|
|
96
|
+
|
|
97
|
+
.. code:: bash
|
|
98
|
+
|
|
99
|
+
python run_unit_tests.py
|
|
100
|
+
|
|
101
|
+
- Integration tests:
|
|
102
|
+
|
|
103
|
+
.. code:: bash
|
|
104
|
+
|
|
105
|
+
python run_integration_tests.py
|
|
106
|
+
|
|
107
|
+
- Both unit and integration tests:
|
|
108
|
+
|
|
109
|
+
.. code:: bash
|
|
110
|
+
|
|
111
|
+
python run_all_tests.py
|
|
File without changes
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated.
|
|
4
|
+
#
|
|
5
|
+
from typing import List, Optional, Sequence
|
|
6
|
+
|
|
7
|
+
from onlinepayments.sdk.domain.api_error import APIError
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ApiException(RuntimeError):
|
|
11
|
+
"""
|
|
12
|
+
Represents an error response from the payment platform which contains an ID and a list of errors.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
def __init__(self, status_code: int, response_body: str, error_id: Optional[str], errors: Optional[List[APIError]],
|
|
16
|
+
message: str = "the payment platform returned an error response"):
|
|
17
|
+
super(ApiException, self).__init__(message)
|
|
18
|
+
self.__status_code = status_code
|
|
19
|
+
self.__response_body = response_body
|
|
20
|
+
self.__error_id = error_id
|
|
21
|
+
if errors is None:
|
|
22
|
+
self.__errors = ()
|
|
23
|
+
else:
|
|
24
|
+
self.__errors = errors
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def status_code(self) -> int:
|
|
28
|
+
"""
|
|
29
|
+
:return: The HTTP status code that was returned by the Payment platform.
|
|
30
|
+
"""
|
|
31
|
+
return self.__status_code
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def response_body(self) -> str:
|
|
35
|
+
"""
|
|
36
|
+
:return: The raw response body that was returned by the Payment platform.
|
|
37
|
+
"""
|
|
38
|
+
return self.__response_body
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def error_id(self) -> Optional[str]:
|
|
42
|
+
"""
|
|
43
|
+
:return: The errorId received from the Payment platform if available.
|
|
44
|
+
"""
|
|
45
|
+
return self.__error_id
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def errors(self) -> Sequence[APIError]:
|
|
49
|
+
"""
|
|
50
|
+
:return: The errors received from the Payment platform if available. Never None.
|
|
51
|
+
"""
|
|
52
|
+
return self.__errors
|
|
53
|
+
|
|
54
|
+
def __str__(self):
|
|
55
|
+
string = super(ApiException, self).__str__()
|
|
56
|
+
if self.__status_code > 0:
|
|
57
|
+
string += "; status_code=" + str(self.__status_code)
|
|
58
|
+
if self.__response_body:
|
|
59
|
+
string += "; response_body='" + self.__response_body + "'"
|
|
60
|
+
return str(string)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from typing import Mapping, Sequence, Optional
|
|
2
|
+
|
|
3
|
+
from .i_communicator import ICommunicator
|
|
4
|
+
|
|
5
|
+
from onlinepayments.sdk.communication.request_header import RequestHeader
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ApiResource(object):
|
|
9
|
+
"""
|
|
10
|
+
Base class of all Online Payments platform API resources.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
def __init__(self, parent: Optional['ApiResource'] = None, communicator: Optional[ICommunicator] = None,
|
|
14
|
+
path_context: Optional[Mapping[str, str]] = None, client_meta_info: Optional[str] = None):
|
|
15
|
+
"""
|
|
16
|
+
The parent and/or communicator must be given.
|
|
17
|
+
"""
|
|
18
|
+
if not parent and not communicator:
|
|
19
|
+
raise ValueError("parent and/or communicator is required")
|
|
20
|
+
self.__parent = parent
|
|
21
|
+
self.__communicator = communicator if communicator else parent._communicator
|
|
22
|
+
self.__path_context = path_context
|
|
23
|
+
self.__client_meta_info = client_meta_info if client_meta_info or not parent else parent._client_meta_info
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def _communicator(self) -> ICommunicator:
|
|
27
|
+
return self.__communicator
|
|
28
|
+
|
|
29
|
+
@property
|
|
30
|
+
def _client_meta_info(self) -> str:
|
|
31
|
+
return self.__client_meta_info
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def _client_headers(self) -> Optional[Sequence[RequestHeader]]:
|
|
35
|
+
if self._client_meta_info is not None:
|
|
36
|
+
client_headers = [RequestHeader("X-GCS-ClientMetaInfo", self._client_meta_info)]
|
|
37
|
+
return client_headers
|
|
38
|
+
else:
|
|
39
|
+
return None
|
|
40
|
+
|
|
41
|
+
def _instantiate_uri(self, uri: str, path_context: Optional[Mapping[str, str]]) -> str:
|
|
42
|
+
uri = self.__replace_all(uri, path_context)
|
|
43
|
+
uri = self.__instantiate_uri(uri)
|
|
44
|
+
return uri
|
|
45
|
+
|
|
46
|
+
def __instantiate_uri(self, uri: str) -> str:
|
|
47
|
+
uri = self.__replace_all(uri, self.__path_context)
|
|
48
|
+
if self.__parent is not None:
|
|
49
|
+
uri = self.__parent.__instantiate_uri(uri)
|
|
50
|
+
return uri
|
|
51
|
+
|
|
52
|
+
@staticmethod
|
|
53
|
+
def __replace_all(uri: str, path_context: Optional[Mapping[str, str]]) -> str:
|
|
54
|
+
if path_context:
|
|
55
|
+
for key, value in path_context.items():
|
|
56
|
+
uri = uri.replace("{" + key + "}", value)
|
|
57
|
+
return uri
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import Optional, Sequence
|
|
3
|
+
from urllib.parse import ParseResult
|
|
4
|
+
|
|
5
|
+
from onlinepayments.sdk.communication.request_header import RequestHeader
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Authenticator(ABC):
|
|
9
|
+
"""
|
|
10
|
+
Used to authenticate requests to the Online Payments platform.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
@abstractmethod
|
|
14
|
+
def get_authorization(self, http_method: str, resource_uri: ParseResult,
|
|
15
|
+
request_headers: Optional[Sequence[RequestHeader]]) -> str:
|
|
16
|
+
"""
|
|
17
|
+
Returns a value that can be used for the "Authorization" header.
|
|
18
|
+
|
|
19
|
+
:param http_method: The HTTP method.
|
|
20
|
+
:param resource_uri: The URI of the resource.
|
|
21
|
+
:param request_headers: A sequence of RequestHeaders.
|
|
22
|
+
This sequence may not be modified and may not contain headers with the same name.
|
|
23
|
+
"""
|
|
24
|
+
raise NotImplementedError
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class AuthorizationType:
|
|
2
|
+
V1HMAC = "v1HMAC"
|
|
3
|
+
AUTHORIZATION_TYPES = [V1HMAC]
|
|
4
|
+
|
|
5
|
+
@staticmethod
|
|
6
|
+
def get_authorization(name: str) -> str:
|
|
7
|
+
if name in AuthorizationType.AUTHORIZATION_TYPES:
|
|
8
|
+
return name
|
|
9
|
+
else:
|
|
10
|
+
raise ValueError("Authorization '{}' not found".format(name))
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import hashlib
|
|
2
|
+
import hmac
|
|
3
|
+
from base64 import b64encode
|
|
4
|
+
from operator import attrgetter
|
|
5
|
+
from re import sub
|
|
6
|
+
from typing import Optional, Sequence
|
|
7
|
+
from urllib.parse import ParseResult
|
|
8
|
+
|
|
9
|
+
from .authenticator import Authenticator
|
|
10
|
+
|
|
11
|
+
from onlinepayments.sdk.authentication.authorization_type import AuthorizationType
|
|
12
|
+
from onlinepayments.sdk.communicator_configuration import CommunicatorConfiguration
|
|
13
|
+
from onlinepayments.sdk.communication.request_header import RequestHeader
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class V1HmacAuthenticator(Authenticator):
|
|
17
|
+
"""
|
|
18
|
+
V1Hmac Authenticator implementation.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, communicator_configuration: CommunicatorConfiguration):
|
|
22
|
+
"""
|
|
23
|
+
Constructs a new V1HmacAuthenticator instance using the provided CommunicatorConfiguration.
|
|
24
|
+
|
|
25
|
+
:param communicator_configuration: The configuration object containing the v1Hmac api key and api key secret
|
|
26
|
+
, connection timeout, and socket timeout. None of these can be None or empty,
|
|
27
|
+
and the timeout values must be positive.
|
|
28
|
+
"""
|
|
29
|
+
Authenticator.__init__(self)
|
|
30
|
+
|
|
31
|
+
if not communicator_configuration.api_key_id:
|
|
32
|
+
raise ValueError("api_key_id is required")
|
|
33
|
+
if not communicator_configuration.secret_api_key:
|
|
34
|
+
raise ValueError("secret_api_key is required")
|
|
35
|
+
if communicator_configuration.authorization_type is None:
|
|
36
|
+
raise ValueError("authorization_type is required")
|
|
37
|
+
if communicator_configuration.connect_timeout <= 0:
|
|
38
|
+
raise ValueError("connect_timeout must be positive")
|
|
39
|
+
if communicator_configuration.socket_timeout <= 0:
|
|
40
|
+
raise ValueError("socket_timeout must be positive")
|
|
41
|
+
|
|
42
|
+
self.__api_id_key = communicator_configuration.api_key_id
|
|
43
|
+
self.__secret_api_key = communicator_configuration.secret_api_key
|
|
44
|
+
self.__authorization_type = AuthorizationType.get_authorization(communicator_configuration.authorization_type)
|
|
45
|
+
self.__connect_timeout = communicator_configuration.connect_timeout
|
|
46
|
+
self.__socket_timeout = communicator_configuration.socket_timeout
|
|
47
|
+
self.__proxy_configuration = communicator_configuration.proxy_configuration
|
|
48
|
+
|
|
49
|
+
def get_authorization(self, http_method: Optional[str], resource_uri: Optional[ParseResult],
|
|
50
|
+
request_headers: Optional[Sequence[RequestHeader]]) -> str:
|
|
51
|
+
"""Returns a v1HMAC authentication signature header"""
|
|
52
|
+
if http_method is None or not http_method.strip():
|
|
53
|
+
raise ValueError("http_method is required")
|
|
54
|
+
if resource_uri is None:
|
|
55
|
+
raise ValueError("resource_uri is required")
|
|
56
|
+
data_to_sign = self.to_data_to_sign(http_method, resource_uri, request_headers)
|
|
57
|
+
return "GCS " + self.__authorization_type + ":" + self.__api_id_key + \
|
|
58
|
+
":" + self.create_authentication_signature(data_to_sign)
|
|
59
|
+
|
|
60
|
+
def to_data_to_sign(self, http_method, resource_uri, http_headers):
|
|
61
|
+
content_type = None
|
|
62
|
+
date = None
|
|
63
|
+
canonicalized_headers = ""
|
|
64
|
+
canonicalized_resource = self.__to_canonicalized_resource(resource_uri)
|
|
65
|
+
xgcs_http_headers = []
|
|
66
|
+
if http_headers is not None:
|
|
67
|
+
for http_header in http_headers:
|
|
68
|
+
if "Content-Type".lower() == http_header.name.lower():
|
|
69
|
+
content_type = http_header.value
|
|
70
|
+
elif "Date".lower() == http_header.name.lower():
|
|
71
|
+
date = http_header.value
|
|
72
|
+
else:
|
|
73
|
+
name = self.__to_canonicalize_header_name(http_header.name)
|
|
74
|
+
if name.startswith("x-gcs"):
|
|
75
|
+
value = self.to_canonicalize_header_value(
|
|
76
|
+
http_header.value)
|
|
77
|
+
xgcs_http_header = RequestHeader(name, value)
|
|
78
|
+
xgcs_http_headers.append(xgcs_http_header)
|
|
79
|
+
xgcs_http_headers.sort(key=attrgetter('name'))
|
|
80
|
+
for xgcs_http_header in xgcs_http_headers:
|
|
81
|
+
canonicalized_headers += xgcs_http_header.name + ":" + xgcs_http_header.value + "\n"
|
|
82
|
+
string = http_method.upper() + "\n"
|
|
83
|
+
if content_type is not None:
|
|
84
|
+
string += content_type + "\n"
|
|
85
|
+
else:
|
|
86
|
+
string += "\n"
|
|
87
|
+
string += date + "\n"
|
|
88
|
+
string += str(canonicalized_headers)
|
|
89
|
+
string += canonicalized_resource + "\n"
|
|
90
|
+
return str(string)
|
|
91
|
+
|
|
92
|
+
@staticmethod
|
|
93
|
+
def __to_canonicalized_resource(resource_uri):
|
|
94
|
+
"""
|
|
95
|
+
Returns the encoded URI path without the HTTP method and including all
|
|
96
|
+
decoded query parameters.
|
|
97
|
+
"""
|
|
98
|
+
string = ""
|
|
99
|
+
string += resource_uri.path
|
|
100
|
+
if resource_uri.query:
|
|
101
|
+
string += "?" + resource_uri.query
|
|
102
|
+
return str(string)
|
|
103
|
+
|
|
104
|
+
@staticmethod
|
|
105
|
+
def __to_canonicalize_header_name(original_name):
|
|
106
|
+
if original_name is None:
|
|
107
|
+
return None
|
|
108
|
+
else:
|
|
109
|
+
return original_name.lower()
|
|
110
|
+
|
|
111
|
+
@staticmethod
|
|
112
|
+
def to_canonicalize_header_value(original_value):
|
|
113
|
+
# For now V1HMAC is the only supported AuthorizationType so always use
|
|
114
|
+
# the same logic.
|
|
115
|
+
if original_value is None:
|
|
116
|
+
return ""
|
|
117
|
+
return sub(r"\r?\n(?:(?![\r\n])\s)*", " ", original_value).strip()
|
|
118
|
+
|
|
119
|
+
def create_authentication_signature(self, data_to_sign):
|
|
120
|
+
sig = hmac.new(self.__secret_api_key.encode("utf-8"), data_to_sign.encode("utf-8"),
|
|
121
|
+
hashlib.sha256)
|
|
122
|
+
return b64encode(sig.digest()).decode("utf-8").rstrip('\n')
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated.
|
|
4
|
+
#
|
|
5
|
+
from typing import List, Optional
|
|
6
|
+
|
|
7
|
+
from .api_exception import ApiException
|
|
8
|
+
|
|
9
|
+
from onlinepayments.sdk.domain.api_error import APIError
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AuthorizationException(ApiException):
|
|
13
|
+
"""
|
|
14
|
+
Represents an error response from the payment platform when authorization failed.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
def __init__(self, status_code: int, response_body: str, error_id: Optional[str], errors: Optional[List[APIError]],
|
|
18
|
+
message: str = "the payment platform returned an authorization error response"):
|
|
19
|
+
super(AuthorizationException, self).__init__(status_code, response_body, error_id, errors, message)
|