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.
Files changed (428) hide show
  1. onlinepayments_sdk_python3-6.4.0/LICENSE.txt +52 -0
  2. onlinepayments_sdk_python3-6.4.0/MANIFEST.in +2 -0
  3. onlinepayments_sdk_python3-6.4.0/PKG-INFO +154 -0
  4. onlinepayments_sdk_python3-6.4.0/README.rst +111 -0
  5. onlinepayments_sdk_python3-6.4.0/onlinepayments/__init__.py +0 -0
  6. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/__init__.py +4 -0
  7. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/api_exception.py +60 -0
  8. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/api_resource.py +57 -0
  9. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authentication/__init__.py +0 -0
  10. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authentication/authenticator.py +24 -0
  11. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authentication/authorization_type.py +10 -0
  12. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authentication/v1hmac_authenticator.py +122 -0
  13. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/authorization_exception.py +19 -0
  14. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/call_context.py +62 -0
  15. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/client.py +107 -0
  16. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/__init__.py +0 -0
  17. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/communication_exception.py +8 -0
  18. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/connection.py +84 -0
  19. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/default_connection.py +305 -0
  20. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/i_metadata_provider.py +19 -0
  21. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/metadata_provider.py +132 -0
  22. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/multipart_form_data_object.py +51 -0
  23. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/multipart_form_data_request.py +16 -0
  24. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/not_found_exception.py +10 -0
  25. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/param_request.py +17 -0
  26. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/pooled_connection.py +29 -0
  27. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/request_header.py +60 -0
  28. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/request_param.py +30 -0
  29. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/response_exception.py +58 -0
  30. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communication/response_header.py +50 -0
  31. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communicator.py +457 -0
  32. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/communicator_configuration.py +264 -0
  33. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/declined_payment_exception.py +46 -0
  34. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/declined_payout_exception.py +46 -0
  35. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/declined_refund_exception.py +46 -0
  36. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/declined_transaction_exception.py +22 -0
  37. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/__init__.py +4 -0
  38. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/account_on_file.py +102 -0
  39. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/account_on_file_attribute.py +97 -0
  40. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/account_on_file_display_hints.py +64 -0
  41. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/acquirer_information.py +59 -0
  42. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/acquirer_selection_information.py +73 -0
  43. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/additional_order_input.py +107 -0
  44. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/address.py +145 -0
  45. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/address_personal.py +185 -0
  46. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/airline_data.py +519 -0
  47. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/airline_flight_leg.py +386 -0
  48. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/airline_passenger.py +129 -0
  49. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/amount_breakdown.py +63 -0
  50. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/amount_of_money.py +59 -0
  51. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/api_error.py +177 -0
  52. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/apple_pay_line_item.py +145 -0
  53. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/apple_pay_recurring_payment_request.py +116 -0
  54. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/bank_account_iban.py +37 -0
  55. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/browser_data.py +130 -0
  56. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/calculate_surcharge_request.py +63 -0
  57. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/calculate_surcharge_response.py +44 -0
  58. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/cancel_payment_request.py +81 -0
  59. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/cancel_payment_response.py +41 -0
  60. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture.py +97 -0
  61. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture_output.py +272 -0
  62. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture_payment_request.py +99 -0
  63. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture_response.py +99 -0
  64. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/capture_status_output.py +37 -0
  65. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/captures_response.py +46 -0
  66. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card.py +91 -0
  67. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_bin_details.py +384 -0
  68. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_essentials.py +438 -0
  69. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_fraud_results.py +112 -0
  70. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_info.py +55 -0
  71. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payment_method_specific_input.py +586 -0
  72. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payment_method_specific_input_base.py +422 -0
  73. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payment_method_specific_input_for_hosted_checkout.py +82 -0
  74. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payment_method_specific_output.py +423 -0
  75. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_payout_method_specific_input.py +99 -0
  76. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_recurrence_details.py +40 -0
  77. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_source.py +95 -0
  78. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/card_without_cvv.py +73 -0
  79. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/click_to_pay.py +37 -0
  80. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/company_information.py +37 -0
  81. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/complete_payment_card_payment_method_specific_input.py +39 -0
  82. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/complete_payment_request.py +61 -0
  83. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/complete_payment_response.py +85 -0
  84. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/contact_details.py +109 -0
  85. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_hosted_checkout_request.py +195 -0
  86. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_hosted_checkout_response.py +132 -0
  87. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_hosted_tokenization_request.py +133 -0
  88. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_hosted_tokenization_response.py +127 -0
  89. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_mandate_request.py +186 -0
  90. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_mandate_response.py +63 -0
  91. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_mandate_with_return_url.py +186 -0
  92. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_payment_link_request.py +326 -0
  93. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_payment_request.py +227 -0
  94. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_payment_response.py +85 -0
  95. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_payout_request.py +176 -0
  96. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/create_token_request.py +77 -0
  97. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/created_payment_output.py +57 -0
  98. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/created_token_response.py +120 -0
  99. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/credit_card_specific_input_hosted_tokenization.py +64 -0
  100. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/credit_card_validation_rules_hosted_tokenization.py +55 -0
  101. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion.py +59 -0
  102. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_input.py +55 -0
  103. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_request.py +59 -0
  104. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_response.py +81 -0
  105. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_result.py +61 -0
  106. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/currency_conversion_specific_input.py +40 -0
  107. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer.py +234 -0
  108. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_account.py +204 -0
  109. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_account_authentication.py +81 -0
  110. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_bank_account.py +73 -0
  111. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_device.py +155 -0
  112. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_device_output.py +37 -0
  113. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_output.py +41 -0
  114. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_payment_activity.py +73 -0
  115. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/customer_token.py +83 -0
  116. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/data_object.py +34 -0
  117. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/dcc_card_source.py +93 -0
  118. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/dcc_proposal.py +118 -0
  119. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/decrypted_payment_data.py +120 -0
  120. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/directory_entry.py +73 -0
  121. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/discount.py +41 -0
  122. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/empty_validator.py +16 -0
  123. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/error_response.py +64 -0
  124. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/external_cardholder_authentication_data.py +216 -0
  125. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/external_token_linked.py +75 -0
  126. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/feedbacks.py +64 -0
  127. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/fixed_list_validator.py +42 -0
  128. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/fraud_fields.py +84 -0
  129. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/fraud_results.py +43 -0
  130. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/g_pay_three_d_secure.py +138 -0
  131. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_hosted_checkout_response.py +63 -0
  132. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_hosted_tokenization_response.py +61 -0
  133. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_iin_details_request.py +57 -0
  134. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_iin_details_response.py +450 -0
  135. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_mandate_response.py +41 -0
  136. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_payment_product_groups_response.py +44 -0
  137. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_payment_products_response.py +44 -0
  138. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/get_privacy_policy_response.py +37 -0
  139. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/gift_card_purchase.py +59 -0
  140. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/hosted_checkout_specific_input.py +228 -0
  141. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/hosted_checkout_specific_output.py +55 -0
  142. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/iin_detail.py +423 -0
  143. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/label_template_element.py +55 -0
  144. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/length_validator.py +51 -0
  145. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/line_item.py +107 -0
  146. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/line_item_invoice_data.py +37 -0
  147. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/loan_recipient.py +109 -0
  148. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/lodging_data.py +37 -0
  149. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_address.py +109 -0
  150. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_address_response.py +109 -0
  151. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_contact_details.py +37 -0
  152. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_customer.py +125 -0
  153. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_customer_response.py +125 -0
  154. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_merchant_action.py +61 -0
  155. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_personal_information.py +59 -0
  156. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_personal_information_response.py +59 -0
  157. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_personal_name.py +55 -0
  158. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_personal_name_response.py +55 -0
  159. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_redirect_data.py +55 -0
  160. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mandate_response.py +150 -0
  161. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/merchant_action.py +132 -0
  162. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_data.py +55 -0
  163. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_method_hosted_checkout_specific_input.py +105 -0
  164. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_method_specific_input.py +202 -0
  165. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_method_specific_output.py +139 -0
  166. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_product302_specific_input.py +103 -0
  167. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_payment_product320_specific_input.py +103 -0
  168. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/mobile_three_d_secure_challenge_parameters.py +91 -0
  169. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/multiple_payment_information.py +57 -0
  170. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/network_token_data.py +127 -0
  171. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/network_token_essentials.py +134 -0
  172. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/network_token_linked.py +80 -0
  173. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/omnichannel_payout_specific_input.py +37 -0
  174. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/omnichannel_refund_specific_input.py +37 -0
  175. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/operation_output.py +161 -0
  176. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/operation_payment_references.py +55 -0
  177. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order.py +213 -0
  178. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order_line_details.py +181 -0
  179. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order_references.py +120 -0
  180. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order_status_output.py +119 -0
  181. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/order_type_information.py +64 -0
  182. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/other_details.py +55 -0
  183. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_account_on_file.py +57 -0
  184. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_context.py +77 -0
  185. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_creation_output.py +94 -0
  186. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_details_response.py +148 -0
  187. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_error_response.py +84 -0
  188. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_event.py +73 -0
  189. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_order_input.py +84 -0
  190. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_order_output.py +81 -0
  191. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_response.py +198 -0
  192. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_link_specific_input.py +74 -0
  193. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_links_response.py +44 -0
  194. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_output.py +294 -0
  195. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product.py +296 -0
  196. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product130_specific_input.py +41 -0
  197. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product130_specific_three_d_secure.py +91 -0
  198. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3012.py +55 -0
  199. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3012_specific_input.py +100 -0
  200. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3013_specific_input.py +73 -0
  201. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product302_specific_data.py +44 -0
  202. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3203_specific_output.py +62 -0
  203. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3204_specific_output.py +37 -0
  204. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3208_specific_input.py +37 -0
  205. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3208_specific_output.py +37 -0
  206. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3209_specific_input.py +37 -0
  207. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product3209_specific_output.py +37 -0
  208. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product320_specific_data.py +62 -0
  209. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product350.py +55 -0
  210. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5001.py +58 -0
  211. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5001_specific_output.py +112 -0
  212. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5100_specific_input.py +37 -0
  213. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5402_specific_output.py +37 -0
  214. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5404.py +55 -0
  215. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5407.py +55 -0
  216. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product5500_specific_output.py +91 -0
  217. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product771_specific_output.py +37 -0
  218. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product840_customer_account.py +170 -0
  219. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product840_specific_output.py +128 -0
  220. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_display_hints.py +73 -0
  221. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field.py +95 -0
  222. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_data_restrictions.py +60 -0
  223. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_display_element.py +97 -0
  224. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_display_hints.py +218 -0
  225. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_form_element.py +72 -0
  226. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_tooltip.py +57 -0
  227. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_field_validators.py +195 -0
  228. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_filter.py +67 -0
  229. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_filter_hosted_tokenization.py +42 -0
  230. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_filters_hosted_checkout.py +62 -0
  231. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_filters_hosted_tokenization.py +62 -0
  232. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_group.py +103 -0
  233. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_product_networks_response.py +42 -0
  234. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_references.py +73 -0
  235. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_response.py +121 -0
  236. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payment_status_output.py +152 -0
  237. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_error_response.py +80 -0
  238. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_output.py +63 -0
  239. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_response.py +93 -0
  240. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_result.py +93 -0
  241. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/payout_status_output.py +76 -0
  242. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/pending_authentication.py +37 -0
  243. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/personal_information.py +77 -0
  244. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/personal_information_token.py +39 -0
  245. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/personal_name.py +73 -0
  246. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/personal_name_token.py +51 -0
  247. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/product302_recurring.py +37 -0
  248. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/product320_recurring.py +37 -0
  249. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/product_directory.py +46 -0
  250. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/protection_eligibility.py +59 -0
  251. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/range_validator.py +51 -0
  252. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/rate_details.py +109 -0
  253. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/reattempt_instructions.py +82 -0
  254. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/reattempt_instructions_conditions.py +55 -0
  255. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_data.py +55 -0
  256. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_method_specific_input.py +443 -0
  257. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_method_specific_output.py +267 -0
  258. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product3203_specific_input.py +40 -0
  259. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product3204_specific_input.py +55 -0
  260. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product3302_specific_input.py +73 -0
  261. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product3306_specific_input.py +37 -0
  262. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5001_specific_input.py +62 -0
  263. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5300_specific_input.py +145 -0
  264. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5402_specific_input.py +40 -0
  265. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5403_specific_input.py +40 -0
  266. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5406_specific_input.py +41 -0
  267. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5408_specific_input.py +60 -0
  268. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5410_specific_input.py +38 -0
  269. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product5412_specific_input.py +55 -0
  270. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product809_specific_input.py +40 -0
  271. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirect_payment_product840_specific_input.py +100 -0
  272. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/redirection_data.py +37 -0
  273. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_card_method_specific_output.py +71 -0
  274. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_e_wallet_method_specific_output.py +71 -0
  275. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_error_response.py +82 -0
  276. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_mobile_method_specific_output.py +69 -0
  277. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_output.py +217 -0
  278. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_payment_product840_customer_account.py +69 -0
  279. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_payment_product840_specific_output.py +39 -0
  280. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_redirect_method_specific_output.py +51 -0
  281. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_request.py +143 -0
  282. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refund_response.py +97 -0
  283. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/refunds_response.py +46 -0
  284. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/regular_expression_validator.py +35 -0
  285. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/revoke_mandate_request.py +48 -0
  286. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/send_test_request.py +37 -0
  287. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input.py +59 -0
  288. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input_base.py +59 -0
  289. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_output.py +81 -0
  290. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input.py +59 -0
  291. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input_base.py +59 -0
  292. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/session_request.py +44 -0
  293. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/session_response.py +114 -0
  294. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/shipping.py +206 -0
  295. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/shipping_method.py +91 -0
  296. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/shopping_cart.py +155 -0
  297. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/shopping_cart_extension.py +77 -0
  298. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/show_form_data.py +151 -0
  299. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/show_instructions_data.py +37 -0
  300. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/subsequent_card_payment_method_specific_input.py +153 -0
  301. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/subsequent_payment_product5001_specific_input.py +41 -0
  302. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/subsequent_payment_request.py +85 -0
  303. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/subsequent_payment_response.py +41 -0
  304. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge.py +141 -0
  305. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_calculation_card.py +55 -0
  306. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_for_payment_link.py +40 -0
  307. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_rate.py +91 -0
  308. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_specific_input.py +62 -0
  309. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/surcharge_specific_output.py +84 -0
  310. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/test_connection.py +35 -0
  311. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/three_d_secure.py +281 -0
  312. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/three_d_secure_base.py +219 -0
  313. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/three_d_secure_data.py +78 -0
  314. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/three_d_secure_results.py +266 -0
  315. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_card.py +57 -0
  316. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_card_data.py +83 -0
  317. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_card_specific_input.py +41 -0
  318. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_data.py +63 -0
  319. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_e_wallet.py +59 -0
  320. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/token_response.py +159 -0
  321. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/transaction.py +41 -0
  322. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/uploadable_file.py +51 -0
  323. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/validate_credentials_request.py +55 -0
  324. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/validate_credentials_response.py +37 -0
  325. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/value_mapping_element.py +62 -0
  326. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/domain/web_hooks_event.py +194 -0
  327. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/exception_factory.py +75 -0
  328. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/factory.py +127 -0
  329. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/i_client.py +78 -0
  330. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/i_communicator.py +180 -0
  331. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/idempotence_exception.py +36 -0
  332. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/json/__init__.py +0 -0
  333. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/json/default_marshaller.py +60 -0
  334. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/json/marshaller.py +32 -0
  335. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/json/marshaller_syntax_exception.py +13 -0
  336. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/__init__.py +0 -0
  337. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/body_obfuscator.py +113 -0
  338. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/communicator_logger.py +35 -0
  339. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/header_obfuscator.py +49 -0
  340. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/log_message.py +94 -0
  341. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/logging_capable.py +26 -0
  342. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/obfuscation_capable.py +24 -0
  343. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/obfuscation_rule.py +50 -0
  344. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/python_communicator_logger.py +54 -0
  345. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/request_log_message.py +28 -0
  346. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/response_log_message.py +37 -0
  347. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/log/sys_out_communicator_logger.py +36 -0
  348. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/__init__.py +4 -0
  349. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/captures/__init__.py +4 -0
  350. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/captures/captures_client.py +61 -0
  351. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/captures/i_captures_client.py +34 -0
  352. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/complete/__init__.py +4 -0
  353. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/complete/complete_client.py +65 -0
  354. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/complete/i_complete_client.py +37 -0
  355. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedcheckout/__init__.py +4 -0
  356. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedcheckout/hosted_checkout_client.py +95 -0
  357. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedcheckout/i_hosted_checkout_client.py +55 -0
  358. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedtokenization/__init__.py +4 -0
  359. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedtokenization/hosted_tokenization_client.py +95 -0
  360. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/hostedtokenization/i_hosted_tokenization_client.py +55 -0
  361. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/i_merchant_client.py +166 -0
  362. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/mandates/__init__.py +4 -0
  363. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/mandates/i_mandates_client.py +114 -0
  364. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/mandates/mandates_client.py +202 -0
  365. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/merchant_client.py +192 -0
  366. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/paymentlinks/__init__.py +4 -0
  367. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/paymentlinks/get_payment_links_in_bulk_params.py +36 -0
  368. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/paymentlinks/i_payment_links_client.py +95 -0
  369. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/paymentlinks/payment_links_client.py +162 -0
  370. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payments/__init__.py +4 -0
  371. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payments/i_payments_client.py +143 -0
  372. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payments/payments_client.py +248 -0
  373. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payouts/__init__.py +4 -0
  374. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payouts/i_payouts_client.py +55 -0
  375. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/payouts/payouts_client.py +96 -0
  376. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/privacypolicy/__init__.py +4 -0
  377. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/privacypolicy/get_privacy_policy_params.py +54 -0
  378. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/privacypolicy/i_privacy_policy_client.py +36 -0
  379. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/privacypolicy/privacy_policy_client.py +59 -0
  380. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/__init__.py +4 -0
  381. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/get_product_group_params.py +140 -0
  382. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/get_product_groups_params.py +140 -0
  383. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/i_product_groups_client.py +58 -0
  384. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/productgroups/product_groups_client.py +96 -0
  385. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/__init__.py +4 -0
  386. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/get_payment_product_networks_params.py +89 -0
  387. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/get_payment_product_params.py +138 -0
  388. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/get_payment_products_params.py +138 -0
  389. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/get_product_directory_params.py +54 -0
  390. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/i_products_client.py +102 -0
  391. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/products/products_client.py +170 -0
  392. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/refunds/__init__.py +4 -0
  393. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/refunds/i_refunds_client.py +34 -0
  394. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/refunds/refunds_client.py +61 -0
  395. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/services/__init__.py +4 -0
  396. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/services/i_services_client.py +96 -0
  397. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/services/services_client.py +159 -0
  398. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/sessions/__init__.py +4 -0
  399. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/sessions/i_sessions_client.py +35 -0
  400. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/sessions/sessions_client.py +60 -0
  401. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/subsequent/__init__.py +4 -0
  402. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/subsequent/i_subsequent_client.py +37 -0
  403. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/subsequent/subsequent_client.py +65 -0
  404. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/tokens/__init__.py +4 -0
  405. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/tokens/i_tokens_client.py +74 -0
  406. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/tokens/tokens_client.py +129 -0
  407. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/webhooks/__init__.py +4 -0
  408. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/webhooks/i_webhooks_client.py +55 -0
  409. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/merchant/webhooks/webhooks_client.py +93 -0
  410. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/platform_exception.py +19 -0
  411. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/proxy_configuration.py +102 -0
  412. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/reference_exception.py +19 -0
  413. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/validation_exception.py +19 -0
  414. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/__init__.py +0 -0
  415. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/api_version_mismatch_exception.py +24 -0
  416. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/in_memory_secret_key_store.py +48 -0
  417. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/secret_key_not_available_exception.py +18 -0
  418. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/secret_key_store.py +15 -0
  419. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/signature_validation_exception.py +17 -0
  420. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/signature_validator.py +56 -0
  421. onlinepayments_sdk_python3-6.4.0/onlinepayments/sdk/webhooks/webhooks_helper.py +52 -0
  422. onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/PKG-INFO +154 -0
  423. onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/SOURCES.txt +427 -0
  424. onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/dependency_links.txt +1 -0
  425. onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/requires.txt +2 -0
  426. onlinepayments_sdk_python3-6.4.0/onlinepayments_sdk_python3.egg-info/top_level.txt +1 -0
  427. onlinepayments_sdk_python3-6.4.0/setup.cfg +7 -0
  428. 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,2 @@
1
+ include README.rst
2
+ include LICENSE.txt
@@ -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
@@ -0,0 +1,4 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
@@ -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
@@ -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)