onlinepayments-sdk-ruby 4.23.0 → 5.0.0

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 (408) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -0
  3. data/LICENSE.txt +0 -0
  4. data/README.md +5 -6
  5. data/Rakefile +0 -0
  6. data/lib/onlinepayments/sdk/api_exception.rb +47 -35
  7. data/lib/onlinepayments/sdk/api_resource.rb +49 -97
  8. data/lib/onlinepayments/sdk/authentication/authenticator.rb +19 -0
  9. data/lib/onlinepayments/sdk/authentication/authorization_type.rb +15 -0
  10. data/lib/onlinepayments/sdk/authentication/v1hmac_authenticator.rb +109 -0
  11. data/lib/onlinepayments/sdk/authentication.rb +1 -0
  12. data/lib/onlinepayments/sdk/authorization_exception.rb +14 -8
  13. data/lib/onlinepayments/sdk/call_context.rb +30 -21
  14. data/lib/onlinepayments/sdk/client.rb +36 -18
  15. data/lib/onlinepayments/sdk/communication/communication_exception.rb +19 -0
  16. data/lib/onlinepayments/sdk/communication/connection.rb +48 -0
  17. data/lib/onlinepayments/sdk/communication/default_connection.rb +427 -0
  18. data/lib/onlinepayments/sdk/communication/metadata_provider.rb +160 -0
  19. data/lib/onlinepayments/sdk/communication/multipart_form_data_object.rb +52 -0
  20. data/lib/onlinepayments/sdk/communication/multipart_form_data_request.rb +13 -0
  21. data/lib/onlinepayments/sdk/communication/not_found_exception.rb +19 -0
  22. data/lib/onlinepayments/sdk/communication/param_request.rb +14 -0
  23. data/lib/onlinepayments/sdk/communication/pooled_connection.rb +26 -0
  24. data/lib/onlinepayments/sdk/communication/request_header.rb +62 -0
  25. data/lib/onlinepayments/sdk/communication/request_param.rb +28 -0
  26. data/lib/onlinepayments/sdk/communication/response_exception.rb +56 -0
  27. data/lib/onlinepayments/sdk/communication/response_header.rb +78 -0
  28. data/lib/onlinepayments/sdk/communication.rb +1 -0
  29. data/lib/onlinepayments/sdk/communicator.rb +475 -268
  30. data/lib/onlinepayments/sdk/communicator_configuration.rb +162 -53
  31. data/lib/onlinepayments/sdk/declined_payment_exception.rb +28 -21
  32. data/lib/onlinepayments/sdk/declined_payout_exception.rb +28 -23
  33. data/lib/onlinepayments/sdk/declined_refund_exception.rb +28 -23
  34. data/lib/onlinepayments/sdk/declined_transaction_exception.rb +16 -10
  35. data/lib/onlinepayments/sdk/domain/account_on_file.rb +44 -35
  36. data/lib/onlinepayments/sdk/domain/account_on_file_attribute.rb +42 -28
  37. data/lib/onlinepayments/sdk/domain/account_on_file_display_hints.rb +29 -24
  38. data/lib/onlinepayments/sdk/domain/acquirer_information.rb +27 -22
  39. data/lib/onlinepayments/sdk/domain/acquirer_selection_information.rb +34 -24
  40. data/lib/onlinepayments/sdk/domain/additional_order_input.rb +43 -38
  41. data/lib/onlinepayments/sdk/domain/address.rb +65 -43
  42. data/lib/onlinepayments/sdk/domain/address_personal.rb +78 -52
  43. data/lib/onlinepayments/sdk/domain/airline_data.rb +204 -123
  44. data/lib/onlinepayments/sdk/domain/airline_flight_leg.rb +158 -95
  45. data/lib/onlinepayments/sdk/domain/airline_passenger.rb +59 -39
  46. data/lib/onlinepayments/sdk/domain/amount_breakdown.rb +27 -20
  47. data/lib/onlinepayments/sdk/domain/amount_of_money.rb +27 -20
  48. data/lib/onlinepayments/sdk/domain/api_error.rb +73 -47
  49. data/lib/onlinepayments/sdk/domain/apple_pay_line_item.rb +72 -0
  50. data/lib/onlinepayments/sdk/domain/apple_pay_recurring_payment_request.rb +61 -0
  51. data/lib/onlinepayments/sdk/domain/bank_account_iban.rb +20 -16
  52. data/lib/onlinepayments/sdk/domain/browser_data.rb +51 -35
  53. data/lib/onlinepayments/sdk/domain/calculate_surcharge_request.rb +27 -24
  54. data/lib/onlinepayments/sdk/domain/calculate_surcharge_response.rb +22 -20
  55. data/lib/onlinepayments/sdk/domain/cancel_payment_request.rb +27 -22
  56. data/lib/onlinepayments/sdk/domain/cancel_payment_response.rb +20 -18
  57. data/lib/onlinepayments/sdk/domain/capture.rb +41 -32
  58. data/lib/onlinepayments/sdk/domain/capture_output.rb +106 -78
  59. data/lib/onlinepayments/sdk/domain/capture_payment_request.rb +43 -26
  60. data/lib/onlinepayments/sdk/domain/capture_response.rb +41 -32
  61. data/lib/onlinepayments/sdk/domain/capture_status_output.rb +20 -16
  62. data/lib/onlinepayments/sdk/domain/captures_response.rb +22 -20
  63. data/lib/onlinepayments/sdk/domain/card.rb +41 -28
  64. data/lib/onlinepayments/sdk/domain/card_essentials.rb +41 -28
  65. data/lib/onlinepayments/sdk/domain/card_fraud_results.rb +34 -24
  66. data/lib/onlinepayments/sdk/domain/card_info.rb +27 -20
  67. data/lib/onlinepayments/sdk/domain/card_payment_method_specific_input.rb +199 -128
  68. data/lib/onlinepayments/sdk/domain/card_payment_method_specific_input_base.rb +149 -104
  69. data/lib/onlinepayments/sdk/domain/card_payment_method_specific_input_for_hosted_checkout.rb +36 -28
  70. data/lib/onlinepayments/sdk/domain/card_payment_method_specific_output.rb +133 -100
  71. data/lib/onlinepayments/sdk/domain/card_payout_method_specific_input.rb +41 -30
  72. data/lib/onlinepayments/sdk/domain/card_recurrence_details.rb +20 -16
  73. data/lib/onlinepayments/sdk/domain/card_source.rb +41 -30
  74. data/lib/onlinepayments/sdk/domain/card_without_cvv.rb +34 -24
  75. data/lib/onlinepayments/sdk/domain/company_information.rb +20 -16
  76. data/lib/onlinepayments/sdk/domain/complete_payment_card_payment_method_specific_input.rb +20 -18
  77. data/lib/onlinepayments/sdk/domain/complete_payment_request.rb +27 -24
  78. data/lib/onlinepayments/sdk/domain/complete_payment_response.rb +35 -31
  79. data/lib/onlinepayments/sdk/domain/contact_details.rb +51 -35
  80. data/lib/onlinepayments/sdk/domain/create_hosted_checkout_request.rb +76 -59
  81. data/lib/onlinepayments/sdk/domain/create_hosted_checkout_response.rb +60 -43
  82. data/lib/onlinepayments/sdk/domain/create_hosted_tokenization_request.rb +57 -42
  83. data/lib/onlinepayments/sdk/domain/create_hosted_tokenization_response.rb +57 -44
  84. data/lib/onlinepayments/sdk/domain/create_mandate_request.rb +71 -48
  85. data/lib/onlinepayments/sdk/domain/create_mandate_response.rb +27 -24
  86. data/lib/onlinepayments/sdk/domain/create_mandate_with_return_url.rb +71 -48
  87. data/lib/onlinepayments/sdk/domain/create_payment_link_request.rb +120 -87
  88. data/lib/onlinepayments/sdk/domain/create_payment_request.rb +82 -60
  89. data/lib/onlinepayments/sdk/domain/create_payment_response.rb +35 -31
  90. data/lib/onlinepayments/sdk/domain/create_payout_request.rb +61 -40
  91. data/lib/onlinepayments/sdk/domain/create_token_request.rb +27 -22
  92. data/lib/onlinepayments/sdk/domain/created_payment_output.rb +27 -22
  93. data/lib/onlinepayments/sdk/domain/created_token_response.rb +50 -38
  94. data/lib/onlinepayments/sdk/domain/credit_card_specific_input_hosted_tokenization.rb +29 -26
  95. data/lib/onlinepayments/sdk/domain/credit_card_validation_rules_hosted_tokenization.rb +27 -20
  96. data/lib/onlinepayments/sdk/domain/currency_conversion.rb +27 -22
  97. data/lib/onlinepayments/sdk/domain/currency_conversion_input.rb +27 -20
  98. data/lib/onlinepayments/sdk/domain/currency_conversion_request.rb +27 -24
  99. data/lib/onlinepayments/sdk/domain/currency_conversion_response.rb +34 -28
  100. data/lib/onlinepayments/sdk/domain/currency_conversion_result.rb +27 -20
  101. data/lib/onlinepayments/sdk/domain/currency_conversion_specific_input.rb +20 -16
  102. data/lib/onlinepayments/sdk/domain/customer.rb +87 -68
  103. data/lib/onlinepayments/sdk/domain/customer_account.rb +77 -55
  104. data/lib/onlinepayments/sdk/domain/customer_account_authentication.rb +34 -20
  105. data/lib/onlinepayments/sdk/domain/customer_bank_account.rb +34 -24
  106. data/lib/onlinepayments/sdk/domain/customer_device.rb +64 -44
  107. data/lib/onlinepayments/sdk/domain/customer_device_output.rb +20 -16
  108. data/lib/onlinepayments/sdk/domain/customer_output.rb +20 -18
  109. data/lib/onlinepayments/sdk/domain/customer_payment_activity.rb +34 -24
  110. data/lib/onlinepayments/sdk/domain/customer_token.rb +35 -31
  111. data/lib/onlinepayments/sdk/domain/data_object.rb +32 -0
  112. data/lib/onlinepayments/sdk/domain/dcc_card_source.rb +41 -30
  113. data/lib/onlinepayments/sdk/domain/dcc_proposal.rb +51 -41
  114. data/lib/onlinepayments/sdk/domain/decrypted_payment_data.rb +51 -35
  115. data/lib/onlinepayments/sdk/domain/directory_entry.rb +34 -24
  116. data/lib/onlinepayments/sdk/domain/discount.rb +20 -16
  117. data/lib/onlinepayments/sdk/domain/empty_validator.rb +7 -6
  118. data/lib/onlinepayments/sdk/domain/error_response.rb +29 -24
  119. data/lib/onlinepayments/sdk/domain/external_cardholder_authentication_data.rb +86 -55
  120. data/lib/onlinepayments/sdk/domain/external_token_linked.rb +35 -24
  121. data/lib/onlinepayments/sdk/domain/feedbacks.rb +30 -0
  122. data/lib/onlinepayments/sdk/domain/fixed_list_validator.rb +22 -20
  123. data/lib/onlinepayments/sdk/domain/fraud_fields.rb +37 -28
  124. data/lib/onlinepayments/sdk/domain/fraud_results.rb +20 -16
  125. data/lib/onlinepayments/sdk/domain/g_pay_three_d_secure.rb +50 -36
  126. data/lib/onlinepayments/sdk/domain/get_hosted_checkout_response.rb +27 -22
  127. data/lib/onlinepayments/sdk/domain/get_hosted_tokenization_response.rb +27 -22
  128. data/lib/onlinepayments/sdk/domain/get_iin_details_request.rb +27 -22
  129. data/lib/onlinepayments/sdk/domain/get_iin_details_response.rb +52 -38
  130. data/lib/onlinepayments/sdk/domain/get_mandate_response.rb +20 -18
  131. data/lib/onlinepayments/sdk/domain/get_payment_product_groups_response.rb +22 -20
  132. data/lib/onlinepayments/sdk/domain/get_payment_products_response.rb +22 -20
  133. data/lib/onlinepayments/sdk/domain/get_privacy_policy_response.rb +20 -16
  134. data/lib/onlinepayments/sdk/domain/gift_card_purchase.rb +27 -22
  135. data/lib/onlinepayments/sdk/domain/hosted_checkout_specific_input.rb +83 -56
  136. data/lib/onlinepayments/sdk/domain/hosted_checkout_specific_output.rb +27 -20
  137. data/lib/onlinepayments/sdk/domain/iin_detail.rb +34 -24
  138. data/lib/onlinepayments/sdk/domain/label_template_element.rb +27 -20
  139. data/lib/onlinepayments/sdk/domain/length_validator.rb +27 -20
  140. data/lib/onlinepayments/sdk/domain/line_item.rb +44 -31
  141. data/lib/onlinepayments/sdk/domain/line_item_invoice_data.rb +20 -16
  142. data/lib/onlinepayments/sdk/domain/loan_recipient.rb +51 -35
  143. data/lib/onlinepayments/sdk/domain/lodging_data.rb +20 -16
  144. data/lib/onlinepayments/sdk/domain/mandate_address.rb +51 -35
  145. data/lib/onlinepayments/sdk/domain/mandate_address_response.rb +51 -35
  146. data/lib/onlinepayments/sdk/domain/mandate_contact_details.rb +20 -16
  147. data/lib/onlinepayments/sdk/domain/mandate_customer.rb +52 -44
  148. data/lib/onlinepayments/sdk/domain/mandate_customer_response.rb +52 -44
  149. data/lib/onlinepayments/sdk/domain/mandate_merchant_action.rb +27 -22
  150. data/lib/onlinepayments/sdk/domain/mandate_personal_information.rb +27 -22
  151. data/lib/onlinepayments/sdk/domain/mandate_personal_information_response.rb +27 -22
  152. data/lib/onlinepayments/sdk/domain/mandate_personal_name.rb +27 -20
  153. data/lib/onlinepayments/sdk/domain/mandate_personal_name_response.rb +27 -20
  154. data/lib/onlinepayments/sdk/domain/mandate_redirect_data.rb +27 -20
  155. data/lib/onlinepayments/sdk/domain/mandate_response.rb +64 -44
  156. data/lib/onlinepayments/sdk/domain/merchant_action.rb +43 -28
  157. data/lib/onlinepayments/sdk/domain/mobile_payment_data.rb +27 -20
  158. data/lib/onlinepayments/sdk/domain/mobile_payment_method_hosted_checkout_specific_input.rb +43 -26
  159. data/lib/onlinepayments/sdk/domain/mobile_payment_method_specific_input.rb +71 -50
  160. data/lib/onlinepayments/sdk/domain/mobile_payment_method_specific_output.rb +58 -45
  161. data/lib/onlinepayments/sdk/domain/mobile_payment_product302_specific_input.rb +32 -0
  162. data/lib/onlinepayments/sdk/domain/mobile_payment_product320_specific_input.rb +20 -18
  163. data/lib/onlinepayments/sdk/domain/mobile_three_d_secure_challenge_parameters.rb +51 -0
  164. data/lib/onlinepayments/sdk/domain/multiple_payment_information.rb +27 -20
  165. data/lib/onlinepayments/sdk/domain/omnichannel_payout_specific_input.rb +20 -16
  166. data/lib/onlinepayments/sdk/domain/operation_output.rb +67 -45
  167. data/lib/onlinepayments/sdk/domain/operation_payment_references.rb +30 -0
  168. data/lib/onlinepayments/sdk/domain/order.rb +75 -66
  169. data/lib/onlinepayments/sdk/domain/order_line_details.rb +79 -47
  170. data/lib/onlinepayments/sdk/domain/order_references.rb +34 -24
  171. data/lib/onlinepayments/sdk/domain/order_status_output.rb +52 -38
  172. data/lib/onlinepayments/sdk/domain/order_type_information.rb +27 -20
  173. data/lib/onlinepayments/sdk/domain/other_details.rb +37 -0
  174. data/lib/onlinepayments/sdk/domain/payment_account_on_file.rb +27 -20
  175. data/lib/onlinepayments/sdk/domain/payment_context.rb +34 -26
  176. data/lib/onlinepayments/sdk/domain/payment_creation_output.rb +41 -28
  177. data/lib/onlinepayments/sdk/domain/payment_details_response.rb +60 -49
  178. data/lib/onlinepayments/sdk/domain/payment_error_response.rb +37 -31
  179. data/lib/onlinepayments/sdk/domain/payment_link_event.rb +34 -24
  180. data/lib/onlinepayments/sdk/domain/payment_link_order_input.rb +34 -28
  181. data/lib/onlinepayments/sdk/domain/payment_link_order_output.rb +34 -28
  182. data/lib/onlinepayments/sdk/domain/payment_link_response.rb +74 -51
  183. data/lib/onlinepayments/sdk/domain/payment_link_specific_input.rb +36 -24
  184. data/lib/onlinepayments/sdk/domain/payment_output.rb +115 -94
  185. data/lib/onlinepayments/sdk/domain/payment_product.rb +117 -85
  186. data/lib/onlinepayments/sdk/domain/payment_product130_specific_input.rb +20 -18
  187. data/lib/onlinepayments/sdk/domain/payment_product130_specific_three_d_secure.rb +41 -28
  188. data/lib/onlinepayments/sdk/domain/payment_product3012.rb +27 -20
  189. data/lib/onlinepayments/sdk/domain/payment_product3012_specific_input.rb +51 -0
  190. data/lib/onlinepayments/sdk/domain/payment_product302_specific_data.rb +22 -20
  191. data/lib/onlinepayments/sdk/domain/payment_product3203_specific_output.rb +27 -24
  192. data/lib/onlinepayments/sdk/domain/payment_product3208_specific_input.rb +20 -16
  193. data/lib/onlinepayments/sdk/domain/payment_product3208_specific_output.rb +20 -16
  194. data/lib/onlinepayments/sdk/domain/payment_product3209_specific_input.rb +20 -16
  195. data/lib/onlinepayments/sdk/domain/payment_product3209_specific_output.rb +20 -16
  196. data/lib/onlinepayments/sdk/domain/payment_product320_specific_data.rb +29 -24
  197. data/lib/onlinepayments/sdk/domain/payment_product5001_specific_output.rb +48 -16
  198. data/lib/onlinepayments/sdk/domain/payment_product5100_specific_input.rb +20 -16
  199. data/lib/onlinepayments/sdk/domain/payment_product5402_specific_output.rb +20 -16
  200. data/lib/onlinepayments/sdk/domain/payment_product5404.rb +27 -20
  201. data/lib/onlinepayments/sdk/domain/payment_product5407.rb +27 -20
  202. data/lib/onlinepayments/sdk/domain/payment_product5500_specific_output.rb +41 -24
  203. data/lib/onlinepayments/sdk/domain/payment_product771_specific_output.rb +20 -16
  204. data/lib/onlinepayments/sdk/domain/payment_product840_customer_account.rb +72 -47
  205. data/lib/onlinepayments/sdk/domain/payment_product840_specific_output.rb +43 -38
  206. data/lib/onlinepayments/sdk/domain/payment_product_display_hints.rb +34 -24
  207. data/lib/onlinepayments/sdk/domain/payment_product_field.rb +41 -32
  208. data/lib/onlinepayments/sdk/domain/payment_product_field_data_restrictions.rb +27 -22
  209. data/lib/onlinepayments/sdk/domain/payment_product_field_display_element.rb +41 -28
  210. data/lib/onlinepayments/sdk/domain/payment_product_field_display_hints.rb +84 -56
  211. data/lib/onlinepayments/sdk/domain/payment_product_field_form_element.rb +30 -24
  212. data/lib/onlinepayments/sdk/domain/payment_product_field_tooltip.rb +28 -20
  213. data/lib/onlinepayments/sdk/domain/payment_product_field_validators.rb +83 -73
  214. data/lib/onlinepayments/sdk/domain/payment_product_filter.rb +32 -29
  215. data/lib/onlinepayments/sdk/domain/payment_product_filter_hosted_tokenization.rb +22 -20
  216. data/lib/onlinepayments/sdk/domain/payment_product_filters_hosted_checkout.rb +27 -24
  217. data/lib/onlinepayments/sdk/domain/payment_product_filters_hosted_tokenization.rb +27 -24
  218. data/lib/onlinepayments/sdk/domain/payment_product_group.rb +44 -37
  219. data/lib/onlinepayments/sdk/domain/payment_product_networks_response.rb +22 -20
  220. data/lib/onlinepayments/sdk/domain/payment_references.rb +27 -20
  221. data/lib/onlinepayments/sdk/domain/payment_response.rb +51 -41
  222. data/lib/onlinepayments/sdk/domain/payment_status_output.rb +66 -46
  223. data/lib/onlinepayments/sdk/domain/payout_error_response.rb +37 -31
  224. data/lib/onlinepayments/sdk/domain/payout_output.rb +27 -22
  225. data/lib/onlinepayments/sdk/domain/payout_response.rb +41 -32
  226. data/lib/onlinepayments/sdk/domain/payout_result.rb +41 -32
  227. data/lib/onlinepayments/sdk/domain/payout_status_output.rb +34 -24
  228. data/lib/onlinepayments/sdk/domain/personal_information.rb +34 -26
  229. data/lib/onlinepayments/sdk/domain/personal_information_token.rb +20 -18
  230. data/lib/onlinepayments/sdk/domain/personal_name.rb +34 -24
  231. data/lib/onlinepayments/sdk/domain/personal_name_token.rb +27 -20
  232. data/lib/onlinepayments/sdk/domain/product_directory.rb +22 -20
  233. data/lib/onlinepayments/sdk/domain/protection_eligibility.rb +27 -20
  234. data/lib/onlinepayments/sdk/domain/range_validator.rb +27 -20
  235. data/lib/onlinepayments/sdk/domain/rate_details.rb +51 -35
  236. data/lib/onlinepayments/sdk/domain/redirect_data.rb +27 -20
  237. data/lib/onlinepayments/sdk/domain/redirect_payment_method_specific_input.rb +139 -88
  238. data/lib/onlinepayments/sdk/domain/redirect_payment_method_specific_output.rb +95 -75
  239. data/lib/onlinepayments/sdk/domain/redirect_payment_product3203_specific_input.rb +20 -16
  240. data/lib/onlinepayments/sdk/domain/redirect_payment_product3302_specific_input.rb +44 -0
  241. data/lib/onlinepayments/sdk/domain/redirect_payment_product3306_specific_input.rb +20 -16
  242. data/lib/onlinepayments/sdk/domain/redirect_payment_product5001_specific_input.rb +20 -16
  243. data/lib/onlinepayments/sdk/domain/redirect_payment_product5300_specific_input.rb +74 -0
  244. data/lib/onlinepayments/sdk/domain/redirect_payment_product5406_specific_input.rb +20 -18
  245. data/lib/onlinepayments/sdk/domain/redirect_payment_product5408_specific_input.rb +27 -22
  246. data/lib/onlinepayments/sdk/domain/redirect_payment_product5410_specific_input.rb +32 -0
  247. data/lib/onlinepayments/sdk/domain/redirect_payment_product809_specific_input.rb +20 -16
  248. data/lib/onlinepayments/sdk/domain/redirect_payment_product840_specific_input.rb +41 -20
  249. data/lib/onlinepayments/sdk/domain/redirection_data.rb +20 -16
  250. data/lib/onlinepayments/sdk/domain/refund_card_method_specific_output.rb +34 -26
  251. data/lib/onlinepayments/sdk/domain/refund_e_wallet_method_specific_output.rb +34 -26
  252. data/lib/onlinepayments/sdk/domain/refund_error_response.rb +37 -31
  253. data/lib/onlinepayments/sdk/domain/refund_mobile_method_specific_output.rb +34 -24
  254. data/lib/onlinepayments/sdk/domain/refund_output.rb +89 -64
  255. data/lib/onlinepayments/sdk/domain/refund_payment_product840_customer_account.rb +34 -24
  256. data/lib/onlinepayments/sdk/domain/refund_payment_product840_specific_output.rb +20 -18
  257. data/lib/onlinepayments/sdk/domain/refund_redirect_method_specific_output.rb +27 -20
  258. data/lib/onlinepayments/sdk/domain/refund_request.rb +43 -24
  259. data/lib/onlinepayments/sdk/domain/refund_response.rb +41 -32
  260. data/lib/onlinepayments/sdk/domain/refunds_response.rb +22 -20
  261. data/lib/onlinepayments/sdk/domain/regular_expression_validator.rb +20 -16
  262. data/lib/onlinepayments/sdk/domain/send_test_request.rb +30 -0
  263. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input.rb +27 -22
  264. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input_base.rb +27 -22
  265. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_output.rb +34 -28
  266. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input.rb +27 -22
  267. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input_base.rb +27 -22
  268. data/lib/onlinepayments/sdk/domain/session_request.rb +22 -20
  269. data/lib/onlinepayments/sdk/domain/session_response.rb +53 -39
  270. data/lib/onlinepayments/sdk/domain/shipping.rb +76 -52
  271. data/lib/onlinepayments/sdk/domain/shipping_method.rb +41 -28
  272. data/lib/onlinepayments/sdk/domain/shopping_cart.rb +62 -48
  273. data/lib/onlinepayments/sdk/domain/shopping_cart_extension.rb +51 -43
  274. data/lib/onlinepayments/sdk/domain/show_form_data.rb +35 -31
  275. data/lib/onlinepayments/sdk/domain/subsequent_card_payment_method_specific_input.rb +60 -39
  276. data/lib/onlinepayments/sdk/domain/subsequent_payment_product5001_specific_input.rb +20 -16
  277. data/lib/onlinepayments/sdk/domain/subsequent_payment_request.rb +35 -31
  278. data/lib/onlinepayments/sdk/domain/subsequent_payment_response.rb +20 -18
  279. data/lib/onlinepayments/sdk/domain/surcharge.rb +59 -48
  280. data/lib/onlinepayments/sdk/domain/surcharge_calculation_card.rb +27 -20
  281. data/lib/onlinepayments/sdk/domain/surcharge_for_payment_link.rb +20 -16
  282. data/lib/onlinepayments/sdk/domain/surcharge_rate.rb +41 -28
  283. data/lib/onlinepayments/sdk/domain/surcharge_specific_input.rb +27 -22
  284. data/lib/onlinepayments/sdk/domain/surcharge_specific_output.rb +34 -28
  285. data/lib/onlinepayments/sdk/domain/test_connection.rb +20 -16
  286. data/lib/onlinepayments/sdk/domain/three_d_secure.rb +98 -63
  287. data/lib/onlinepayments/sdk/domain/three_d_secure_base.rb +78 -52
  288. data/lib/onlinepayments/sdk/domain/three_d_secure_data.rb +34 -24
  289. data/lib/onlinepayments/sdk/domain/three_d_secure_results.rb +107 -67
  290. data/lib/onlinepayments/sdk/domain/token_card.rb +27 -22
  291. data/lib/onlinepayments/sdk/domain/token_card_data.rb +27 -18
  292. data/lib/onlinepayments/sdk/domain/token_card_specific_input.rb +20 -18
  293. data/lib/onlinepayments/sdk/domain/token_data.rb +27 -18
  294. data/lib/onlinepayments/sdk/domain/token_e_wallet.rb +28 -22
  295. data/lib/onlinepayments/sdk/domain/token_response.rb +58 -45
  296. data/lib/onlinepayments/sdk/domain/transaction.rb +20 -18
  297. data/lib/onlinepayments/sdk/domain/uploadable_file.rb +33 -0
  298. data/lib/onlinepayments/sdk/domain/validate_credentials_request.rb +37 -0
  299. data/lib/onlinepayments/sdk/domain/validate_credentials_response.rb +30 -0
  300. data/lib/onlinepayments/sdk/domain/value_mapping_element.rb +29 -24
  301. data/lib/onlinepayments/sdk/domain.rb +4 -0
  302. data/lib/onlinepayments/sdk/exception_factory.rb +76 -0
  303. data/lib/onlinepayments/sdk/factory.rb +163 -118
  304. data/lib/onlinepayments/sdk/idempotence_exception.rb +23 -19
  305. data/lib/onlinepayments/sdk/json/default_marshaller.rb +34 -0
  306. data/lib/onlinepayments/sdk/json/marshaller.rb +27 -0
  307. data/lib/onlinepayments/sdk/json/marshaller_syntax_exception.rb +9 -0
  308. data/lib/onlinepayments/sdk/json.rb +1 -0
  309. data/lib/onlinepayments/sdk/logging/communicator_logger.rb +18 -16
  310. data/lib/onlinepayments/sdk/logging/log_message_builder.rb +80 -47
  311. data/lib/onlinepayments/sdk/logging/logging_capable.rb +1 -1
  312. data/lib/onlinepayments/sdk/logging/obfuscation/body_obfuscator.rb +113 -0
  313. data/lib/onlinepayments/sdk/logging/obfuscation/header_obfuscator.rb +54 -0
  314. data/lib/onlinepayments/sdk/logging/obfuscation/obfuscation_capable.rb +21 -0
  315. data/lib/onlinepayments/sdk/logging/obfuscation/obfuscation_rule.rb +47 -0
  316. data/lib/onlinepayments/sdk/logging/obfuscation.rb +1 -0
  317. data/lib/onlinepayments/sdk/logging/request_log_message_builder.rb +40 -29
  318. data/lib/onlinepayments/sdk/logging/response_log_message_builder.rb +30 -23
  319. data/lib/onlinepayments/sdk/logging/ruby_communicator_logger.rb +49 -45
  320. data/lib/onlinepayments/sdk/logging/stdout_communicator_logger.rb +20 -23
  321. data/lib/onlinepayments/sdk/logging.rb +1 -10
  322. data/lib/onlinepayments/sdk/merchant/captures/captures_client.rb +57 -0
  323. data/lib/onlinepayments/sdk/merchant/captures.rb +4 -0
  324. data/lib/onlinepayments/sdk/merchant/complete/complete_client.rb +60 -0
  325. data/lib/onlinepayments/sdk/merchant/complete.rb +4 -0
  326. data/lib/onlinepayments/sdk/merchant/hostedcheckout/hosted_checkout_client.rb +72 -71
  327. data/lib/onlinepayments/sdk/merchant/hostedcheckout.rb +4 -0
  328. data/lib/onlinepayments/sdk/merchant/hostedtokenization/hosted_tokenization_client.rb +72 -71
  329. data/lib/onlinepayments/sdk/merchant/hostedtokenization.rb +4 -0
  330. data/lib/onlinepayments/sdk/merchant/mandates/mandates_client.rb +165 -164
  331. data/lib/onlinepayments/sdk/merchant/mandates.rb +4 -0
  332. data/lib/onlinepayments/sdk/merchant/merchant_client.rb +116 -64
  333. data/lib/onlinepayments/sdk/merchant/paymentlinks/payment_links_client.rb +102 -101
  334. data/lib/onlinepayments/sdk/merchant/paymentlinks.rb +4 -0
  335. data/lib/onlinepayments/sdk/merchant/payments/payments_client.rb +233 -332
  336. data/lib/onlinepayments/sdk/merchant/payments.rb +4 -0
  337. data/lib/onlinepayments/sdk/merchant/payouts/payouts_client.rb +73 -71
  338. data/lib/onlinepayments/sdk/merchant/payouts.rb +4 -0
  339. data/lib/onlinepayments/sdk/merchant/privacypolicy/get_privacy_policy_params.rb +32 -0
  340. data/lib/onlinepayments/sdk/merchant/privacypolicy/privacy_policy_client.rb +54 -0
  341. data/lib/onlinepayments/sdk/merchant/privacypolicy.rb +4 -0
  342. data/lib/onlinepayments/sdk/merchant/productgroups/get_product_group_params.rb +50 -47
  343. data/lib/onlinepayments/sdk/merchant/productgroups/get_product_groups_params.rb +50 -47
  344. data/lib/onlinepayments/sdk/merchant/productgroups/product_groups_client.rb +72 -72
  345. data/lib/onlinepayments/sdk/merchant/productgroups.rb +4 -0
  346. data/lib/onlinepayments/sdk/merchant/products/get_payment_product_networks_params.rb +27 -25
  347. data/lib/onlinepayments/sdk/merchant/products/get_payment_product_params.rb +50 -47
  348. data/lib/onlinepayments/sdk/merchant/products/get_payment_products_params.rb +50 -47
  349. data/lib/onlinepayments/sdk/merchant/products/get_product_directory_params.rb +21 -19
  350. data/lib/onlinepayments/sdk/merchant/products/products_client.rb +134 -136
  351. data/lib/onlinepayments/sdk/merchant/products.rb +4 -0
  352. data/lib/onlinepayments/sdk/merchant/refunds/refunds_client.rb +57 -0
  353. data/lib/onlinepayments/sdk/merchant/refunds.rb +4 -0
  354. data/lib/onlinepayments/sdk/merchant/services/services_client.rb +124 -155
  355. data/lib/onlinepayments/sdk/merchant/services.rb +4 -0
  356. data/lib/onlinepayments/sdk/merchant/sessions/sessions_client.rb +42 -41
  357. data/lib/onlinepayments/sdk/merchant/sessions.rb +4 -0
  358. data/lib/onlinepayments/sdk/merchant/tokens/tokens_client.rb +101 -100
  359. data/lib/onlinepayments/sdk/merchant/tokens.rb +4 -0
  360. data/lib/onlinepayments/sdk/merchant/webhooks/webhooks_client.rb +83 -0
  361. data/lib/onlinepayments/sdk/merchant/webhooks.rb +4 -0
  362. data/lib/onlinepayments/sdk/merchant.rb +4 -0
  363. data/lib/onlinepayments/sdk/platform_exception.rb +19 -0
  364. data/lib/onlinepayments/sdk/proxy_configuration.rb +60 -60
  365. data/lib/onlinepayments/sdk/reference_exception.rb +14 -9
  366. data/lib/onlinepayments/sdk/validation_exception.rb +14 -9
  367. data/lib/onlinepayments/sdk/webhooks/api_version_mismatch_exception.rb +17 -15
  368. data/lib/onlinepayments/sdk/webhooks/in_memory_secret_key_store.rb +46 -43
  369. data/lib/onlinepayments/sdk/webhooks/secret_key_not_available_exception.rb +16 -12
  370. data/lib/onlinepayments/sdk/webhooks/secret_key_store.rb +13 -11
  371. data/lib/onlinepayments/sdk/webhooks/signature_validation_exception.rb +15 -14
  372. data/lib/onlinepayments/sdk/webhooks/signature_validator.rb +81 -0
  373. data/lib/onlinepayments/sdk/webhooks/webhooks_event.rb +84 -53
  374. data/lib/onlinepayments/sdk/webhooks/webhooks_helper.rb +28 -90
  375. data/lib/onlinepayments/sdk/webhooks.rb +1 -11
  376. data/lib/onlinepayments/sdk.rb +4 -26
  377. data/onlinepayments-sdk-ruby.gemspec +3 -2
  378. metadata +89 -35
  379. data/lib/onlinepayments/sdk/authenticator.rb +0 -16
  380. data/lib/onlinepayments/sdk/communication_exception.rb +0 -16
  381. data/lib/onlinepayments/sdk/connection.rb +0 -41
  382. data/lib/onlinepayments/sdk/data_object.rb +0 -31
  383. data/lib/onlinepayments/sdk/defaultimpl/authorization_type.rb +0 -24
  384. data/lib/onlinepayments/sdk/defaultimpl/default_authenticator.rb +0 -108
  385. data/lib/onlinepayments/sdk/defaultimpl/default_connection.rb +0 -365
  386. data/lib/onlinepayments/sdk/defaultimpl/default_marshaller.rb +0 -32
  387. data/lib/onlinepayments/sdk/defaultimpl.rb +0 -6
  388. data/lib/onlinepayments/sdk/endpoint_configuration.rb +0 -127
  389. data/lib/onlinepayments/sdk/exceptions.rb +0 -8
  390. data/lib/onlinepayments/sdk/logging/logging_util.rb +0 -286
  391. data/lib/onlinepayments/sdk/marshaller.rb +0 -24
  392. data/lib/onlinepayments/sdk/marshaller_syntax_exception.rb +0 -6
  393. data/lib/onlinepayments/sdk/merchant/services/get_privacy_policy_params.rb +0 -30
  394. data/lib/onlinepayments/sdk/meta_data_provider.rb +0 -150
  395. data/lib/onlinepayments/sdk/modules.rb +0 -62
  396. data/lib/onlinepayments/sdk/multipart_form_data_object.rb +0 -44
  397. data/lib/onlinepayments/sdk/multipart_form_data_request.rb +0 -9
  398. data/lib/onlinepayments/sdk/not_found_exception.rb +0 -16
  399. data/lib/onlinepayments/sdk/param_request.rb +0 -11
  400. data/lib/onlinepayments/sdk/payment_platform_exception.rb +0 -15
  401. data/lib/onlinepayments/sdk/pooled_connection.rb +0 -21
  402. data/lib/onlinepayments/sdk/request_header.rb +0 -50
  403. data/lib/onlinepayments/sdk/request_param.rb +0 -23
  404. data/lib/onlinepayments/sdk/response_exception.rb +0 -47
  405. data/lib/onlinepayments/sdk/response_header.rb +0 -42
  406. data/lib/onlinepayments/sdk/uploadable_file.rb +0 -30
  407. data/lib/onlinepayments/sdk/webhooks/webhooks.rb +0 -22
  408. data/lib/onlinepayments/sdk/webhooks/webhooks_helper_builder.rb +0 -25
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onlinepayments-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.23.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Worldline Direct support team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-11 00:00:00.000000000 Z
11
+ date: 2025-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -86,14 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.4'
89
+ version: '2.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: webrick
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.7'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '1.4'
110
+ version: '1.7'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rake
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -129,24 +143,34 @@ files:
129
143
  - lib/onlinepayments/sdk.rb
130
144
  - lib/onlinepayments/sdk/api_exception.rb
131
145
  - lib/onlinepayments/sdk/api_resource.rb
132
- - lib/onlinepayments/sdk/authenticator.rb
146
+ - lib/onlinepayments/sdk/authentication.rb
147
+ - lib/onlinepayments/sdk/authentication/authenticator.rb
148
+ - lib/onlinepayments/sdk/authentication/authorization_type.rb
149
+ - lib/onlinepayments/sdk/authentication/v1hmac_authenticator.rb
133
150
  - lib/onlinepayments/sdk/authorization_exception.rb
134
151
  - lib/onlinepayments/sdk/call_context.rb
135
152
  - lib/onlinepayments/sdk/client.rb
136
- - lib/onlinepayments/sdk/communication_exception.rb
153
+ - lib/onlinepayments/sdk/communication.rb
154
+ - lib/onlinepayments/sdk/communication/communication_exception.rb
155
+ - lib/onlinepayments/sdk/communication/connection.rb
156
+ - lib/onlinepayments/sdk/communication/default_connection.rb
157
+ - lib/onlinepayments/sdk/communication/metadata_provider.rb
158
+ - lib/onlinepayments/sdk/communication/multipart_form_data_object.rb
159
+ - lib/onlinepayments/sdk/communication/multipart_form_data_request.rb
160
+ - lib/onlinepayments/sdk/communication/not_found_exception.rb
161
+ - lib/onlinepayments/sdk/communication/param_request.rb
162
+ - lib/onlinepayments/sdk/communication/pooled_connection.rb
163
+ - lib/onlinepayments/sdk/communication/request_header.rb
164
+ - lib/onlinepayments/sdk/communication/request_param.rb
165
+ - lib/onlinepayments/sdk/communication/response_exception.rb
166
+ - lib/onlinepayments/sdk/communication/response_header.rb
137
167
  - lib/onlinepayments/sdk/communicator.rb
138
168
  - lib/onlinepayments/sdk/communicator_configuration.rb
139
- - lib/onlinepayments/sdk/connection.rb
140
- - lib/onlinepayments/sdk/data_object.rb
141
169
  - lib/onlinepayments/sdk/declined_payment_exception.rb
142
170
  - lib/onlinepayments/sdk/declined_payout_exception.rb
143
171
  - lib/onlinepayments/sdk/declined_refund_exception.rb
144
172
  - lib/onlinepayments/sdk/declined_transaction_exception.rb
145
- - lib/onlinepayments/sdk/defaultimpl.rb
146
- - lib/onlinepayments/sdk/defaultimpl/authorization_type.rb
147
- - lib/onlinepayments/sdk/defaultimpl/default_authenticator.rb
148
- - lib/onlinepayments/sdk/defaultimpl/default_connection.rb
149
- - lib/onlinepayments/sdk/defaultimpl/default_marshaller.rb
173
+ - lib/onlinepayments/sdk/domain.rb
150
174
  - lib/onlinepayments/sdk/domain/account_on_file.rb
151
175
  - lib/onlinepayments/sdk/domain/account_on_file_attribute.rb
152
176
  - lib/onlinepayments/sdk/domain/account_on_file_display_hints.rb
@@ -161,6 +185,8 @@ files:
161
185
  - lib/onlinepayments/sdk/domain/amount_breakdown.rb
162
186
  - lib/onlinepayments/sdk/domain/amount_of_money.rb
163
187
  - lib/onlinepayments/sdk/domain/api_error.rb
188
+ - lib/onlinepayments/sdk/domain/apple_pay_line_item.rb
189
+ - lib/onlinepayments/sdk/domain/apple_pay_recurring_payment_request.rb
164
190
  - lib/onlinepayments/sdk/domain/bank_account_iban.rb
165
191
  - lib/onlinepayments/sdk/domain/browser_data.rb
166
192
  - lib/onlinepayments/sdk/domain/calculate_surcharge_request.rb
@@ -221,6 +247,7 @@ files:
221
247
  - lib/onlinepayments/sdk/domain/customer_output.rb
222
248
  - lib/onlinepayments/sdk/domain/customer_payment_activity.rb
223
249
  - lib/onlinepayments/sdk/domain/customer_token.rb
250
+ - lib/onlinepayments/sdk/domain/data_object.rb
224
251
  - lib/onlinepayments/sdk/domain/dcc_card_source.rb
225
252
  - lib/onlinepayments/sdk/domain/dcc_proposal.rb
226
253
  - lib/onlinepayments/sdk/domain/decrypted_payment_data.rb
@@ -230,6 +257,7 @@ files:
230
257
  - lib/onlinepayments/sdk/domain/error_response.rb
231
258
  - lib/onlinepayments/sdk/domain/external_cardholder_authentication_data.rb
232
259
  - lib/onlinepayments/sdk/domain/external_token_linked.rb
260
+ - lib/onlinepayments/sdk/domain/feedbacks.rb
233
261
  - lib/onlinepayments/sdk/domain/fixed_list_validator.rb
234
262
  - lib/onlinepayments/sdk/domain/fraud_fields.rb
235
263
  - lib/onlinepayments/sdk/domain/fraud_results.rb
@@ -269,15 +297,19 @@ files:
269
297
  - lib/onlinepayments/sdk/domain/mobile_payment_method_hosted_checkout_specific_input.rb
270
298
  - lib/onlinepayments/sdk/domain/mobile_payment_method_specific_input.rb
271
299
  - lib/onlinepayments/sdk/domain/mobile_payment_method_specific_output.rb
300
+ - lib/onlinepayments/sdk/domain/mobile_payment_product302_specific_input.rb
272
301
  - lib/onlinepayments/sdk/domain/mobile_payment_product320_specific_input.rb
302
+ - lib/onlinepayments/sdk/domain/mobile_three_d_secure_challenge_parameters.rb
273
303
  - lib/onlinepayments/sdk/domain/multiple_payment_information.rb
274
304
  - lib/onlinepayments/sdk/domain/omnichannel_payout_specific_input.rb
275
305
  - lib/onlinepayments/sdk/domain/operation_output.rb
306
+ - lib/onlinepayments/sdk/domain/operation_payment_references.rb
276
307
  - lib/onlinepayments/sdk/domain/order.rb
277
308
  - lib/onlinepayments/sdk/domain/order_line_details.rb
278
309
  - lib/onlinepayments/sdk/domain/order_references.rb
279
310
  - lib/onlinepayments/sdk/domain/order_status_output.rb
280
311
  - lib/onlinepayments/sdk/domain/order_type_information.rb
312
+ - lib/onlinepayments/sdk/domain/other_details.rb
281
313
  - lib/onlinepayments/sdk/domain/payment_account_on_file.rb
282
314
  - lib/onlinepayments/sdk/domain/payment_context.rb
283
315
  - lib/onlinepayments/sdk/domain/payment_creation_output.rb
@@ -293,6 +325,7 @@ files:
293
325
  - lib/onlinepayments/sdk/domain/payment_product130_specific_input.rb
294
326
  - lib/onlinepayments/sdk/domain/payment_product130_specific_three_d_secure.rb
295
327
  - lib/onlinepayments/sdk/domain/payment_product3012.rb
328
+ - lib/onlinepayments/sdk/domain/payment_product3012_specific_input.rb
296
329
  - lib/onlinepayments/sdk/domain/payment_product302_specific_data.rb
297
330
  - lib/onlinepayments/sdk/domain/payment_product3203_specific_output.rb
298
331
  - lib/onlinepayments/sdk/domain/payment_product3208_specific_input.rb
@@ -343,10 +376,13 @@ files:
343
376
  - lib/onlinepayments/sdk/domain/redirect_payment_method_specific_input.rb
344
377
  - lib/onlinepayments/sdk/domain/redirect_payment_method_specific_output.rb
345
378
  - lib/onlinepayments/sdk/domain/redirect_payment_product3203_specific_input.rb
379
+ - lib/onlinepayments/sdk/domain/redirect_payment_product3302_specific_input.rb
346
380
  - lib/onlinepayments/sdk/domain/redirect_payment_product3306_specific_input.rb
347
381
  - lib/onlinepayments/sdk/domain/redirect_payment_product5001_specific_input.rb
382
+ - lib/onlinepayments/sdk/domain/redirect_payment_product5300_specific_input.rb
348
383
  - lib/onlinepayments/sdk/domain/redirect_payment_product5406_specific_input.rb
349
384
  - lib/onlinepayments/sdk/domain/redirect_payment_product5408_specific_input.rb
385
+ - lib/onlinepayments/sdk/domain/redirect_payment_product5410_specific_input.rb
350
386
  - lib/onlinepayments/sdk/domain/redirect_payment_product809_specific_input.rb
351
387
  - lib/onlinepayments/sdk/domain/redirect_payment_product840_specific_input.rb
352
388
  - lib/onlinepayments/sdk/domain/redirection_data.rb
@@ -362,6 +398,7 @@ files:
362
398
  - lib/onlinepayments/sdk/domain/refund_response.rb
363
399
  - lib/onlinepayments/sdk/domain/refunds_response.rb
364
400
  - lib/onlinepayments/sdk/domain/regular_expression_validator.rb
401
+ - lib/onlinepayments/sdk/domain/send_test_request.rb
365
402
  - lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input.rb
366
403
  - lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input_base.rb
367
404
  - lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_output.rb
@@ -396,56 +433,74 @@ files:
396
433
  - lib/onlinepayments/sdk/domain/token_e_wallet.rb
397
434
  - lib/onlinepayments/sdk/domain/token_response.rb
398
435
  - lib/onlinepayments/sdk/domain/transaction.rb
436
+ - lib/onlinepayments/sdk/domain/uploadable_file.rb
437
+ - lib/onlinepayments/sdk/domain/validate_credentials_request.rb
438
+ - lib/onlinepayments/sdk/domain/validate_credentials_response.rb
399
439
  - lib/onlinepayments/sdk/domain/value_mapping_element.rb
400
- - lib/onlinepayments/sdk/endpoint_configuration.rb
401
- - lib/onlinepayments/sdk/exceptions.rb
440
+ - lib/onlinepayments/sdk/exception_factory.rb
402
441
  - lib/onlinepayments/sdk/factory.rb
403
442
  - lib/onlinepayments/sdk/idempotence_exception.rb
443
+ - lib/onlinepayments/sdk/json.rb
444
+ - lib/onlinepayments/sdk/json/default_marshaller.rb
445
+ - lib/onlinepayments/sdk/json/marshaller.rb
446
+ - lib/onlinepayments/sdk/json/marshaller_syntax_exception.rb
404
447
  - lib/onlinepayments/sdk/logging.rb
405
448
  - lib/onlinepayments/sdk/logging/communicator_logger.rb
406
449
  - lib/onlinepayments/sdk/logging/log_message_builder.rb
407
450
  - lib/onlinepayments/sdk/logging/logging_capable.rb
408
- - lib/onlinepayments/sdk/logging/logging_util.rb
451
+ - lib/onlinepayments/sdk/logging/obfuscation.rb
452
+ - lib/onlinepayments/sdk/logging/obfuscation/body_obfuscator.rb
453
+ - lib/onlinepayments/sdk/logging/obfuscation/header_obfuscator.rb
454
+ - lib/onlinepayments/sdk/logging/obfuscation/obfuscation_capable.rb
455
+ - lib/onlinepayments/sdk/logging/obfuscation/obfuscation_rule.rb
409
456
  - lib/onlinepayments/sdk/logging/request_log_message_builder.rb
410
457
  - lib/onlinepayments/sdk/logging/response_log_message_builder.rb
411
458
  - lib/onlinepayments/sdk/logging/ruby_communicator_logger.rb
412
459
  - lib/onlinepayments/sdk/logging/stdout_communicator_logger.rb
413
- - lib/onlinepayments/sdk/marshaller.rb
414
- - lib/onlinepayments/sdk/marshaller_syntax_exception.rb
460
+ - lib/onlinepayments/sdk/merchant.rb
461
+ - lib/onlinepayments/sdk/merchant/captures.rb
462
+ - lib/onlinepayments/sdk/merchant/captures/captures_client.rb
463
+ - lib/onlinepayments/sdk/merchant/complete.rb
464
+ - lib/onlinepayments/sdk/merchant/complete/complete_client.rb
465
+ - lib/onlinepayments/sdk/merchant/hostedcheckout.rb
415
466
  - lib/onlinepayments/sdk/merchant/hostedcheckout/hosted_checkout_client.rb
467
+ - lib/onlinepayments/sdk/merchant/hostedtokenization.rb
416
468
  - lib/onlinepayments/sdk/merchant/hostedtokenization/hosted_tokenization_client.rb
469
+ - lib/onlinepayments/sdk/merchant/mandates.rb
417
470
  - lib/onlinepayments/sdk/merchant/mandates/mandates_client.rb
418
471
  - lib/onlinepayments/sdk/merchant/merchant_client.rb
472
+ - lib/onlinepayments/sdk/merchant/paymentlinks.rb
419
473
  - lib/onlinepayments/sdk/merchant/paymentlinks/payment_links_client.rb
474
+ - lib/onlinepayments/sdk/merchant/payments.rb
420
475
  - lib/onlinepayments/sdk/merchant/payments/payments_client.rb
476
+ - lib/onlinepayments/sdk/merchant/payouts.rb
421
477
  - lib/onlinepayments/sdk/merchant/payouts/payouts_client.rb
478
+ - lib/onlinepayments/sdk/merchant/privacypolicy.rb
479
+ - lib/onlinepayments/sdk/merchant/privacypolicy/get_privacy_policy_params.rb
480
+ - lib/onlinepayments/sdk/merchant/privacypolicy/privacy_policy_client.rb
481
+ - lib/onlinepayments/sdk/merchant/productgroups.rb
422
482
  - lib/onlinepayments/sdk/merchant/productgroups/get_product_group_params.rb
423
483
  - lib/onlinepayments/sdk/merchant/productgroups/get_product_groups_params.rb
424
484
  - lib/onlinepayments/sdk/merchant/productgroups/product_groups_client.rb
485
+ - lib/onlinepayments/sdk/merchant/products.rb
425
486
  - lib/onlinepayments/sdk/merchant/products/get_payment_product_networks_params.rb
426
487
  - lib/onlinepayments/sdk/merchant/products/get_payment_product_params.rb
427
488
  - lib/onlinepayments/sdk/merchant/products/get_payment_products_params.rb
428
489
  - lib/onlinepayments/sdk/merchant/products/get_product_directory_params.rb
429
490
  - lib/onlinepayments/sdk/merchant/products/products_client.rb
430
- - lib/onlinepayments/sdk/merchant/services/get_privacy_policy_params.rb
491
+ - lib/onlinepayments/sdk/merchant/refunds.rb
492
+ - lib/onlinepayments/sdk/merchant/refunds/refunds_client.rb
493
+ - lib/onlinepayments/sdk/merchant/services.rb
431
494
  - lib/onlinepayments/sdk/merchant/services/services_client.rb
495
+ - lib/onlinepayments/sdk/merchant/sessions.rb
432
496
  - lib/onlinepayments/sdk/merchant/sessions/sessions_client.rb
497
+ - lib/onlinepayments/sdk/merchant/tokens.rb
433
498
  - lib/onlinepayments/sdk/merchant/tokens/tokens_client.rb
434
- - lib/onlinepayments/sdk/meta_data_provider.rb
435
- - lib/onlinepayments/sdk/modules.rb
436
- - lib/onlinepayments/sdk/multipart_form_data_object.rb
437
- - lib/onlinepayments/sdk/multipart_form_data_request.rb
438
- - lib/onlinepayments/sdk/not_found_exception.rb
439
- - lib/onlinepayments/sdk/param_request.rb
440
- - lib/onlinepayments/sdk/payment_platform_exception.rb
441
- - lib/onlinepayments/sdk/pooled_connection.rb
499
+ - lib/onlinepayments/sdk/merchant/webhooks.rb
500
+ - lib/onlinepayments/sdk/merchant/webhooks/webhooks_client.rb
501
+ - lib/onlinepayments/sdk/platform_exception.rb
442
502
  - lib/onlinepayments/sdk/proxy_configuration.rb
443
503
  - lib/onlinepayments/sdk/reference_exception.rb
444
- - lib/onlinepayments/sdk/request_header.rb
445
- - lib/onlinepayments/sdk/request_param.rb
446
- - lib/onlinepayments/sdk/response_exception.rb
447
- - lib/onlinepayments/sdk/response_header.rb
448
- - lib/onlinepayments/sdk/uploadable_file.rb
449
504
  - lib/onlinepayments/sdk/validation_exception.rb
450
505
  - lib/onlinepayments/sdk/webhooks.rb
451
506
  - lib/onlinepayments/sdk/webhooks/api_version_mismatch_exception.rb
@@ -453,10 +508,9 @@ files:
453
508
  - lib/onlinepayments/sdk/webhooks/secret_key_not_available_exception.rb
454
509
  - lib/onlinepayments/sdk/webhooks/secret_key_store.rb
455
510
  - lib/onlinepayments/sdk/webhooks/signature_validation_exception.rb
456
- - lib/onlinepayments/sdk/webhooks/webhooks.rb
511
+ - lib/onlinepayments/sdk/webhooks/signature_validator.rb
457
512
  - lib/onlinepayments/sdk/webhooks/webhooks_event.rb
458
513
  - lib/onlinepayments/sdk/webhooks/webhooks_helper.rb
459
- - lib/onlinepayments/sdk/webhooks/webhooks_helper_builder.rb
460
514
  - onlinepayments-sdk-ruby.gemspec
461
515
  homepage: https://github.com/wl-online-payments-direct/sdk-ruby
462
516
  licenses:
@@ -477,7 +531,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
477
531
  - !ruby/object:Gem::Version
478
532
  version: '0'
479
533
  requirements: []
480
- rubygems_version: 3.0.3
534
+ rubygems_version: 3.1.6
481
535
  signing_key:
482
536
  specification_version: 4
483
537
  summary: SDK to communicate with the Online Payments platform using the Online Payments
@@ -1,16 +0,0 @@
1
- module OnlinePayments::SDK
2
-
3
- # Abstract class that is responsible for authenticating requests sent to the Online Payments platform.
4
- class Authenticator
5
-
6
- # Creates a signature to authenticate a request.
7
- #
8
- # @param http_method [String] 'GET', 'PUT', 'POST' or 'DELETE' indicating which HTTP method will be used with the request
9
- # @param resource_uri [URI::HTTP] URI object that includes #path and #query of the URL that will be used, #query may be *nil*
10
- # @param request_headers [Array<OnlinePayments::SDK::RequestHeader>] all headers used by the request
11
- # @return [String] the created signature
12
- def create_simple_authentication_signature(http_method, resource_uri, request_headers)
13
- raise NotImplementedError
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- module OnlinePayments::SDK
2
-
3
- # This exception is used when an error occurs during network communication with the Online Payments platform.
4
- # A common cause is a timeout while connecting or when receiving or sending data.
5
- #
6
- # @attr [Exception] cause The error that is the cause of this error.
7
- class CommunicationException < RuntimeError
8
-
9
- def initialize(cause)
10
- super()
11
- @cause = cause
12
- end
13
-
14
- attr_accessor :cause
15
- end
16
- end
@@ -1,41 +0,0 @@
1
- module OnlinePayments::SDK
2
-
3
- # Class used to communicate using the HTTP (or HTTPS) protocol.
4
- # Performs GET, DELETE, POST and PUT requests given a target uri and request headers.
5
- # @see OnlinePayments::SDK::DefaultImpl::DefaultConnection
6
- class Connection
7
- include OnlinePayments::SDK::Logging::LoggingCapable
8
-
9
- # Performs a GET request to _uri_ using _request_headers_,
10
- # and yields the response as the status code, headers and body.
11
- #
12
- # @yield (Integer, Array<OnlinePayments::SDK::ResponseHeader>, IO) The status code, headers and body of the response.
13
- def get(uri, request_headers)
14
- raise NotImplementedError
15
- end
16
-
17
- # Performs a DELETE request to _uri_ using _request_headers_,
18
- # and yields the response as the status code, headers and body.
19
- #
20
- # @yield (Integer, Array<OnlinePayments::SDK::ResponseHeader>, IO) The status code, headers and body of the response.
21
- def delete(uri, request_headers)
22
- raise NotImplementedError
23
- end
24
-
25
- # Performs a POST request to _uri_ using _request_headers_ and _body_,
26
- # and yields the response as the status code, headers and body.
27
- #
28
- # @yield (Integer, Array<OnlinePayments::SDK::ResponseHeader>, IO) The status code, headers and body of the response.
29
- def post(uri, request_headers, body)
30
- raise NotImplementedError
31
- end
32
-
33
- # Performs a PUT request to _uri_ using _request_headers_ and _body_,
34
- # and yields the response as the status code, headers and body.
35
- #
36
- # @yield (Integer, Array<OnlinePayments::SDK::ResponseHeader>, IO) The status code, headers and body of the response.
37
- def put(uri, request_headers, body)
38
- raise NotImplementedError
39
- end
40
- end
41
- end
@@ -1,31 +0,0 @@
1
- require 'json'
2
-
3
- module OnlinePayments::SDK
4
-
5
- # Base class for all SDK data objects, supports marshalling and unmarshalling the data object to and from JSON.
6
- class DataObject
7
-
8
- # Returns a hash representation of the DataObject.
9
- # The hash contains camelCase representations of the variables, and their values.
10
- # Should be overridden to add all instance variables of the object.
11
- #
12
- # @return [Hash]
13
- def to_h
14
- {}
15
- end
16
-
17
- # Create a new instance of this object (DataObject or descendant)
18
- # from a hash containing attribute values in camelCase.
19
- # Note that the hash contains Strings as keys instead of more commonly used tokens.
20
- def self.new_from_hash(hash)
21
- obj = self.new
22
- obj.from_hash(hash)
23
- obj
24
- end
25
-
26
- # Set attributes from values in parameter hash.
27
- # Should be overridden by descendants in order to properly restore their attributes from the hash.
28
- # Note that the hash contains Strings as keys instead of more commonly used tokens.
29
- def from_hash(hash) end
30
- end
31
- end
@@ -1,24 +0,0 @@
1
- module OnlinePayments::SDK
2
- module DefaultImpl
3
-
4
- # Contains all authentication schemes supported by the GlobabCollect platform.
5
- class AuthorizationType
6
- V1HMAC = 'v1HMAC'
7
-
8
- # @return [String] the authorization string that belongs to the parameter _authorization_, or _nil_ if not found.
9
- def self.get_authorization(authorization)
10
- case authorization.downcase
11
- when V1HMAC.downcase
12
- return V1HMAC
13
- else
14
- raise ArgumentError "Unknown authorization type '#{authorization}'"
15
- end
16
- end
17
-
18
- # @return [String]
19
- def self.get_signature_string
20
- V1HMAC
21
- end
22
- end
23
- end
24
- end
@@ -1,108 +0,0 @@
1
- require 'openssl' # for HMAC-SHA256
2
- require 'base64'
3
-
4
- module OnlinePayments::SDK
5
- module DefaultImpl
6
-
7
- # Authenticates requests made to the Online Payments platform using the HMAC algorithm.
8
- class DefaultAuthenticator < Authenticator
9
-
10
- # HMAC algorithm used to generate the signature
11
- HMAC_ALGOR = 'SHA256'.freeze
12
- CONTENT_TYPE = 'Content-Type'.freeze
13
- DATE = 'Date'.freeze
14
- XGCS = 'x-gcs'.freeze
15
-
16
- # Construct a new DefaultAuthenticator instance that can sign requests
17
- # with the provided _api_key_id_ and _secret_api_key_.
18
- #
19
- # @param api_key_id [String] identifier for the secret key used in authentication.
20
- # @param secret_api_key [String] the secret key that is used to generate the authentication signature.
21
- # @param authorization_type [String] the authorization protocol to use for authentication.
22
- def initialize(api_key_id, secret_api_key, authorization_type = AuthorizationType::V1HMAC)
23
- raise ArgumentError unless api_key_id && !api_key_id.strip.empty?
24
- raise ArgumentError unless secret_api_key && !secret_api_key.strip.empty?
25
- raise ArgumentError unless authorization_type && !authorization_type.strip.empty?
26
-
27
- @api_key_id = api_key_id
28
- @secret_api_key = secret_api_key
29
- @authorization_type = authorization_type
30
- end
31
-
32
- # Creates a signature to authenticate a request.
33
- #
34
- # @param http_method [String] 'GET', 'PUT', 'POST' or 'DELETE' indicating which HTTP method will be used with the request
35
- # @param resource_uri [URI::HTTP] URI object that includes #path and #query of the URL that will be used, #query may be *nil*
36
- # @param http_headers [Array<OnlinePayments::SDK::RequestHeader>] list that contains all headers used by the request
37
- # @return [String] the created signature
38
- def create_simple_authentication_signature(http_method, resource_uri, http_headers)
39
- raise ArgumentError unless http_method && !http_method.strip.empty?
40
- raise ArgumentError unless resource_uri
41
-
42
- data_to_sign = to_data_to_sign(http_method, resource_uri, http_headers)
43
- "GCS #{@authorization_type}:#{@api_key_id}:#{create_auth_signature(data_to_sign)}"
44
- end
45
-
46
- protected
47
-
48
- # Canonizes the _http_method_, _resource_uri_ and _http_headers_ so a unique signature can be generated.
49
- # Canonical form is as follows:
50
- # * _http_method_ in upper case
51
- # * Content-Type
52
- # * Date header
53
- # * X-GCS headers sorted alphabetically. Names are in lowercase and values are stripped of excess whitespace
54
- # * path and query portion of the uri, separated by a question mark
55
- def to_data_to_sign(http_method, resource_uri, http_headers)
56
- content_type = ''
57
- date = ''
58
- canonical_resource = to_canonical_resource(resource_uri)
59
- xgc_http_headers = []
60
-
61
- http_headers&.each do |header|
62
- name = header.name
63
- value = header.value
64
- case
65
- when name.casecmp(CONTENT_TYPE).zero?
66
- content_type = value
67
- when name.casecmp(DATE).zero?
68
- date = value
69
- when to_canonical_header_name(name).start_with?("x-gcs")
70
- xgc_http_headers << [to_canonical_header_name(name), to_canonical_header_value(value)]
71
- end
72
- end
73
-
74
- xgc_http_headers.sort! { |(h1, v1), (h2, v2)| h1 <=> h2 } unless xgc_http_headers.empty?
75
-
76
- data = "#{http_method.upcase}\n#{content_type}\n#{date}\n"
77
- data << xgc_http_headers.inject('') { |s, (k, v)| "#{s}#{k}:#{v}\n" } unless xgc_http_headers.empty?
78
- data << "#{canonical_resource}\n" if canonical_resource
79
- end
80
-
81
- # Applies the HMAC algorithm to the canonicalized data to obtain an HMAC digest.
82
- # Afterwards the HMAC digest is encoded using base64 encoding.
83
- def create_auth_signature(data_to_sign)
84
- digest = OpenSSL::Digest.new(HMAC_ALGOR)
85
- hmac = OpenSSL::HMAC.digest(digest, @secret_api_key, data_to_sign)
86
- Base64.strict_encode64(hmac).strip
87
- end
88
-
89
- private
90
-
91
- # Returns the encoded URI path without the HTTP method and including all decoded query parameters.
92
- def to_canonical_resource(resource_uri)
93
- return "#{resource_uri.path}?#{resource_uri.query}" if resource_uri.query
94
- resource_uri.path
95
- end
96
-
97
- def to_canonical_header_name(original_name)
98
- original_name ? original_name.downcase : original_name
99
- end
100
-
101
- # Strips a header value of excess whitespace to produce a canonical value
102
- def to_canonical_header_value(original_value)
103
- return '' unless original_value
104
- original_value.gsub(/\r?\n[\s&&[^\r\n]]*/, ' ').strip
105
- end
106
- end
107
- end
108
- end