onlinepayments-sdk-python3 7.4.1__py3-none-any.whl

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 (475) hide show
  1. onlinepayments/__init__.py +0 -0
  2. onlinepayments/sdk/__init__.py +4 -0
  3. onlinepayments/sdk/api_exception.py +60 -0
  4. onlinepayments/sdk/api_resource.py +57 -0
  5. onlinepayments/sdk/authentication/__init__.py +0 -0
  6. onlinepayments/sdk/authentication/authenticator.py +24 -0
  7. onlinepayments/sdk/authentication/authorization_type.py +10 -0
  8. onlinepayments/sdk/authentication/v1hmac_authenticator.py +122 -0
  9. onlinepayments/sdk/authorization_exception.py +19 -0
  10. onlinepayments/sdk/call_context.py +72 -0
  11. onlinepayments/sdk/client.py +107 -0
  12. onlinepayments/sdk/communication/__init__.py +0 -0
  13. onlinepayments/sdk/communication/communication_exception.py +8 -0
  14. onlinepayments/sdk/communication/connection.py +84 -0
  15. onlinepayments/sdk/communication/default_connection.py +313 -0
  16. onlinepayments/sdk/communication/i_metadata_provider.py +19 -0
  17. onlinepayments/sdk/communication/metadata_provider.py +132 -0
  18. onlinepayments/sdk/communication/multipart_form_data_object.py +51 -0
  19. onlinepayments/sdk/communication/multipart_form_data_request.py +16 -0
  20. onlinepayments/sdk/communication/not_found_exception.py +10 -0
  21. onlinepayments/sdk/communication/param_request.py +17 -0
  22. onlinepayments/sdk/communication/pooled_connection.py +29 -0
  23. onlinepayments/sdk/communication/request_header.py +60 -0
  24. onlinepayments/sdk/communication/request_param.py +30 -0
  25. onlinepayments/sdk/communication/response_exception.py +58 -0
  26. onlinepayments/sdk/communication/response_header.py +50 -0
  27. onlinepayments/sdk/communicator.py +465 -0
  28. onlinepayments/sdk/communicator_configuration.py +264 -0
  29. onlinepayments/sdk/declined_payment_exception.py +46 -0
  30. onlinepayments/sdk/declined_payout_exception.py +46 -0
  31. onlinepayments/sdk/declined_refund_exception.py +46 -0
  32. onlinepayments/sdk/declined_transaction_exception.py +22 -0
  33. onlinepayments/sdk/domain/__init__.py +4 -0
  34. onlinepayments/sdk/domain/acceptance.py +56 -0
  35. onlinepayments/sdk/domain/account_on_file.py +102 -0
  36. onlinepayments/sdk/domain/account_on_file_attribute.py +97 -0
  37. onlinepayments/sdk/domain/account_on_file_display_hints.py +64 -0
  38. onlinepayments/sdk/domain/acquirer_information.py +59 -0
  39. onlinepayments/sdk/domain/acquirer_selection_information.py +73 -0
  40. onlinepayments/sdk/domain/additional_order_input.py +107 -0
  41. onlinepayments/sdk/domain/address.py +145 -0
  42. onlinepayments/sdk/domain/address_personal.py +185 -0
  43. onlinepayments/sdk/domain/airline_data.py +519 -0
  44. onlinepayments/sdk/domain/airline_flight_leg.py +386 -0
  45. onlinepayments/sdk/domain/airline_passenger.py +129 -0
  46. onlinepayments/sdk/domain/amount_breakdown.py +63 -0
  47. onlinepayments/sdk/domain/amount_of_money.py +59 -0
  48. onlinepayments/sdk/domain/api_error.py +177 -0
  49. onlinepayments/sdk/domain/apple_pay_line_item.py +145 -0
  50. onlinepayments/sdk/domain/apple_pay_recurring_payment_request.py +116 -0
  51. onlinepayments/sdk/domain/bank_account_iban.py +37 -0
  52. onlinepayments/sdk/domain/batch_metadata.py +73 -0
  53. onlinepayments/sdk/domain/browser_data.py +130 -0
  54. onlinepayments/sdk/domain/calculate_surcharge_request.py +63 -0
  55. onlinepayments/sdk/domain/calculate_surcharge_response.py +44 -0
  56. onlinepayments/sdk/domain/cancel_payment_batch_request.py +57 -0
  57. onlinepayments/sdk/domain/cancel_payment_request.py +130 -0
  58. onlinepayments/sdk/domain/cancel_payment_response.py +41 -0
  59. onlinepayments/sdk/domain/capture.py +97 -0
  60. onlinepayments/sdk/domain/capture_output.py +272 -0
  61. onlinepayments/sdk/domain/capture_payment_batch_request.py +57 -0
  62. onlinepayments/sdk/domain/capture_payment_request.py +148 -0
  63. onlinepayments/sdk/domain/capture_response.py +99 -0
  64. onlinepayments/sdk/domain/capture_status_output.py +37 -0
  65. onlinepayments/sdk/domain/captures_response.py +46 -0
  66. onlinepayments/sdk/domain/card.py +91 -0
  67. onlinepayments/sdk/domain/card_bin_details.py +384 -0
  68. onlinepayments/sdk/domain/card_data_without_cvv.py +73 -0
  69. onlinepayments/sdk/domain/card_essentials.py +438 -0
  70. onlinepayments/sdk/domain/card_fraud_results.py +112 -0
  71. onlinepayments/sdk/domain/card_info.py +55 -0
  72. onlinepayments/sdk/domain/card_payment_method_specific_input.py +608 -0
  73. onlinepayments/sdk/domain/card_payment_method_specific_input_base.py +441 -0
  74. onlinepayments/sdk/domain/card_payment_method_specific_input_for_hosted_checkout.py +105 -0
  75. onlinepayments/sdk/domain/card_payment_method_specific_output.py +467 -0
  76. onlinepayments/sdk/domain/card_payout_method_specific_input.py +99 -0
  77. onlinepayments/sdk/domain/card_recurrence_details.py +40 -0
  78. onlinepayments/sdk/domain/card_source.py +95 -0
  79. onlinepayments/sdk/domain/card_without_cvv.py +73 -0
  80. onlinepayments/sdk/domain/click_to_pay.py +37 -0
  81. onlinepayments/sdk/domain/company_information.py +37 -0
  82. onlinepayments/sdk/domain/complete_payment_card_payment_method_specific_input.py +39 -0
  83. onlinepayments/sdk/domain/complete_payment_request.py +61 -0
  84. onlinepayments/sdk/domain/complete_payment_response.py +85 -0
  85. onlinepayments/sdk/domain/contact_details.py +109 -0
  86. onlinepayments/sdk/domain/create_certificate_response.py +55 -0
  87. onlinepayments/sdk/domain/create_hosted_checkout_request.py +195 -0
  88. onlinepayments/sdk/domain/create_hosted_checkout_response.py +132 -0
  89. onlinepayments/sdk/domain/create_hosted_fields_session_request.py +37 -0
  90. onlinepayments/sdk/domain/create_hosted_fields_session_response.py +102 -0
  91. onlinepayments/sdk/domain/create_hosted_tokenization_request.py +133 -0
  92. onlinepayments/sdk/domain/create_hosted_tokenization_response.py +127 -0
  93. onlinepayments/sdk/domain/create_mandate_request.py +187 -0
  94. onlinepayments/sdk/domain/create_mandate_response.py +63 -0
  95. onlinepayments/sdk/domain/create_mandate_with_return_url.py +187 -0
  96. onlinepayments/sdk/domain/create_payment_link_request.py +344 -0
  97. onlinepayments/sdk/domain/create_payment_request.py +249 -0
  98. onlinepayments/sdk/domain/create_payment_response.py +85 -0
  99. onlinepayments/sdk/domain/create_payout_request.py +176 -0
  100. onlinepayments/sdk/domain/create_token_request.py +77 -0
  101. onlinepayments/sdk/domain/created_payment_output.py +57 -0
  102. onlinepayments/sdk/domain/created_token_response.py +142 -0
  103. onlinepayments/sdk/domain/credit_card_specific_input_hosted_tokenization.py +66 -0
  104. onlinepayments/sdk/domain/credit_card_validation_rules.py +55 -0
  105. onlinepayments/sdk/domain/credit_card_validation_rules_hosted_tokenization.py +55 -0
  106. onlinepayments/sdk/domain/crm_token.py +55 -0
  107. onlinepayments/sdk/domain/csr_request.py +37 -0
  108. onlinepayments/sdk/domain/currency_conversion.py +59 -0
  109. onlinepayments/sdk/domain/currency_conversion_input.py +55 -0
  110. onlinepayments/sdk/domain/currency_conversion_request.py +59 -0
  111. onlinepayments/sdk/domain/currency_conversion_response.py +81 -0
  112. onlinepayments/sdk/domain/currency_conversion_result.py +61 -0
  113. onlinepayments/sdk/domain/currency_conversion_specific_input.py +40 -0
  114. onlinepayments/sdk/domain/customer.py +234 -0
  115. onlinepayments/sdk/domain/customer_account.py +204 -0
  116. onlinepayments/sdk/domain/customer_account_authentication.py +81 -0
  117. onlinepayments/sdk/domain/customer_bank_account.py +73 -0
  118. onlinepayments/sdk/domain/customer_device.py +155 -0
  119. onlinepayments/sdk/domain/customer_device_output.py +37 -0
  120. onlinepayments/sdk/domain/customer_output.py +41 -0
  121. onlinepayments/sdk/domain/customer_payment_activity.py +73 -0
  122. onlinepayments/sdk/domain/customer_token.py +83 -0
  123. onlinepayments/sdk/domain/data_object.py +47 -0
  124. onlinepayments/sdk/domain/dcc_card_source.py +93 -0
  125. onlinepayments/sdk/domain/dcc_proposal.py +118 -0
  126. onlinepayments/sdk/domain/decrypted_payment_data.py +120 -0
  127. onlinepayments/sdk/domain/detokenization_response.py +46 -0
  128. onlinepayments/sdk/domain/detokenized_token_response.py +145 -0
  129. onlinepayments/sdk/domain/directory_entry.py +73 -0
  130. onlinepayments/sdk/domain/discount.py +41 -0
  131. onlinepayments/sdk/domain/empty_validator.py +16 -0
  132. onlinepayments/sdk/domain/error_response.py +64 -0
  133. onlinepayments/sdk/domain/external_cardholder_authentication_data.py +216 -0
  134. onlinepayments/sdk/domain/external_token_linked.py +75 -0
  135. onlinepayments/sdk/domain/feedbacks.py +64 -0
  136. onlinepayments/sdk/domain/fixed_list_validator.py +42 -0
  137. onlinepayments/sdk/domain/fraud_fields.py +84 -0
  138. onlinepayments/sdk/domain/fraud_results.py +43 -0
  139. onlinepayments/sdk/domain/g_pay_three_d_secure.py +159 -0
  140. onlinepayments/sdk/domain/get_batch_status_response.py +91 -0
  141. onlinepayments/sdk/domain/get_hosted_checkout_response.py +63 -0
  142. onlinepayments/sdk/domain/get_hosted_tokenization_response.py +61 -0
  143. onlinepayments/sdk/domain/get_iin_details_request.py +57 -0
  144. onlinepayments/sdk/domain/get_iin_details_response.py +450 -0
  145. onlinepayments/sdk/domain/get_mandate_response.py +41 -0
  146. onlinepayments/sdk/domain/get_payment_product_groups_response.py +44 -0
  147. onlinepayments/sdk/domain/get_payment_products_response.py +44 -0
  148. onlinepayments/sdk/domain/get_privacy_policy_response.py +37 -0
  149. onlinepayments/sdk/domain/gift_card_purchase.py +59 -0
  150. onlinepayments/sdk/domain/hosted_checkout_specific_input.py +250 -0
  151. onlinepayments/sdk/domain/hosted_checkout_specific_output.py +55 -0
  152. onlinepayments/sdk/domain/iin_detail.py +423 -0
  153. onlinepayments/sdk/domain/import_cof_series_request.py +113 -0
  154. onlinepayments/sdk/domain/import_cof_series_response.py +37 -0
  155. onlinepayments/sdk/domain/label_template_element.py +55 -0
  156. onlinepayments/sdk/domain/length_validator.py +51 -0
  157. onlinepayments/sdk/domain/line_item.py +107 -0
  158. onlinepayments/sdk/domain/line_item_detail.py +99 -0
  159. onlinepayments/sdk/domain/line_item_invoice_data.py +37 -0
  160. onlinepayments/sdk/domain/loan_recipient.py +109 -0
  161. onlinepayments/sdk/domain/lodging_data.py +37 -0
  162. onlinepayments/sdk/domain/mandate_address.py +109 -0
  163. onlinepayments/sdk/domain/mandate_address_response.py +109 -0
  164. onlinepayments/sdk/domain/mandate_contact_details.py +37 -0
  165. onlinepayments/sdk/domain/mandate_customer.py +125 -0
  166. onlinepayments/sdk/domain/mandate_customer_response.py +125 -0
  167. onlinepayments/sdk/domain/mandate_merchant_action.py +61 -0
  168. onlinepayments/sdk/domain/mandate_personal_information.py +59 -0
  169. onlinepayments/sdk/domain/mandate_personal_information_response.py +59 -0
  170. onlinepayments/sdk/domain/mandate_personal_name.py +55 -0
  171. onlinepayments/sdk/domain/mandate_personal_name_response.py +55 -0
  172. onlinepayments/sdk/domain/mandate_redirect_data.py +55 -0
  173. onlinepayments/sdk/domain/mandate_response.py +150 -0
  174. onlinepayments/sdk/domain/market_place.py +55 -0
  175. onlinepayments/sdk/domain/merchant_action.py +132 -0
  176. onlinepayments/sdk/domain/mobile_payment_data.py +55 -0
  177. onlinepayments/sdk/domain/mobile_payment_method_hosted_checkout_specific_input.py +105 -0
  178. onlinepayments/sdk/domain/mobile_payment_method_specific_input.py +202 -0
  179. onlinepayments/sdk/domain/mobile_payment_method_specific_output.py +139 -0
  180. onlinepayments/sdk/domain/mobile_payment_product302_specific_input.py +103 -0
  181. onlinepayments/sdk/domain/mobile_payment_product320_specific_input.py +103 -0
  182. onlinepayments/sdk/domain/mobile_three_d_secure_challenge_parameters.py +91 -0
  183. onlinepayments/sdk/domain/multiple_payment_information.py +57 -0
  184. onlinepayments/sdk/domain/network_token_data.py +127 -0
  185. onlinepayments/sdk/domain/network_token_essentials.py +134 -0
  186. onlinepayments/sdk/domain/network_token_linked.py +80 -0
  187. onlinepayments/sdk/domain/omnichannel_payment_specific_input.py +37 -0
  188. onlinepayments/sdk/domain/omnichannel_payout_specific_input.py +55 -0
  189. onlinepayments/sdk/domain/omnichannel_refund_specific_input.py +37 -0
  190. onlinepayments/sdk/domain/omnichannel_subsequent_specific_input.py +37 -0
  191. onlinepayments/sdk/domain/operation_output.py +161 -0
  192. onlinepayments/sdk/domain/operation_payment_references.py +55 -0
  193. onlinepayments/sdk/domain/order.py +213 -0
  194. onlinepayments/sdk/domain/order_line_details.py +189 -0
  195. onlinepayments/sdk/domain/order_references.py +120 -0
  196. onlinepayments/sdk/domain/order_status_output.py +119 -0
  197. onlinepayments/sdk/domain/order_type_information.py +64 -0
  198. onlinepayments/sdk/domain/other_details.py +55 -0
  199. onlinepayments/sdk/domain/payment_account_on_file.py +57 -0
  200. onlinepayments/sdk/domain/payment_context.py +77 -0
  201. onlinepayments/sdk/domain/payment_creation_output.py +94 -0
  202. onlinepayments/sdk/domain/payment_details_response.py +148 -0
  203. onlinepayments/sdk/domain/payment_error_response.py +84 -0
  204. onlinepayments/sdk/domain/payment_link_event.py +73 -0
  205. onlinepayments/sdk/domain/payment_link_order_input.py +84 -0
  206. onlinepayments/sdk/domain/payment_link_order_output.py +81 -0
  207. onlinepayments/sdk/domain/payment_link_response.py +216 -0
  208. onlinepayments/sdk/domain/payment_link_specific_input.py +74 -0
  209. onlinepayments/sdk/domain/payment_links_response.py +44 -0
  210. onlinepayments/sdk/domain/payment_output.py +335 -0
  211. onlinepayments/sdk/domain/payment_product.py +296 -0
  212. onlinepayments/sdk/domain/payment_product130_specific_input.py +41 -0
  213. onlinepayments/sdk/domain/payment_product130_specific_three_d_secure.py +91 -0
  214. onlinepayments/sdk/domain/payment_product3012.py +55 -0
  215. onlinepayments/sdk/domain/payment_product3012_specific_input.py +100 -0
  216. onlinepayments/sdk/domain/payment_product3013_specific_input.py +73 -0
  217. onlinepayments/sdk/domain/payment_product302_specific_data.py +44 -0
  218. onlinepayments/sdk/domain/payment_product3203_specific_output.py +62 -0
  219. onlinepayments/sdk/domain/payment_product3204_specific_output.py +37 -0
  220. onlinepayments/sdk/domain/payment_product3208_specific_input.py +37 -0
  221. onlinepayments/sdk/domain/payment_product3208_specific_output.py +37 -0
  222. onlinepayments/sdk/domain/payment_product3209_specific_input.py +37 -0
  223. onlinepayments/sdk/domain/payment_product3209_specific_output.py +37 -0
  224. onlinepayments/sdk/domain/payment_product320_specific_data.py +62 -0
  225. onlinepayments/sdk/domain/payment_product350.py +55 -0
  226. onlinepayments/sdk/domain/payment_product5001.py +58 -0
  227. onlinepayments/sdk/domain/payment_product5001_specific_output.py +112 -0
  228. onlinepayments/sdk/domain/payment_product5100_specific_input.py +37 -0
  229. onlinepayments/sdk/domain/payment_product5402_specific_output.py +37 -0
  230. onlinepayments/sdk/domain/payment_product5404.py +55 -0
  231. onlinepayments/sdk/domain/payment_product5407.py +55 -0
  232. onlinepayments/sdk/domain/payment_product5500_specific_output.py +91 -0
  233. onlinepayments/sdk/domain/payment_product771_specific_output.py +37 -0
  234. onlinepayments/sdk/domain/payment_product840.py +37 -0
  235. onlinepayments/sdk/domain/payment_product840_customer_account.py +170 -0
  236. onlinepayments/sdk/domain/payment_product840_specific_output.py +167 -0
  237. onlinepayments/sdk/domain/payment_product_display_hints.py +73 -0
  238. onlinepayments/sdk/domain/payment_product_field.py +95 -0
  239. onlinepayments/sdk/domain/payment_product_field_data_restrictions.py +60 -0
  240. onlinepayments/sdk/domain/payment_product_field_display_element.py +97 -0
  241. onlinepayments/sdk/domain/payment_product_field_display_hints.py +218 -0
  242. onlinepayments/sdk/domain/payment_product_field_form_element.py +72 -0
  243. onlinepayments/sdk/domain/payment_product_field_tooltip.py +57 -0
  244. onlinepayments/sdk/domain/payment_product_field_validators.py +195 -0
  245. onlinepayments/sdk/domain/payment_product_filter.py +67 -0
  246. onlinepayments/sdk/domain/payment_product_filter_hosted_tokenization.py +42 -0
  247. onlinepayments/sdk/domain/payment_product_filters_hosted_checkout.py +62 -0
  248. onlinepayments/sdk/domain/payment_product_filters_hosted_tokenization.py +62 -0
  249. onlinepayments/sdk/domain/payment_product_group.py +103 -0
  250. onlinepayments/sdk/domain/payment_product_networks_response.py +42 -0
  251. onlinepayments/sdk/domain/payment_references.py +73 -0
  252. onlinepayments/sdk/domain/payment_response.py +143 -0
  253. onlinepayments/sdk/domain/payment_status_output.py +152 -0
  254. onlinepayments/sdk/domain/payout_error_response.py +80 -0
  255. onlinepayments/sdk/domain/payout_output.py +63 -0
  256. onlinepayments/sdk/domain/payout_response.py +93 -0
  257. onlinepayments/sdk/domain/payout_result.py +93 -0
  258. onlinepayments/sdk/domain/payout_status_output.py +76 -0
  259. onlinepayments/sdk/domain/pending_authentication.py +37 -0
  260. onlinepayments/sdk/domain/personal_information.py +77 -0
  261. onlinepayments/sdk/domain/personal_information_token.py +39 -0
  262. onlinepayments/sdk/domain/personal_name.py +73 -0
  263. onlinepayments/sdk/domain/personal_name_token.py +51 -0
  264. onlinepayments/sdk/domain/product302_recurring.py +37 -0
  265. onlinepayments/sdk/domain/product320_recurring.py +37 -0
  266. onlinepayments/sdk/domain/product_directory.py +46 -0
  267. onlinepayments/sdk/domain/protection_eligibility.py +59 -0
  268. onlinepayments/sdk/domain/range_validator.py +51 -0
  269. onlinepayments/sdk/domain/rate_details.py +109 -0
  270. onlinepayments/sdk/domain/reattempt_instructions.py +82 -0
  271. onlinepayments/sdk/domain/reattempt_instructions_conditions.py +55 -0
  272. onlinepayments/sdk/domain/redirect_data.py +55 -0
  273. onlinepayments/sdk/domain/redirect_payment_method_specific_input.py +575 -0
  274. onlinepayments/sdk/domain/redirect_payment_method_specific_output.py +267 -0
  275. onlinepayments/sdk/domain/redirect_payment_product11_specific_input.py +38 -0
  276. onlinepayments/sdk/domain/redirect_payment_product3103_specific_input.py +40 -0
  277. onlinepayments/sdk/domain/redirect_payment_product3112_specific_input.py +40 -0
  278. onlinepayments/sdk/domain/redirect_payment_product3116_specific_input.py +40 -0
  279. onlinepayments/sdk/domain/redirect_payment_product3203_specific_input.py +40 -0
  280. onlinepayments/sdk/domain/redirect_payment_product3204_specific_input.py +55 -0
  281. onlinepayments/sdk/domain/redirect_payment_product3302_specific_input.py +73 -0
  282. onlinepayments/sdk/domain/redirect_payment_product3306_specific_input.py +37 -0
  283. onlinepayments/sdk/domain/redirect_payment_product3307_specific_input.py +16 -0
  284. onlinepayments/sdk/domain/redirect_payment_product5001_specific_input.py +62 -0
  285. onlinepayments/sdk/domain/redirect_payment_product5300_specific_input.py +163 -0
  286. onlinepayments/sdk/domain/redirect_payment_product5402_specific_input.py +40 -0
  287. onlinepayments/sdk/domain/redirect_payment_product5403_specific_input.py +40 -0
  288. onlinepayments/sdk/domain/redirect_payment_product5406_specific_input.py +41 -0
  289. onlinepayments/sdk/domain/redirect_payment_product5408_specific_input.py +60 -0
  290. onlinepayments/sdk/domain/redirect_payment_product5410_specific_input.py +38 -0
  291. onlinepayments/sdk/domain/redirect_payment_product5412_specific_input.py +55 -0
  292. onlinepayments/sdk/domain/redirect_payment_product5601_specific_input.py +40 -0
  293. onlinepayments/sdk/domain/redirect_payment_product809_specific_input.py +40 -0
  294. onlinepayments/sdk/domain/redirect_payment_product840_specific_input.py +100 -0
  295. onlinepayments/sdk/domain/redirection_data.py +37 -0
  296. onlinepayments/sdk/domain/refund_card_method_specific_output.py +71 -0
  297. onlinepayments/sdk/domain/refund_e_wallet_method_specific_output.py +71 -0
  298. onlinepayments/sdk/domain/refund_error_response.py +82 -0
  299. onlinepayments/sdk/domain/refund_mobile_method_specific_output.py +69 -0
  300. onlinepayments/sdk/domain/refund_output.py +217 -0
  301. onlinepayments/sdk/domain/refund_payment_batch_request.py +57 -0
  302. onlinepayments/sdk/domain/refund_payment_product840_customer_account.py +69 -0
  303. onlinepayments/sdk/domain/refund_payment_product840_specific_output.py +39 -0
  304. onlinepayments/sdk/domain/refund_redirect_method_specific_output.py +51 -0
  305. onlinepayments/sdk/domain/refund_redirect_payment_method_specific_input.py +41 -0
  306. onlinepayments/sdk/domain/refund_redirect_payment_product900_specific_input.py +37 -0
  307. onlinepayments/sdk/domain/refund_request.py +210 -0
  308. onlinepayments/sdk/domain/refund_response.py +97 -0
  309. onlinepayments/sdk/domain/refunds_response.py +46 -0
  310. onlinepayments/sdk/domain/regular_expression_validator.py +35 -0
  311. onlinepayments/sdk/domain/revoke_mandate_request.py +48 -0
  312. onlinepayments/sdk/domain/send_test_request.py +37 -0
  313. onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input.py +59 -0
  314. onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input_base.py +59 -0
  315. onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_output.py +81 -0
  316. onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input.py +59 -0
  317. onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input_base.py +59 -0
  318. onlinepayments/sdk/domain/session_data.py +116 -0
  319. onlinepayments/sdk/domain/session_details.py +55 -0
  320. onlinepayments/sdk/domain/session_request.py +44 -0
  321. onlinepayments/sdk/domain/session_response.py +114 -0
  322. onlinepayments/sdk/domain/shipping.py +214 -0
  323. onlinepayments/sdk/domain/shipping_detail.py +63 -0
  324. onlinepayments/sdk/domain/shipping_method.py +91 -0
  325. onlinepayments/sdk/domain/shopping_cart.py +155 -0
  326. onlinepayments/sdk/domain/shopping_cart_extension.py +77 -0
  327. onlinepayments/sdk/domain/shopping_cart_output.py +46 -0
  328. onlinepayments/sdk/domain/show_form_data.py +173 -0
  329. onlinepayments/sdk/domain/show_instructions_data.py +37 -0
  330. onlinepayments/sdk/domain/split_payment_product_filter.py +42 -0
  331. onlinepayments/sdk/domain/split_payment_product_filters_hosted_checkout.py +62 -0
  332. onlinepayments/sdk/domain/submit_batch_request_body.py +230 -0
  333. onlinepayments/sdk/domain/submit_batch_response.py +55 -0
  334. onlinepayments/sdk/domain/subsequent_card_payment_method_specific_input.py +175 -0
  335. onlinepayments/sdk/domain/subsequent_payment_batch_request.py +57 -0
  336. onlinepayments/sdk/domain/subsequent_payment_product5001_specific_input.py +41 -0
  337. onlinepayments/sdk/domain/subsequent_payment_request.py +107 -0
  338. onlinepayments/sdk/domain/subsequent_payment_response.py +41 -0
  339. onlinepayments/sdk/domain/surcharge.py +141 -0
  340. onlinepayments/sdk/domain/surcharge_calculation_card.py +55 -0
  341. onlinepayments/sdk/domain/surcharge_for_payment_link.py +40 -0
  342. onlinepayments/sdk/domain/surcharge_rate.py +91 -0
  343. onlinepayments/sdk/domain/surcharge_specific_input.py +62 -0
  344. onlinepayments/sdk/domain/surcharge_specific_output.py +84 -0
  345. onlinepayments/sdk/domain/test_connection.py +35 -0
  346. onlinepayments/sdk/domain/three_d_secure.py +281 -0
  347. onlinepayments/sdk/domain/three_d_secure_base.py +219 -0
  348. onlinepayments/sdk/domain/three_d_secure_data.py +78 -0
  349. onlinepayments/sdk/domain/three_d_secure_results.py +266 -0
  350. onlinepayments/sdk/domain/token_card.py +57 -0
  351. onlinepayments/sdk/domain/token_card_data.py +83 -0
  352. onlinepayments/sdk/domain/token_card_specific_input.py +41 -0
  353. onlinepayments/sdk/domain/token_data.py +63 -0
  354. onlinepayments/sdk/domain/token_e_wallet.py +59 -0
  355. onlinepayments/sdk/domain/token_response.py +181 -0
  356. onlinepayments/sdk/domain/transaction.py +41 -0
  357. onlinepayments/sdk/domain/uploadable_file.py +51 -0
  358. onlinepayments/sdk/domain/validate_credentials_request.py +55 -0
  359. onlinepayments/sdk/domain/validate_credentials_response.py +37 -0
  360. onlinepayments/sdk/domain/value_mapping_element.py +62 -0
  361. onlinepayments/sdk/domain/web_hooks_event.py +214 -0
  362. onlinepayments/sdk/exception_factory.py +75 -0
  363. onlinepayments/sdk/factory.py +127 -0
  364. onlinepayments/sdk/i_client.py +78 -0
  365. onlinepayments/sdk/i_communicator.py +180 -0
  366. onlinepayments/sdk/idempotence_exception.py +36 -0
  367. onlinepayments/sdk/json/__init__.py +0 -0
  368. onlinepayments/sdk/json/default_marshaller.py +60 -0
  369. onlinepayments/sdk/json/marshaller.py +32 -0
  370. onlinepayments/sdk/json/marshaller_syntax_exception.py +13 -0
  371. onlinepayments/sdk/log/__init__.py +0 -0
  372. onlinepayments/sdk/log/body_obfuscator.py +113 -0
  373. onlinepayments/sdk/log/communicator_logger.py +35 -0
  374. onlinepayments/sdk/log/header_obfuscator.py +49 -0
  375. onlinepayments/sdk/log/log_message.py +94 -0
  376. onlinepayments/sdk/log/logging_capable.py +26 -0
  377. onlinepayments/sdk/log/obfuscation_capable.py +24 -0
  378. onlinepayments/sdk/log/obfuscation_rule.py +50 -0
  379. onlinepayments/sdk/log/python_communicator_logger.py +54 -0
  380. onlinepayments/sdk/log/request_log_message.py +28 -0
  381. onlinepayments/sdk/log/response_log_message.py +37 -0
  382. onlinepayments/sdk/log/sys_out_communicator_logger.py +36 -0
  383. onlinepayments/sdk/merchant/__init__.py +4 -0
  384. onlinepayments/sdk/merchant/captures/__init__.py +4 -0
  385. onlinepayments/sdk/merchant/captures/captures_client.py +63 -0
  386. onlinepayments/sdk/merchant/captures/i_captures_client.py +34 -0
  387. onlinepayments/sdk/merchant/cofseries/__init__.py +4 -0
  388. onlinepayments/sdk/merchant/cofseries/cof_series_client.py +62 -0
  389. onlinepayments/sdk/merchant/cofseries/i_cof_series_client.py +35 -0
  390. onlinepayments/sdk/merchant/complete/__init__.py +4 -0
  391. onlinepayments/sdk/merchant/complete/complete_client.py +67 -0
  392. onlinepayments/sdk/merchant/complete/i_complete_client.py +37 -0
  393. onlinepayments/sdk/merchant/hostedcheckout/__init__.py +4 -0
  394. onlinepayments/sdk/merchant/hostedcheckout/hosted_checkout_client.py +99 -0
  395. onlinepayments/sdk/merchant/hostedcheckout/i_hosted_checkout_client.py +55 -0
  396. onlinepayments/sdk/merchant/hostedfields/__init__.py +4 -0
  397. onlinepayments/sdk/merchant/hostedfields/hosted_fields_client.py +62 -0
  398. onlinepayments/sdk/merchant/hostedfields/i_hosted_fields_client.py +35 -0
  399. onlinepayments/sdk/merchant/hostedtokenization/__init__.py +4 -0
  400. onlinepayments/sdk/merchant/hostedtokenization/hosted_tokenization_client.py +99 -0
  401. onlinepayments/sdk/merchant/hostedtokenization/i_hosted_tokenization_client.py +55 -0
  402. onlinepayments/sdk/merchant/i_merchant_client.py +202 -0
  403. onlinepayments/sdk/merchant/mandates/__init__.py +4 -0
  404. onlinepayments/sdk/merchant/mandates/i_mandates_client.py +114 -0
  405. onlinepayments/sdk/merchant/mandates/mandates_client.py +212 -0
  406. onlinepayments/sdk/merchant/merchant_client.py +232 -0
  407. onlinepayments/sdk/merchant/merchantbatch/__init__.py +4 -0
  408. onlinepayments/sdk/merchant/merchantbatch/i_merchant_batch_client.py +74 -0
  409. onlinepayments/sdk/merchant/merchantbatch/merchant_batch_client.py +138 -0
  410. onlinepayments/sdk/merchant/paymentlinks/__init__.py +4 -0
  411. onlinepayments/sdk/merchant/paymentlinks/get_payment_links_in_bulk_params.py +36 -0
  412. onlinepayments/sdk/merchant/paymentlinks/i_payment_links_client.py +73 -0
  413. onlinepayments/sdk/merchant/paymentlinks/payment_links_client.py +135 -0
  414. onlinepayments/sdk/merchant/payments/__init__.py +4 -0
  415. onlinepayments/sdk/merchant/payments/i_payments_client.py +143 -0
  416. onlinepayments/sdk/merchant/payments/payments_client.py +260 -0
  417. onlinepayments/sdk/merchant/payouts/__init__.py +4 -0
  418. onlinepayments/sdk/merchant/payouts/i_payouts_client.py +55 -0
  419. onlinepayments/sdk/merchant/payouts/payouts_client.py +100 -0
  420. onlinepayments/sdk/merchant/privacypolicy/__init__.py +4 -0
  421. onlinepayments/sdk/merchant/privacypolicy/get_privacy_policy_params.py +54 -0
  422. onlinepayments/sdk/merchant/privacypolicy/i_privacy_policy_client.py +36 -0
  423. onlinepayments/sdk/merchant/privacypolicy/privacy_policy_client.py +61 -0
  424. onlinepayments/sdk/merchant/productgroups/__init__.py +4 -0
  425. onlinepayments/sdk/merchant/productgroups/get_product_group_params.py +140 -0
  426. onlinepayments/sdk/merchant/productgroups/get_product_groups_params.py +140 -0
  427. onlinepayments/sdk/merchant/productgroups/i_product_groups_client.py +58 -0
  428. onlinepayments/sdk/merchant/productgroups/product_groups_client.py +100 -0
  429. onlinepayments/sdk/merchant/products/__init__.py +4 -0
  430. onlinepayments/sdk/merchant/products/get_payment_product_networks_params.py +89 -0
  431. onlinepayments/sdk/merchant/products/get_payment_product_params.py +138 -0
  432. onlinepayments/sdk/merchant/products/get_payment_products_params.py +138 -0
  433. onlinepayments/sdk/merchant/products/get_product_directory_params.py +54 -0
  434. onlinepayments/sdk/merchant/products/i_products_client.py +102 -0
  435. onlinepayments/sdk/merchant/products/products_client.py +178 -0
  436. onlinepayments/sdk/merchant/refunds/__init__.py +4 -0
  437. onlinepayments/sdk/merchant/refunds/i_refunds_client.py +34 -0
  438. onlinepayments/sdk/merchant/refunds/refunds_client.py +63 -0
  439. onlinepayments/sdk/merchant/services/__init__.py +4 -0
  440. onlinepayments/sdk/merchant/services/i_services_client.py +96 -0
  441. onlinepayments/sdk/merchant/services/services_client.py +167 -0
  442. onlinepayments/sdk/merchant/sessions/__init__.py +4 -0
  443. onlinepayments/sdk/merchant/sessions/i_sessions_client.py +35 -0
  444. onlinepayments/sdk/merchant/sessions/sessions_client.py +62 -0
  445. onlinepayments/sdk/merchant/subsequent/__init__.py +4 -0
  446. onlinepayments/sdk/merchant/subsequent/i_subsequent_client.py +37 -0
  447. onlinepayments/sdk/merchant/subsequent/subsequent_client.py +67 -0
  448. onlinepayments/sdk/merchant/tokenization/__init__.py +4 -0
  449. onlinepayments/sdk/merchant/tokenization/get_card_data_by_payments_params.py +48 -0
  450. onlinepayments/sdk/merchant/tokenization/get_card_data_by_tokens_params.py +48 -0
  451. onlinepayments/sdk/merchant/tokenization/i_tokenization_client.py +77 -0
  452. onlinepayments/sdk/merchant/tokenization/tokenization_client.py +131 -0
  453. onlinepayments/sdk/merchant/tokens/__init__.py +4 -0
  454. onlinepayments/sdk/merchant/tokens/i_tokens_client.py +74 -0
  455. onlinepayments/sdk/merchant/tokens/tokens_client.py +135 -0
  456. onlinepayments/sdk/merchant/webhooks/__init__.py +4 -0
  457. onlinepayments/sdk/merchant/webhooks/i_webhooks_client.py +55 -0
  458. onlinepayments/sdk/merchant/webhooks/webhooks_client.py +97 -0
  459. onlinepayments/sdk/platform_exception.py +19 -0
  460. onlinepayments/sdk/proxy_configuration.py +102 -0
  461. onlinepayments/sdk/reference_exception.py +19 -0
  462. onlinepayments/sdk/validation_exception.py +19 -0
  463. onlinepayments/sdk/webhooks/__init__.py +0 -0
  464. onlinepayments/sdk/webhooks/api_version_mismatch_exception.py +24 -0
  465. onlinepayments/sdk/webhooks/in_memory_secret_key_store.py +48 -0
  466. onlinepayments/sdk/webhooks/secret_key_not_available_exception.py +18 -0
  467. onlinepayments/sdk/webhooks/secret_key_store.py +15 -0
  468. onlinepayments/sdk/webhooks/signature_validation_exception.py +17 -0
  469. onlinepayments/sdk/webhooks/signature_validator.py +56 -0
  470. onlinepayments/sdk/webhooks/webhooks_helper.py +52 -0
  471. onlinepayments_sdk_python3-7.4.1.dist-info/METADATA +154 -0
  472. onlinepayments_sdk_python3-7.4.1.dist-info/RECORD +475 -0
  473. onlinepayments_sdk_python3-7.4.1.dist-info/WHEEL +5 -0
  474. onlinepayments_sdk_python3-7.4.1.dist-info/licenses/LICENSE.txt +52 -0
  475. onlinepayments_sdk_python3-7.4.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,264 @@
1
+ from configparser import ConfigParser, NoOptionError
2
+ from typing import Optional, Union
3
+ from urllib.parse import urlparse, ParseResult
4
+
5
+ from .proxy_configuration import ProxyConfiguration
6
+
7
+ from onlinepayments.sdk.authentication.authorization_type import AuthorizationType
8
+ from onlinepayments.sdk.domain.shopping_cart_extension import ShoppingCartExtension
9
+
10
+
11
+ # pylint: disable=too-many-instance-attributes
12
+ # Necessary to load information from config
13
+ class CommunicatorConfiguration(object):
14
+ """
15
+ Configuration for the communicator.
16
+ """
17
+ # The default number of maximum connections.
18
+ DEFAULT_MAX_CONNECTIONS = 10
19
+
20
+ __api_endpoint: Optional[ParseResult] = None
21
+ __connect_timeout: Optional[int] = None
22
+ __socket_timeout: Optional[int] = None
23
+ __max_connections: Optional[int] = None
24
+ __authorization_type: Optional[str] = None
25
+ __api_key_id: Optional[str] = None
26
+ __secret_api_key: Optional[str] = None
27
+ __proxy_configuration: Optional[ProxyConfiguration] = None
28
+ __integrator: Optional[str] = None
29
+ __shopping_cart_extension: Optional[ShoppingCartExtension] = None
30
+
31
+ def __init__(self, properties: Optional[ConfigParser] = None,
32
+ api_endpoint: Union[str, ParseResult, None] = None,
33
+ api_key_id: Optional[str] = None, secret_api_key: Optional[str] = None,
34
+ authorization_type: Optional[str] = None,
35
+ connect_timeout: Optional[int] = None, socket_timeout: Optional[int] = None,
36
+ max_connections: Optional[int] = None, proxy_configuration: Optional[ProxyConfiguration] = None,
37
+ integrator: Optional[str] = None, shopping_cart_extension: Optional[ShoppingCartExtension] = None):
38
+ """
39
+ :param properties: a ConfigParser.ConfigParser object containing configuration data
40
+ :param connect_timeout: connection timeout for the network communication in seconds
41
+ :param socket_timeout: socket timeout for the network communication in seconds
42
+ :param max_connections: The maximum number of connections in the connection pool
43
+ """
44
+ if properties and properties.sections() and properties.options("OnlinePaymentsSDK"):
45
+ self.__api_endpoint = self.__get_endpoint(properties)
46
+ authorization = properties.get("OnlinePaymentsSDK", "onlinePayments.api.authorizationType")
47
+ self.__authorization_type = AuthorizationType.get_authorization(authorization)
48
+ self.__connect_timeout = int(properties.get("OnlinePaymentsSDK", "onlinePayments.api.connectTimeout"))
49
+ self.__socket_timeout = int(properties.get("OnlinePaymentsSDK", "onlinePayments.api.socketTimeout"))
50
+ self.__max_connections = self.__get_property(properties, "onlinePayments.api.maxConnections",
51
+ self.DEFAULT_MAX_CONNECTIONS)
52
+ try:
53
+ proxy_uri = properties.get("OnlinePaymentsSDK", "onlinePayments.api.proxy.uri")
54
+ except NoOptionError:
55
+ proxy_uri = None
56
+ try:
57
+ proxy_user = properties.get("OnlinePaymentsSDK", "onlinePayments.api.proxy.username")
58
+ except NoOptionError:
59
+ proxy_user = None
60
+ try:
61
+ proxy_pass = properties.get("OnlinePaymentsSDK", "onlinePayments.api.proxy.password")
62
+ except NoOptionError:
63
+ proxy_pass = None
64
+ if proxy_uri is not None:
65
+ self.__proxy_configuration = ProxyConfiguration.from_uri(proxy_uri, proxy_user, proxy_pass)
66
+ else:
67
+ self.__proxy_configuration = None
68
+ try:
69
+ self.__integrator = properties.get("OnlinePaymentsSDK", "onlinePayments.api.integrator")
70
+ except NoOptionError:
71
+ self.__integrator = None
72
+ try:
73
+ self.__shopping_cart_extension = self.__get_shopping_cart_extension(properties)
74
+ except NoOptionError:
75
+ self.__shopping_cart_extension = None
76
+
77
+ if api_endpoint:
78
+ self.api_endpoint = api_endpoint
79
+ if api_key_id:
80
+ self.api_key_id = api_key_id
81
+ if secret_api_key:
82
+ self.secret_api_key = secret_api_key
83
+ if authorization_type:
84
+ self.authorization_type = authorization_type
85
+ if connect_timeout:
86
+ self.connect_timeout = connect_timeout
87
+ if socket_timeout:
88
+ self.socket_timeout = socket_timeout
89
+ if max_connections:
90
+ self.max_connections = max_connections
91
+ if proxy_configuration:
92
+ self.proxy_configuration = proxy_configuration
93
+ if integrator:
94
+ self.integrator = integrator
95
+ if shopping_cart_extension:
96
+ self.shopping_cart_extension = shopping_cart_extension
97
+
98
+ @staticmethod
99
+ def __get_property(properties: ConfigParser, key: str, default_value: int) -> int:
100
+ try:
101
+ property_value = properties.get("OnlinePaymentsSDK", key)
102
+ except NoOptionError:
103
+ property_value = None
104
+ if property_value is not None:
105
+ return int(property_value)
106
+ else:
107
+ return default_value
108
+
109
+ def __get_endpoint(self, properties: ConfigParser) -> ParseResult:
110
+ host = properties.get("OnlinePaymentsSDK", "onlinePayments.api.endpoint.host")
111
+ try:
112
+ scheme = properties.get("OnlinePaymentsSDK", "onlinePayments.api.endpoint.scheme")
113
+ except NoOptionError:
114
+ scheme = None
115
+ try:
116
+ port = properties.get("OnlinePaymentsSDK", "onlinePayments.api.endpoint.port")
117
+ except NoOptionError:
118
+ port = None
119
+ if scheme:
120
+ if port:
121
+ return self.__create_uri(scheme, host, int(port))
122
+ else:
123
+ return self.__create_uri(scheme, host, -1)
124
+ elif port:
125
+ return self.__create_uri("https", host, int(port))
126
+ else:
127
+ return self.__create_uri("https", host, -1)
128
+
129
+ @staticmethod
130
+ def __create_uri(scheme: str, host: str, port: int) -> ParseResult:
131
+ if port != -1:
132
+ uri = scheme + "://" + host + ":" + str(port)
133
+ else:
134
+ uri = scheme + "://" + host
135
+ url = urlparse(uri)
136
+ if url.scheme.lower() not in ["http", "https"] or not url.netloc:
137
+ raise ValueError("Unable to construct endpoint URI")
138
+ return url
139
+
140
+ @staticmethod
141
+ def __get_shopping_cart_extension(properties: ConfigParser) -> Optional[ShoppingCartExtension]:
142
+ try:
143
+ creator = properties.get("OnlinePaymentsSDK", "onlinePayments.api.shoppingCartExtension.creator")
144
+ except NoOptionError:
145
+ creator = None
146
+ try:
147
+ name = properties.get("OnlinePaymentsSDK", "onlinePayments.api.shoppingCartExtension.name")
148
+ except NoOptionError:
149
+ name = None
150
+ try:
151
+ version = properties.get("OnlinePaymentsSDK", "onlinePayments.api.shoppingCartExtension.version")
152
+ except NoOptionError:
153
+ version = None
154
+ try:
155
+ extension_id = properties.get("OnlinePaymentsSDK", "onlinePayments.api.shoppingCartExtension.extensionId")
156
+ except NoOptionError:
157
+ extension_id = None
158
+ if creator is None and name is None and version is None and extension_id is None:
159
+ return None
160
+ else:
161
+ return ShoppingCartExtension(creator, name, version, extension_id)
162
+
163
+ @property
164
+ def api_endpoint(self) -> Optional[ParseResult]:
165
+ """
166
+ The Online Payments platform API endpoint URI.
167
+ """
168
+ return self.__api_endpoint
169
+
170
+ @api_endpoint.setter
171
+ def api_endpoint(self, api_endpoint: Union[str, ParseResult, None]) -> None:
172
+ if isinstance(api_endpoint, str):
173
+ api_endpoint = urlparse(str(api_endpoint))
174
+ if api_endpoint is not None and api_endpoint.path:
175
+ raise ValueError("apiEndpoint should not contain a path")
176
+ if api_endpoint is not None and \
177
+ (api_endpoint.username is not None or api_endpoint.query or api_endpoint.fragment):
178
+ raise ValueError("apiEndpoint should not contain user info, query or fragment")
179
+ self.__api_endpoint = api_endpoint
180
+
181
+ @property
182
+ def api_key_id(self) -> Optional[str]:
183
+ """
184
+ An identifier for the secret API key. The api_key_id can be
185
+ retrieved from the Configuration Center. This identifier is visible in
186
+ the HTTP request and is also used to identify the correct account.
187
+ """
188
+ return self.__api_key_id
189
+
190
+ @api_key_id.setter
191
+ def api_key_id(self, api_key_id: Optional[str]) -> None:
192
+ self.__api_key_id = api_key_id
193
+
194
+ @property
195
+ def secret_api_key(self) -> Optional[str]:
196
+ """
197
+ A shared secret. The shared secret can be retrieved from the
198
+ Configuration Center. An api_key_id and secret_api_key always go
199
+ hand-in-hand, the difference is that secret_api_key is never visible in
200
+ the HTTP request. This secret is used as input for the HMAC algorithm.
201
+ """
202
+ return self.__secret_api_key
203
+
204
+ @secret_api_key.setter
205
+ def secret_api_key(self, secret_api_key: Optional[str]) -> None:
206
+ self.__secret_api_key = secret_api_key
207
+
208
+ @property
209
+ def authorization_type(self) -> Optional[str]:
210
+ return self.__authorization_type
211
+
212
+ @authorization_type.setter
213
+ def authorization_type(self, authorization_type: Optional[str]) -> None:
214
+ self.__authorization_type = authorization_type
215
+
216
+ @property
217
+ def connect_timeout(self) -> Optional[int]:
218
+ """Connection timeout for the underlying network communication in seconds"""
219
+ return self.__connect_timeout
220
+
221
+ @connect_timeout.setter
222
+ def connect_timeout(self, connect_timeout: Optional[int]) -> None:
223
+ self.__connect_timeout = connect_timeout
224
+
225
+ @property
226
+ def socket_timeout(self) -> Optional[int]:
227
+ """Socket timeout for the underlying network communication in seconds"""
228
+ return self.__socket_timeout
229
+
230
+ @socket_timeout.setter
231
+ def socket_timeout(self, socket_timeout: Optional[int]) -> None:
232
+ self.__socket_timeout = socket_timeout
233
+
234
+ @property
235
+ def max_connections(self) -> Optional[int]:
236
+ return self.__max_connections
237
+
238
+ @max_connections.setter
239
+ def max_connections(self, max_connections: Optional[int]) -> None:
240
+ self.__max_connections = max_connections
241
+
242
+ @property
243
+ def proxy_configuration(self) -> Optional[ProxyConfiguration]:
244
+ return self.__proxy_configuration
245
+
246
+ @proxy_configuration.setter
247
+ def proxy_configuration(self, proxy_configuration: Optional[ProxyConfiguration]) -> None:
248
+ self.__proxy_configuration = proxy_configuration
249
+
250
+ @property
251
+ def integrator(self) -> Optional[str]:
252
+ return self.__integrator
253
+
254
+ @integrator.setter
255
+ def integrator(self, integrator: Optional[str]) -> None:
256
+ self.__integrator = integrator
257
+
258
+ @property
259
+ def shopping_cart_extension(self) -> Optional[ShoppingCartExtension]:
260
+ return self.__shopping_cart_extension
261
+
262
+ @shopping_cart_extension.setter
263
+ def shopping_cart_extension(self, shopping_cart_extension: Optional[ShoppingCartExtension]) -> None:
264
+ self.__shopping_cart_extension = shopping_cart_extension
@@ -0,0 +1,46 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .declined_transaction_exception import DeclinedTransactionException
8
+
9
+ from onlinepayments.sdk.domain.create_payment_response import CreatePaymentResponse
10
+ from onlinepayments.sdk.domain.payment_error_response import PaymentErrorResponse
11
+
12
+
13
+ class DeclinedPaymentException(DeclinedTransactionException):
14
+ """
15
+ Represents an error response from a create payment call.
16
+ """
17
+
18
+ def __init__(self, status_code: int, response_body: str, response: Optional[PaymentErrorResponse]):
19
+ if response is not None:
20
+ super(DeclinedPaymentException, self).__init__(status_code, response_body, response.error_id, response.errors,
21
+ DeclinedPaymentException.__create_message(response))
22
+ else:
23
+ super(DeclinedPaymentException, self).__init__(status_code, response_body, None, None,
24
+ DeclinedPaymentException.__create_message(response))
25
+ self.__response = response
26
+
27
+ @staticmethod
28
+ def __create_message(response: Optional[PaymentErrorResponse]) -> str:
29
+ if response is not None and response.payment_result is not None:
30
+ payment = response.payment_result.payment
31
+ else:
32
+ payment = None
33
+ if payment is not None:
34
+ return "declined payment '%s' with status '%s'" % (payment.id, payment.status)
35
+ else:
36
+ return "the payment platform returned a declined payment response"
37
+
38
+ @property
39
+ def create_payment_response(self) -> Optional[CreatePaymentResponse]:
40
+ """
41
+ :return: The result of creating a payment if available, otherwise None.
42
+ """
43
+ if self.__response is None:
44
+ return None
45
+ else:
46
+ return self.__response.payment_result
@@ -0,0 +1,46 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .declined_transaction_exception import DeclinedTransactionException
8
+
9
+ from onlinepayments.sdk.domain.payout_error_response import PayoutErrorResponse
10
+ from onlinepayments.sdk.domain.payout_result import PayoutResult
11
+
12
+
13
+ class DeclinedPayoutException(DeclinedTransactionException):
14
+ """
15
+ Represents an error response from a payout call.
16
+ """
17
+
18
+ def __init__(self, status_code: int, response_body: str, response: Optional[PayoutErrorResponse]):
19
+ if response is not None:
20
+ super(DeclinedPayoutException, self).__init__(status_code, response_body, response.error_id, response.errors,
21
+ DeclinedPayoutException.__create_message(response))
22
+ else:
23
+ super(DeclinedPayoutException, self).__init__(status_code, response_body, None, None,
24
+ DeclinedPayoutException.__create_message(response))
25
+ self.__response = response
26
+
27
+ @staticmethod
28
+ def __create_message(response: Optional[PayoutErrorResponse]) -> str:
29
+ if response is not None:
30
+ payout_result = response.payout_result
31
+ else:
32
+ payout_result = None
33
+ if payout_result is not None:
34
+ return "declined payout '%s' with status '%s'" % (payout_result.id, payout_result.status)
35
+ else:
36
+ return "the payment platform returned a declined payout response"
37
+
38
+ @property
39
+ def payout_result(self) -> Optional[PayoutResult]:
40
+ """
41
+ :return: The result of creating a payout if available, otherwise None.
42
+ """
43
+ if self.__response is None:
44
+ return None
45
+ else:
46
+ return self.__response.payout_result
@@ -0,0 +1,46 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import Optional
6
+
7
+ from .declined_transaction_exception import DeclinedTransactionException
8
+
9
+ from onlinepayments.sdk.domain.refund_error_response import RefundErrorResponse
10
+ from onlinepayments.sdk.domain.refund_response import RefundResponse
11
+
12
+
13
+ class DeclinedRefundException(DeclinedTransactionException):
14
+ """
15
+ Represents an error response from a refund call.
16
+ """
17
+
18
+ def __init__(self, status_code: int, response_body: str, response: Optional[RefundErrorResponse]):
19
+ if response is not None:
20
+ super(DeclinedRefundException, self).__init__(status_code, response_body, response.error_id, response.errors,
21
+ DeclinedRefundException.__create_message(response))
22
+ else:
23
+ super(DeclinedRefundException, self).__init__(status_code, response_body, None, None,
24
+ DeclinedRefundException.__create_message(response))
25
+ self.__response = response
26
+
27
+ @staticmethod
28
+ def __create_message(response: Optional[RefundErrorResponse]) -> str:
29
+ if response is not None:
30
+ refund_result = response.refund_result
31
+ else:
32
+ refund_result = None
33
+ if refund_result is not None:
34
+ return "declined refund '%s' with status '%s'" % (refund_result.id, refund_result.status)
35
+ else:
36
+ return "the payment platform returned a declined refund response"
37
+
38
+ @property
39
+ def refund_response(self) -> Optional[RefundResponse]:
40
+ """
41
+ :return: The result of creating a refund if available, otherwise None.
42
+ """
43
+ if self.__response is None:
44
+ return None
45
+ else:
46
+ return self.__response.refund_result
@@ -0,0 +1,22 @@
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 DeclinedTransactionException(ApiException):
13
+ """
14
+ Represents an error response from a create payment, payout or refund call.
15
+ """
16
+
17
+ def __init__(self, status_code: int, response_body: str, error_id: Optional[str], errors: Optional[List[APIError]],
18
+ message: Optional[str] = None):
19
+ if message:
20
+ super(DeclinedTransactionException, self).__init__(status_code, response_body, error_id, errors, message)
21
+ else:
22
+ super(DeclinedTransactionException, self).__init__(status_code, response_body, error_id, errors)
@@ -0,0 +1,4 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
@@ -0,0 +1,56 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from datetime import datetime
6
+ from typing import Optional
7
+
8
+ from .data_object import DataObject
9
+
10
+
11
+ class Acceptance(DataObject):
12
+
13
+ __acceptance_system_application_id: Optional[str] = None
14
+ __authorization_date: Optional[datetime] = None
15
+
16
+ @property
17
+ def acceptance_system_application_id(self) -> Optional[str]:
18
+ """
19
+ | Worldline application identifier used to transmit the authorization request. This data is transmitted as provided in the authorization request and in the response. It is named ITP (Terminal Application Identification at the Point of Acceptance) in the CB2A protocol.
20
+
21
+ Type: str
22
+ """
23
+ return self.__acceptance_system_application_id
24
+
25
+ @acceptance_system_application_id.setter
26
+ def acceptance_system_application_id(self, value: Optional[str]) -> None:
27
+ self.__acceptance_system_application_id = value
28
+
29
+ @property
30
+ def authorization_date(self) -> Optional[datetime]:
31
+ """
32
+ | It is the authorization processing date and time of the transaction.
33
+
34
+ Type: datetime
35
+ """
36
+ return self.__authorization_date
37
+
38
+ @authorization_date.setter
39
+ def authorization_date(self, value: Optional[datetime]) -> None:
40
+ self.__authorization_date = value
41
+
42
+ def to_dictionary(self) -> dict:
43
+ dictionary = super(Acceptance, self).to_dictionary()
44
+ if self.acceptance_system_application_id is not None:
45
+ dictionary['acceptanceSystemApplicationId'] = self.acceptance_system_application_id
46
+ if self.authorization_date is not None:
47
+ dictionary['authorizationDate'] = DataObject.format_datetime(self.authorization_date)
48
+ return dictionary
49
+
50
+ def from_dictionary(self, dictionary: dict) -> 'Acceptance':
51
+ super(Acceptance, self).from_dictionary(dictionary)
52
+ if 'acceptanceSystemApplicationId' in dictionary:
53
+ self.acceptance_system_application_id = dictionary['acceptanceSystemApplicationId']
54
+ if 'authorizationDate' in dictionary:
55
+ self.authorization_date = DataObject.parse_datetime(dictionary['authorizationDate'])
56
+ return self
@@ -0,0 +1,102 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file was automatically generated.
4
+ #
5
+ from typing import List, Optional
6
+
7
+ from .account_on_file_attribute import AccountOnFileAttribute
8
+ from .account_on_file_display_hints import AccountOnFileDisplayHints
9
+ from .data_object import DataObject
10
+
11
+
12
+ class AccountOnFile(DataObject):
13
+
14
+ __attributes: Optional[List[AccountOnFileAttribute]] = None
15
+ __display_hints: Optional[AccountOnFileDisplayHints] = None
16
+ __id: Optional[str] = None
17
+ __payment_product_id: Optional[int] = None
18
+
19
+ @property
20
+ def attributes(self) -> Optional[List[AccountOnFileAttribute]]:
21
+ """
22
+ Type: list[:class:`onlinepayments.sdk.domain.account_on_file_attribute.AccountOnFileAttribute`]
23
+ """
24
+ return self.__attributes
25
+
26
+ @attributes.setter
27
+ def attributes(self, value: Optional[List[AccountOnFileAttribute]]) -> None:
28
+ self.__attributes = value
29
+
30
+ @property
31
+ def display_hints(self) -> Optional[AccountOnFileDisplayHints]:
32
+ """
33
+ | Object containing information for the client on how best to display this field
34
+
35
+ Type: :class:`onlinepayments.sdk.domain.account_on_file_display_hints.AccountOnFileDisplayHints`
36
+ """
37
+ return self.__display_hints
38
+
39
+ @display_hints.setter
40
+ def display_hints(self, value: Optional[AccountOnFileDisplayHints]) -> None:
41
+ self.__display_hints = value
42
+
43
+ @property
44
+ def id(self) -> Optional[str]:
45
+ """
46
+ | ID of the token
47
+
48
+ Type: str
49
+ """
50
+ return self.__id
51
+
52
+ @id.setter
53
+ def id(self, value: Optional[str]) -> None:
54
+ self.__id = value
55
+
56
+ @property
57
+ def payment_product_id(self) -> Optional[int]:
58
+ """
59
+ | Payment product identifier - Please see Products documentation for a full overview of possible values.
60
+
61
+ Type: int
62
+ """
63
+ return self.__payment_product_id
64
+
65
+ @payment_product_id.setter
66
+ def payment_product_id(self, value: Optional[int]) -> None:
67
+ self.__payment_product_id = value
68
+
69
+ def to_dictionary(self) -> dict:
70
+ dictionary = super(AccountOnFile, self).to_dictionary()
71
+ if self.attributes is not None:
72
+ dictionary['attributes'] = []
73
+ for element in self.attributes:
74
+ if element is not None:
75
+ dictionary['attributes'].append(element.to_dictionary())
76
+ if self.display_hints is not None:
77
+ dictionary['displayHints'] = self.display_hints.to_dictionary()
78
+ if self.id is not None:
79
+ dictionary['id'] = self.id
80
+ if self.payment_product_id is not None:
81
+ dictionary['paymentProductId'] = self.payment_product_id
82
+ return dictionary
83
+
84
+ def from_dictionary(self, dictionary: dict) -> 'AccountOnFile':
85
+ super(AccountOnFile, self).from_dictionary(dictionary)
86
+ if 'attributes' in dictionary:
87
+ if not isinstance(dictionary['attributes'], list):
88
+ raise TypeError('value \'{}\' is not a list'.format(dictionary['attributes']))
89
+ self.attributes = []
90
+ for element in dictionary['attributes']:
91
+ value = AccountOnFileAttribute()
92
+ self.attributes.append(value.from_dictionary(element))
93
+ if 'displayHints' in dictionary:
94
+ if not isinstance(dictionary['displayHints'], dict):
95
+ raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['displayHints']))
96
+ value = AccountOnFileDisplayHints()
97
+ self.display_hints = value.from_dictionary(dictionary['displayHints'])
98
+ if 'id' in dictionary:
99
+ self.id = dictionary['id']
100
+ if 'paymentProductId' in dictionary:
101
+ self.payment_product_id = dictionary['paymentProductId']
102
+ return self