onlinepayments-sdk-ruby 4.23.0 → 5.1.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 (414) 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 +142 -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 +127 -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 +42 -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 +54 -30
  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 +81 -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/reattempt_instructions.rb +46 -0
  237. data/lib/onlinepayments/sdk/domain/reattempt_instructions_conditions.rb +37 -0
  238. data/lib/onlinepayments/sdk/domain/redirect_data.rb +27 -20
  239. data/lib/onlinepayments/sdk/domain/redirect_payment_method_specific_input.rb +166 -88
  240. data/lib/onlinepayments/sdk/domain/redirect_payment_method_specific_output.rb +95 -75
  241. data/lib/onlinepayments/sdk/domain/redirect_payment_product3203_specific_input.rb +20 -16
  242. data/lib/onlinepayments/sdk/domain/redirect_payment_product3204_specific_input.rb +30 -0
  243. data/lib/onlinepayments/sdk/domain/redirect_payment_product3302_specific_input.rb +44 -0
  244. data/lib/onlinepayments/sdk/domain/redirect_payment_product3306_specific_input.rb +20 -16
  245. data/lib/onlinepayments/sdk/domain/redirect_payment_product5001_specific_input.rb +27 -16
  246. data/lib/onlinepayments/sdk/domain/redirect_payment_product5300_specific_input.rb +72 -0
  247. data/lib/onlinepayments/sdk/domain/redirect_payment_product5402_specific_input.rb +30 -0
  248. data/lib/onlinepayments/sdk/domain/redirect_payment_product5403_specific_input.rb +30 -0
  249. data/lib/onlinepayments/sdk/domain/redirect_payment_product5406_specific_input.rb +20 -18
  250. data/lib/onlinepayments/sdk/domain/redirect_payment_product5408_specific_input.rb +27 -22
  251. data/lib/onlinepayments/sdk/domain/redirect_payment_product5410_specific_input.rb +32 -0
  252. data/lib/onlinepayments/sdk/domain/redirect_payment_product809_specific_input.rb +20 -16
  253. data/lib/onlinepayments/sdk/domain/redirect_payment_product840_specific_input.rb +41 -20
  254. data/lib/onlinepayments/sdk/domain/redirection_data.rb +20 -16
  255. data/lib/onlinepayments/sdk/domain/refund_card_method_specific_output.rb +34 -26
  256. data/lib/onlinepayments/sdk/domain/refund_e_wallet_method_specific_output.rb +34 -26
  257. data/lib/onlinepayments/sdk/domain/refund_error_response.rb +37 -31
  258. data/lib/onlinepayments/sdk/domain/refund_mobile_method_specific_output.rb +34 -24
  259. data/lib/onlinepayments/sdk/domain/refund_output.rb +89 -64
  260. data/lib/onlinepayments/sdk/domain/refund_payment_product840_customer_account.rb +34 -24
  261. data/lib/onlinepayments/sdk/domain/refund_payment_product840_specific_output.rb +20 -18
  262. data/lib/onlinepayments/sdk/domain/refund_redirect_method_specific_output.rb +27 -20
  263. data/lib/onlinepayments/sdk/domain/refund_request.rb +43 -24
  264. data/lib/onlinepayments/sdk/domain/refund_response.rb +41 -32
  265. data/lib/onlinepayments/sdk/domain/refunds_response.rb +22 -20
  266. data/lib/onlinepayments/sdk/domain/regular_expression_validator.rb +20 -16
  267. data/lib/onlinepayments/sdk/domain/send_test_request.rb +30 -0
  268. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input.rb +27 -22
  269. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input_base.rb +27 -22
  270. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_output.rb +34 -28
  271. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input.rb +27 -22
  272. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input_base.rb +27 -22
  273. data/lib/onlinepayments/sdk/domain/session_request.rb +22 -20
  274. data/lib/onlinepayments/sdk/domain/session_response.rb +53 -39
  275. data/lib/onlinepayments/sdk/domain/shipping.rb +76 -52
  276. data/lib/onlinepayments/sdk/domain/shipping_method.rb +41 -28
  277. data/lib/onlinepayments/sdk/domain/shopping_cart.rb +62 -48
  278. data/lib/onlinepayments/sdk/domain/shopping_cart_extension.rb +51 -43
  279. data/lib/onlinepayments/sdk/domain/show_form_data.rb +35 -31
  280. data/lib/onlinepayments/sdk/domain/show_instructions_data.rb +30 -0
  281. data/lib/onlinepayments/sdk/domain/subsequent_card_payment_method_specific_input.rb +60 -39
  282. data/lib/onlinepayments/sdk/domain/subsequent_payment_product5001_specific_input.rb +20 -16
  283. data/lib/onlinepayments/sdk/domain/subsequent_payment_request.rb +35 -31
  284. data/lib/onlinepayments/sdk/domain/subsequent_payment_response.rb +20 -18
  285. data/lib/onlinepayments/sdk/domain/surcharge.rb +59 -48
  286. data/lib/onlinepayments/sdk/domain/surcharge_calculation_card.rb +27 -20
  287. data/lib/onlinepayments/sdk/domain/surcharge_for_payment_link.rb +20 -16
  288. data/lib/onlinepayments/sdk/domain/surcharge_rate.rb +41 -28
  289. data/lib/onlinepayments/sdk/domain/surcharge_specific_input.rb +27 -22
  290. data/lib/onlinepayments/sdk/domain/surcharge_specific_output.rb +34 -28
  291. data/lib/onlinepayments/sdk/domain/test_connection.rb +20 -16
  292. data/lib/onlinepayments/sdk/domain/three_d_secure.rb +98 -63
  293. data/lib/onlinepayments/sdk/domain/three_d_secure_base.rb +78 -52
  294. data/lib/onlinepayments/sdk/domain/three_d_secure_data.rb +34 -24
  295. data/lib/onlinepayments/sdk/domain/three_d_secure_results.rb +107 -67
  296. data/lib/onlinepayments/sdk/domain/token_card.rb +27 -22
  297. data/lib/onlinepayments/sdk/domain/token_card_data.rb +27 -18
  298. data/lib/onlinepayments/sdk/domain/token_card_specific_input.rb +20 -18
  299. data/lib/onlinepayments/sdk/domain/token_data.rb +27 -18
  300. data/lib/onlinepayments/sdk/domain/token_e_wallet.rb +28 -22
  301. data/lib/onlinepayments/sdk/domain/token_response.rb +58 -45
  302. data/lib/onlinepayments/sdk/domain/transaction.rb +20 -18
  303. data/lib/onlinepayments/sdk/domain/uploadable_file.rb +33 -0
  304. data/lib/onlinepayments/sdk/domain/validate_credentials_request.rb +37 -0
  305. data/lib/onlinepayments/sdk/domain/validate_credentials_response.rb +30 -0
  306. data/lib/onlinepayments/sdk/domain/value_mapping_element.rb +29 -24
  307. data/lib/onlinepayments/sdk/domain.rb +4 -0
  308. data/lib/onlinepayments/sdk/exception_factory.rb +76 -0
  309. data/lib/onlinepayments/sdk/factory.rb +163 -118
  310. data/lib/onlinepayments/sdk/idempotence_exception.rb +23 -19
  311. data/lib/onlinepayments/sdk/json/default_marshaller.rb +34 -0
  312. data/lib/onlinepayments/sdk/json/marshaller.rb +27 -0
  313. data/lib/onlinepayments/sdk/json/marshaller_syntax_exception.rb +9 -0
  314. data/lib/onlinepayments/sdk/json.rb +1 -0
  315. data/lib/onlinepayments/sdk/logging/communicator_logger.rb +18 -16
  316. data/lib/onlinepayments/sdk/logging/log_message_builder.rb +80 -47
  317. data/lib/onlinepayments/sdk/logging/logging_capable.rb +1 -1
  318. data/lib/onlinepayments/sdk/logging/obfuscation/body_obfuscator.rb +113 -0
  319. data/lib/onlinepayments/sdk/logging/obfuscation/header_obfuscator.rb +54 -0
  320. data/lib/onlinepayments/sdk/logging/obfuscation/obfuscation_capable.rb +21 -0
  321. data/lib/onlinepayments/sdk/logging/obfuscation/obfuscation_rule.rb +47 -0
  322. data/lib/onlinepayments/sdk/logging/obfuscation.rb +1 -0
  323. data/lib/onlinepayments/sdk/logging/request_log_message_builder.rb +40 -29
  324. data/lib/onlinepayments/sdk/logging/response_log_message_builder.rb +30 -23
  325. data/lib/onlinepayments/sdk/logging/ruby_communicator_logger.rb +49 -45
  326. data/lib/onlinepayments/sdk/logging/stdout_communicator_logger.rb +20 -23
  327. data/lib/onlinepayments/sdk/logging.rb +1 -10
  328. data/lib/onlinepayments/sdk/merchant/captures/captures_client.rb +57 -0
  329. data/lib/onlinepayments/sdk/merchant/captures.rb +4 -0
  330. data/lib/onlinepayments/sdk/merchant/complete/complete_client.rb +60 -0
  331. data/lib/onlinepayments/sdk/merchant/complete.rb +4 -0
  332. data/lib/onlinepayments/sdk/merchant/hostedcheckout/hosted_checkout_client.rb +72 -71
  333. data/lib/onlinepayments/sdk/merchant/hostedcheckout.rb +4 -0
  334. data/lib/onlinepayments/sdk/merchant/hostedtokenization/hosted_tokenization_client.rb +72 -71
  335. data/lib/onlinepayments/sdk/merchant/hostedtokenization.rb +4 -0
  336. data/lib/onlinepayments/sdk/merchant/mandates/mandates_client.rb +165 -164
  337. data/lib/onlinepayments/sdk/merchant/mandates.rb +4 -0
  338. data/lib/onlinepayments/sdk/merchant/merchant_client.rb +116 -64
  339. data/lib/onlinepayments/sdk/merchant/paymentlinks/payment_links_client.rb +102 -101
  340. data/lib/onlinepayments/sdk/merchant/paymentlinks.rb +4 -0
  341. data/lib/onlinepayments/sdk/merchant/payments/payments_client.rb +233 -332
  342. data/lib/onlinepayments/sdk/merchant/payments.rb +4 -0
  343. data/lib/onlinepayments/sdk/merchant/payouts/payouts_client.rb +73 -71
  344. data/lib/onlinepayments/sdk/merchant/payouts.rb +4 -0
  345. data/lib/onlinepayments/sdk/merchant/privacypolicy/get_privacy_policy_params.rb +32 -0
  346. data/lib/onlinepayments/sdk/merchant/privacypolicy/privacy_policy_client.rb +54 -0
  347. data/lib/onlinepayments/sdk/merchant/privacypolicy.rb +4 -0
  348. data/lib/onlinepayments/sdk/merchant/productgroups/get_product_group_params.rb +50 -47
  349. data/lib/onlinepayments/sdk/merchant/productgroups/get_product_groups_params.rb +50 -47
  350. data/lib/onlinepayments/sdk/merchant/productgroups/product_groups_client.rb +72 -72
  351. data/lib/onlinepayments/sdk/merchant/productgroups.rb +4 -0
  352. data/lib/onlinepayments/sdk/merchant/products/get_payment_product_networks_params.rb +27 -25
  353. data/lib/onlinepayments/sdk/merchant/products/get_payment_product_params.rb +50 -47
  354. data/lib/onlinepayments/sdk/merchant/products/get_payment_products_params.rb +50 -47
  355. data/lib/onlinepayments/sdk/merchant/products/get_product_directory_params.rb +21 -19
  356. data/lib/onlinepayments/sdk/merchant/products/products_client.rb +134 -136
  357. data/lib/onlinepayments/sdk/merchant/products.rb +4 -0
  358. data/lib/onlinepayments/sdk/merchant/refunds/refunds_client.rb +57 -0
  359. data/lib/onlinepayments/sdk/merchant/refunds.rb +4 -0
  360. data/lib/onlinepayments/sdk/merchant/services/services_client.rb +124 -155
  361. data/lib/onlinepayments/sdk/merchant/services.rb +4 -0
  362. data/lib/onlinepayments/sdk/merchant/sessions/sessions_client.rb +42 -41
  363. data/lib/onlinepayments/sdk/merchant/sessions.rb +4 -0
  364. data/lib/onlinepayments/sdk/merchant/tokens/tokens_client.rb +101 -100
  365. data/lib/onlinepayments/sdk/merchant/tokens.rb +4 -0
  366. data/lib/onlinepayments/sdk/merchant/webhooks/webhooks_client.rb +83 -0
  367. data/lib/onlinepayments/sdk/merchant/webhooks.rb +4 -0
  368. data/lib/onlinepayments/sdk/merchant.rb +4 -0
  369. data/lib/onlinepayments/sdk/platform_exception.rb +19 -0
  370. data/lib/onlinepayments/sdk/proxy_configuration.rb +60 -60
  371. data/lib/onlinepayments/sdk/reference_exception.rb +14 -9
  372. data/lib/onlinepayments/sdk/validation_exception.rb +14 -9
  373. data/lib/onlinepayments/sdk/webhooks/api_version_mismatch_exception.rb +17 -15
  374. data/lib/onlinepayments/sdk/webhooks/in_memory_secret_key_store.rb +46 -43
  375. data/lib/onlinepayments/sdk/webhooks/secret_key_not_available_exception.rb +16 -12
  376. data/lib/onlinepayments/sdk/webhooks/secret_key_store.rb +13 -11
  377. data/lib/onlinepayments/sdk/webhooks/signature_validation_exception.rb +15 -14
  378. data/lib/onlinepayments/sdk/webhooks/signature_validator.rb +81 -0
  379. data/lib/onlinepayments/sdk/webhooks/webhooks_event.rb +84 -53
  380. data/lib/onlinepayments/sdk/webhooks/webhooks_helper.rb +28 -90
  381. data/lib/onlinepayments/sdk/webhooks.rb +1 -11
  382. data/lib/onlinepayments/sdk.rb +4 -26
  383. data/onlinepayments-sdk-ruby.gemspec +3 -2
  384. metadata +95 -35
  385. data/lib/onlinepayments/sdk/authenticator.rb +0 -16
  386. data/lib/onlinepayments/sdk/communication_exception.rb +0 -16
  387. data/lib/onlinepayments/sdk/connection.rb +0 -41
  388. data/lib/onlinepayments/sdk/data_object.rb +0 -31
  389. data/lib/onlinepayments/sdk/defaultimpl/authorization_type.rb +0 -24
  390. data/lib/onlinepayments/sdk/defaultimpl/default_authenticator.rb +0 -108
  391. data/lib/onlinepayments/sdk/defaultimpl/default_connection.rb +0 -365
  392. data/lib/onlinepayments/sdk/defaultimpl/default_marshaller.rb +0 -32
  393. data/lib/onlinepayments/sdk/defaultimpl.rb +0 -6
  394. data/lib/onlinepayments/sdk/endpoint_configuration.rb +0 -127
  395. data/lib/onlinepayments/sdk/exceptions.rb +0 -8
  396. data/lib/onlinepayments/sdk/logging/logging_util.rb +0 -286
  397. data/lib/onlinepayments/sdk/marshaller.rb +0 -24
  398. data/lib/onlinepayments/sdk/marshaller_syntax_exception.rb +0 -6
  399. data/lib/onlinepayments/sdk/merchant/services/get_privacy_policy_params.rb +0 -30
  400. data/lib/onlinepayments/sdk/meta_data_provider.rb +0 -150
  401. data/lib/onlinepayments/sdk/modules.rb +0 -62
  402. data/lib/onlinepayments/sdk/multipart_form_data_object.rb +0 -44
  403. data/lib/onlinepayments/sdk/multipart_form_data_request.rb +0 -9
  404. data/lib/onlinepayments/sdk/not_found_exception.rb +0 -16
  405. data/lib/onlinepayments/sdk/param_request.rb +0 -11
  406. data/lib/onlinepayments/sdk/payment_platform_exception.rb +0 -15
  407. data/lib/onlinepayments/sdk/pooled_connection.rb +0 -21
  408. data/lib/onlinepayments/sdk/request_header.rb +0 -50
  409. data/lib/onlinepayments/sdk/request_param.rb +0 -23
  410. data/lib/onlinepayments/sdk/response_exception.rb +0 -47
  411. data/lib/onlinepayments/sdk/response_header.rb +0 -42
  412. data/lib/onlinepayments/sdk/uploadable_file.rb +0 -30
  413. data/lib/onlinepayments/sdk/webhooks/webhooks.rb +0 -22
  414. 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.1.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-05-22 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
@@ -339,14 +372,22 @@ files:
339
372
  - lib/onlinepayments/sdk/domain/protection_eligibility.rb
340
373
  - lib/onlinepayments/sdk/domain/range_validator.rb
341
374
  - lib/onlinepayments/sdk/domain/rate_details.rb
375
+ - lib/onlinepayments/sdk/domain/reattempt_instructions.rb
376
+ - lib/onlinepayments/sdk/domain/reattempt_instructions_conditions.rb
342
377
  - lib/onlinepayments/sdk/domain/redirect_data.rb
343
378
  - lib/onlinepayments/sdk/domain/redirect_payment_method_specific_input.rb
344
379
  - lib/onlinepayments/sdk/domain/redirect_payment_method_specific_output.rb
345
380
  - lib/onlinepayments/sdk/domain/redirect_payment_product3203_specific_input.rb
381
+ - lib/onlinepayments/sdk/domain/redirect_payment_product3204_specific_input.rb
382
+ - lib/onlinepayments/sdk/domain/redirect_payment_product3302_specific_input.rb
346
383
  - lib/onlinepayments/sdk/domain/redirect_payment_product3306_specific_input.rb
347
384
  - lib/onlinepayments/sdk/domain/redirect_payment_product5001_specific_input.rb
385
+ - lib/onlinepayments/sdk/domain/redirect_payment_product5300_specific_input.rb
386
+ - lib/onlinepayments/sdk/domain/redirect_payment_product5402_specific_input.rb
387
+ - lib/onlinepayments/sdk/domain/redirect_payment_product5403_specific_input.rb
348
388
  - lib/onlinepayments/sdk/domain/redirect_payment_product5406_specific_input.rb
349
389
  - lib/onlinepayments/sdk/domain/redirect_payment_product5408_specific_input.rb
390
+ - lib/onlinepayments/sdk/domain/redirect_payment_product5410_specific_input.rb
350
391
  - lib/onlinepayments/sdk/domain/redirect_payment_product809_specific_input.rb
351
392
  - lib/onlinepayments/sdk/domain/redirect_payment_product840_specific_input.rb
352
393
  - lib/onlinepayments/sdk/domain/redirection_data.rb
@@ -362,6 +403,7 @@ files:
362
403
  - lib/onlinepayments/sdk/domain/refund_response.rb
363
404
  - lib/onlinepayments/sdk/domain/refunds_response.rb
364
405
  - lib/onlinepayments/sdk/domain/regular_expression_validator.rb
406
+ - lib/onlinepayments/sdk/domain/send_test_request.rb
365
407
  - lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input.rb
366
408
  - lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input_base.rb
367
409
  - lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_output.rb
@@ -374,6 +416,7 @@ files:
374
416
  - lib/onlinepayments/sdk/domain/shopping_cart.rb
375
417
  - lib/onlinepayments/sdk/domain/shopping_cart_extension.rb
376
418
  - lib/onlinepayments/sdk/domain/show_form_data.rb
419
+ - lib/onlinepayments/sdk/domain/show_instructions_data.rb
377
420
  - lib/onlinepayments/sdk/domain/subsequent_card_payment_method_specific_input.rb
378
421
  - lib/onlinepayments/sdk/domain/subsequent_payment_product5001_specific_input.rb
379
422
  - lib/onlinepayments/sdk/domain/subsequent_payment_request.rb
@@ -396,56 +439,74 @@ files:
396
439
  - lib/onlinepayments/sdk/domain/token_e_wallet.rb
397
440
  - lib/onlinepayments/sdk/domain/token_response.rb
398
441
  - lib/onlinepayments/sdk/domain/transaction.rb
442
+ - lib/onlinepayments/sdk/domain/uploadable_file.rb
443
+ - lib/onlinepayments/sdk/domain/validate_credentials_request.rb
444
+ - lib/onlinepayments/sdk/domain/validate_credentials_response.rb
399
445
  - lib/onlinepayments/sdk/domain/value_mapping_element.rb
400
- - lib/onlinepayments/sdk/endpoint_configuration.rb
401
- - lib/onlinepayments/sdk/exceptions.rb
446
+ - lib/onlinepayments/sdk/exception_factory.rb
402
447
  - lib/onlinepayments/sdk/factory.rb
403
448
  - lib/onlinepayments/sdk/idempotence_exception.rb
449
+ - lib/onlinepayments/sdk/json.rb
450
+ - lib/onlinepayments/sdk/json/default_marshaller.rb
451
+ - lib/onlinepayments/sdk/json/marshaller.rb
452
+ - lib/onlinepayments/sdk/json/marshaller_syntax_exception.rb
404
453
  - lib/onlinepayments/sdk/logging.rb
405
454
  - lib/onlinepayments/sdk/logging/communicator_logger.rb
406
455
  - lib/onlinepayments/sdk/logging/log_message_builder.rb
407
456
  - lib/onlinepayments/sdk/logging/logging_capable.rb
408
- - lib/onlinepayments/sdk/logging/logging_util.rb
457
+ - lib/onlinepayments/sdk/logging/obfuscation.rb
458
+ - lib/onlinepayments/sdk/logging/obfuscation/body_obfuscator.rb
459
+ - lib/onlinepayments/sdk/logging/obfuscation/header_obfuscator.rb
460
+ - lib/onlinepayments/sdk/logging/obfuscation/obfuscation_capable.rb
461
+ - lib/onlinepayments/sdk/logging/obfuscation/obfuscation_rule.rb
409
462
  - lib/onlinepayments/sdk/logging/request_log_message_builder.rb
410
463
  - lib/onlinepayments/sdk/logging/response_log_message_builder.rb
411
464
  - lib/onlinepayments/sdk/logging/ruby_communicator_logger.rb
412
465
  - lib/onlinepayments/sdk/logging/stdout_communicator_logger.rb
413
- - lib/onlinepayments/sdk/marshaller.rb
414
- - lib/onlinepayments/sdk/marshaller_syntax_exception.rb
466
+ - lib/onlinepayments/sdk/merchant.rb
467
+ - lib/onlinepayments/sdk/merchant/captures.rb
468
+ - lib/onlinepayments/sdk/merchant/captures/captures_client.rb
469
+ - lib/onlinepayments/sdk/merchant/complete.rb
470
+ - lib/onlinepayments/sdk/merchant/complete/complete_client.rb
471
+ - lib/onlinepayments/sdk/merchant/hostedcheckout.rb
415
472
  - lib/onlinepayments/sdk/merchant/hostedcheckout/hosted_checkout_client.rb
473
+ - lib/onlinepayments/sdk/merchant/hostedtokenization.rb
416
474
  - lib/onlinepayments/sdk/merchant/hostedtokenization/hosted_tokenization_client.rb
475
+ - lib/onlinepayments/sdk/merchant/mandates.rb
417
476
  - lib/onlinepayments/sdk/merchant/mandates/mandates_client.rb
418
477
  - lib/onlinepayments/sdk/merchant/merchant_client.rb
478
+ - lib/onlinepayments/sdk/merchant/paymentlinks.rb
419
479
  - lib/onlinepayments/sdk/merchant/paymentlinks/payment_links_client.rb
480
+ - lib/onlinepayments/sdk/merchant/payments.rb
420
481
  - lib/onlinepayments/sdk/merchant/payments/payments_client.rb
482
+ - lib/onlinepayments/sdk/merchant/payouts.rb
421
483
  - lib/onlinepayments/sdk/merchant/payouts/payouts_client.rb
484
+ - lib/onlinepayments/sdk/merchant/privacypolicy.rb
485
+ - lib/onlinepayments/sdk/merchant/privacypolicy/get_privacy_policy_params.rb
486
+ - lib/onlinepayments/sdk/merchant/privacypolicy/privacy_policy_client.rb
487
+ - lib/onlinepayments/sdk/merchant/productgroups.rb
422
488
  - lib/onlinepayments/sdk/merchant/productgroups/get_product_group_params.rb
423
489
  - lib/onlinepayments/sdk/merchant/productgroups/get_product_groups_params.rb
424
490
  - lib/onlinepayments/sdk/merchant/productgroups/product_groups_client.rb
491
+ - lib/onlinepayments/sdk/merchant/products.rb
425
492
  - lib/onlinepayments/sdk/merchant/products/get_payment_product_networks_params.rb
426
493
  - lib/onlinepayments/sdk/merchant/products/get_payment_product_params.rb
427
494
  - lib/onlinepayments/sdk/merchant/products/get_payment_products_params.rb
428
495
  - lib/onlinepayments/sdk/merchant/products/get_product_directory_params.rb
429
496
  - lib/onlinepayments/sdk/merchant/products/products_client.rb
430
- - lib/onlinepayments/sdk/merchant/services/get_privacy_policy_params.rb
497
+ - lib/onlinepayments/sdk/merchant/refunds.rb
498
+ - lib/onlinepayments/sdk/merchant/refunds/refunds_client.rb
499
+ - lib/onlinepayments/sdk/merchant/services.rb
431
500
  - lib/onlinepayments/sdk/merchant/services/services_client.rb
501
+ - lib/onlinepayments/sdk/merchant/sessions.rb
432
502
  - lib/onlinepayments/sdk/merchant/sessions/sessions_client.rb
503
+ - lib/onlinepayments/sdk/merchant/tokens.rb
433
504
  - 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
505
+ - lib/onlinepayments/sdk/merchant/webhooks.rb
506
+ - lib/onlinepayments/sdk/merchant/webhooks/webhooks_client.rb
507
+ - lib/onlinepayments/sdk/platform_exception.rb
442
508
  - lib/onlinepayments/sdk/proxy_configuration.rb
443
509
  - 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
510
  - lib/onlinepayments/sdk/validation_exception.rb
450
511
  - lib/onlinepayments/sdk/webhooks.rb
451
512
  - lib/onlinepayments/sdk/webhooks/api_version_mismatch_exception.rb
@@ -453,10 +514,9 @@ files:
453
514
  - lib/onlinepayments/sdk/webhooks/secret_key_not_available_exception.rb
454
515
  - lib/onlinepayments/sdk/webhooks/secret_key_store.rb
455
516
  - lib/onlinepayments/sdk/webhooks/signature_validation_exception.rb
456
- - lib/onlinepayments/sdk/webhooks/webhooks.rb
517
+ - lib/onlinepayments/sdk/webhooks/signature_validator.rb
457
518
  - lib/onlinepayments/sdk/webhooks/webhooks_event.rb
458
519
  - lib/onlinepayments/sdk/webhooks/webhooks_helper.rb
459
- - lib/onlinepayments/sdk/webhooks/webhooks_helper_builder.rb
460
520
  - onlinepayments-sdk-ruby.gemspec
461
521
  homepage: https://github.com/wl-online-payments-direct/sdk-ruby
462
522
  licenses:
@@ -477,7 +537,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
477
537
  - !ruby/object:Gem::Version
478
538
  version: '0'
479
539
  requirements: []
480
- rubygems_version: 3.0.3
540
+ rubygems_version: 3.1.6
481
541
  signing_key:
482
542
  specification_version: 4
483
543
  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