connect-sdk-ruby 1.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.
- checksums.yaml +7 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +22 -0
- data/README.md +140 -0
- data/Rakefile +34 -0
- data/connect-sdk-ruby.gemspec +28 -0
- data/examples/merchant/example_configuration.yml +6 -0
- data/examples/merchant/hostedcheckouts/create_hosted_checkout_example.rb +53 -0
- data/examples/merchant/hostedcheckouts/get_hosted_checkout_example.rb +22 -0
- data/examples/merchant/payments/approve_payment_example.rb +42 -0
- data/examples/merchant/payments/cancel_approval_payment_example.rb +22 -0
- data/examples/merchant/payments/cancel_payment_example.rb +22 -0
- data/examples/merchant/payments/create_payment_example.rb +177 -0
- data/examples/merchant/payments/get_payment_example.rb +22 -0
- data/examples/merchant/payments/process_challenged_payment_example.rb +22 -0
- data/examples/merchant/payments/refund_payment_example.rb +85 -0
- data/examples/merchant/payments/tokenize_payment_example.rb +27 -0
- data/examples/merchant/payouts/approve_payout_example.rb +27 -0
- data/examples/merchant/payouts/cancel_approval_payout_example.rb +22 -0
- data/examples/merchant/payouts/cancel_payout_example.rb +22 -0
- data/examples/merchant/payouts/create_payout_example.rb +96 -0
- data/examples/merchant/payouts/get_payout_example.rb +22 -0
- data/examples/merchant/productgroups/get_payment_product_group_example.rb +32 -0
- data/examples/merchant/productgroups/get_payment_product_groups_example.rb +32 -0
- data/examples/merchant/products/get_directory_example.rb +28 -0
- data/examples/merchant/products/get_payment_product_example.rb +32 -0
- data/examples/merchant/products/get_payment_products_example.rb +32 -0
- data/examples/merchant/refunds/approve_refund_example.rb +27 -0
- data/examples/merchant/refunds/cancel_approval_refund_example.rb +22 -0
- data/examples/merchant/refunds/cancel_refund_example.rb +22 -0
- data/examples/merchant/refunds/get_refund_example.rb +22 -0
- data/examples/merchant/riskassessments/risk_assessment_bank_account_example.rb +54 -0
- data/examples/merchant/riskassessments/risk_assessment_cards_example.rb +114 -0
- data/examples/merchant/services/convert_amount_example.rb +29 -0
- data/examples/merchant/services/convert_bank_account_example.rb +34 -0
- data/examples/merchant/services/iin_details_example.rb +27 -0
- data/examples/merchant/services/test_connection_example.rb +22 -0
- data/examples/merchant/sessions/create_session_example.rb +34 -0
- data/examples/merchant/tokens/approve_sepa_direct_debit_token_example.rb +29 -0
- data/examples/merchant/tokens/create_token_example.rb +82 -0
- data/examples/merchant/tokens/delete_token_example.rb +27 -0
- data/examples/merchant/tokens/get_token_example.rb +22 -0
- data/examples/merchant/tokens/update_token_example.rb +76 -0
- data/lib/ingenico/connect/sdk.rb +27 -0
- data/lib/ingenico/connect/sdk/api_exception.rb +52 -0
- data/lib/ingenico/connect/sdk/api_resource.rb +126 -0
- data/lib/ingenico/connect/sdk/authenticator.rb +15 -0
- data/lib/ingenico/connect/sdk/authorization_exception.rb +13 -0
- data/lib/ingenico/connect/sdk/call_context.rb +26 -0
- data/lib/ingenico/connect/sdk/client.rb +92 -0
- data/lib/ingenico/connect/sdk/communication_exception.rb +15 -0
- data/lib/ingenico/connect/sdk/communicator.rb +277 -0
- data/lib/ingenico/connect/sdk/communicator_configuration.rb +98 -0
- data/lib/ingenico/connect/sdk/connection.rb +31 -0
- data/lib/ingenico/connect/sdk/data_object.rb +43 -0
- data/lib/ingenico/connect/sdk/declined_payment_exception.rb +44 -0
- data/lib/ingenico/connect/sdk/declined_payout_exception.rb +44 -0
- data/lib/ingenico/connect/sdk/declined_refund_exception.rb +46 -0
- data/lib/ingenico/connect/sdk/declined_transaction_exception.rb +16 -0
- data/lib/ingenico/connect/sdk/defaultimpl.rb +6 -0
- data/lib/ingenico/connect/sdk/defaultimpl/authorization_type.rb +18 -0
- data/lib/ingenico/connect/sdk/defaultimpl/default_authenticator.rb +106 -0
- data/lib/ingenico/connect/sdk/defaultimpl/default_connection.rb +242 -0
- data/lib/ingenico/connect/sdk/defaultimpl/default_marshaller.rb +35 -0
- data/lib/ingenico/connect/sdk/domain/definitions/abstract_order_status.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/definitions/abstract_payment_method_specific_input.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/definitions/additional_order_input_airline_data.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/definitions/address.rb +81 -0
- data/lib/ingenico/connect/sdk/domain/definitions/airline_data.rb +165 -0
- data/lib/ingenico/connect/sdk/domain/definitions/airline_flight_leg.rb +102 -0
- data/lib/ingenico/connect/sdk/domain/definitions/amount_of_money.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/definitions/bank_account.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/definitions/bank_account_bban.rb +67 -0
- data/lib/ingenico/connect/sdk/domain/definitions/bank_account_iban.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/definitions/card.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/definitions/card_essentials.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/definitions/card_fraud_results.rb +50 -0
- data/lib/ingenico/connect/sdk/domain/definitions/card_without_cvv.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/definitions/company_information.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/definitions/contact_details_base.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/definitions/customer_base.rb +50 -0
- data/lib/ingenico/connect/sdk/domain/definitions/fraud_fields.rb +115 -0
- data/lib/ingenico/connect/sdk/domain/definitions/fraud_results.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/definitions/fraud_results_retail_decisions.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/definitions/key_value_pair.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/definitions/order_status_output.rb +67 -0
- data/lib/ingenico/connect/sdk/domain/definitions/payment_product_filter.rb +51 -0
- data/lib/ingenico/connect/sdk/domain/definitions/personal_name_base.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/definitions/result_do_risk_assessment.rb +61 -0
- data/lib/ingenico/connect/sdk/domain/definitions/retail_decisions_cc_fraud_check_output.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/definitions/validation_bank_account_check.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/definitions/validation_bank_account_output.rb +67 -0
- data/lib/ingenico/connect/sdk/domain/errors/api_error.rb +60 -0
- data/lib/ingenico/connect/sdk/domain/errors/error_response.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/hostedcheckout/create_hosted_checkout_request.rb +102 -0
- data/lib/ingenico/connect/sdk/domain/hostedcheckout/create_hosted_checkout_response.rb +59 -0
- data/lib/ingenico/connect/sdk/domain/hostedcheckout/created_payment_output.rb +72 -0
- data/lib/ingenico/connect/sdk/domain/hostedcheckout/displayed_data.rb +53 -0
- data/lib/ingenico/connect/sdk/domain/hostedcheckout/get_hosted_checkout_response.rb +43 -0
- data/lib/ingenico/connect/sdk/domain/hostedcheckout/hosted_checkout_specific_input.rb +78 -0
- data/lib/ingenico/connect/sdk/domain/hostedcheckout/payment_product_filters_hosted_checkout.rb +53 -0
- data/lib/ingenico/connect/sdk/domain/metadata/shopping_cart_extension.rb +48 -0
- data/lib/ingenico/connect/sdk/domain/payment/abstract_payment_method_specific_output.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/additional_order_input.rb +72 -0
- data/lib/ingenico/connect/sdk/domain/payment/address_personal.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/payment/approve_payment_card_payment_method_specific_output.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/approve_payment_non_sepa_direct_debit_payment_method_specific_input.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/approve_payment_payment_method_specific_input.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/approve_payment_request.rb +65 -0
- data/lib/ingenico/connect/sdk/domain/payment/approve_payment_sepa_direct_debit_payment_method_specific_input.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/bank_transfer_payment_method_specific_input.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/bank_transfer_payment_method_specific_input_base.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/bank_transfer_payment_method_specific_output.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/cancel_approval_payment_response.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_card_payment_method_specific_output.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_response.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_input.rb +61 -0
- data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_input_base.rb +60 -0
- data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_output.rb +65 -0
- data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_input.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_input_base.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_output.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1503_specific_input.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1504_specific_input.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/contact_details.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/create_payment_request.rb +131 -0
- data/lib/ingenico/connect/sdk/domain/payment/create_payment_response.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/create_payment_result.rb +58 -0
- data/lib/ingenico/connect/sdk/domain/payment/customer.rb +83 -0
- data/lib/ingenico/connect/sdk/domain/payment/external_cardholder_authentication_data.rb +60 -0
- data/lib/ingenico/connect/sdk/domain/payment/invoice_payment_method_specific_input.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/invoice_payment_method_specific_output.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/level3_summary_data.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/payment/line_item.rb +58 -0
- data/lib/ingenico/connect/sdk/domain/payment/line_item_invoice_data.rb +60 -0
- data/lib/ingenico/connect/sdk/domain/payment/line_item_level3_interchange_information.rb +81 -0
- data/lib/ingenico/connect/sdk/domain/payment/merchant_action.rb +64 -0
- data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_input.rb +71 -0
- data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_output.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_product705_specific_input.rb +50 -0
- data/lib/ingenico/connect/sdk/domain/payment/order.rb +83 -0
- data/lib/ingenico/connect/sdk/domain/payment/order_approve_payment.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/payment/order_invoice_data.rb +59 -0
- data/lib/ingenico/connect/sdk/domain/payment/order_output.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/payment/order_references.rb +57 -0
- data/lib/ingenico/connect/sdk/domain/payment/order_references_approve_payment.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/order_type_information.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment.rb +54 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_approval_response.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_creation_output.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_creation_references.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_error_response.rb +57 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_output.rb +116 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_product836_specific_output.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_product840_customer_account.rb +88 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_product840_specific_output.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_references.rb +67 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_response.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/payment_status_output.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/personal_information.rb +50 -0
- data/lib/ingenico/connect/sdk/domain/payment/personal_name.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/redirect_data.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_input.rb +72 -0
- data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_input_base.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_output.rb +58 -0
- data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product809_specific_input.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product816_specific_input.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product882_specific_input.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payment/refund_bank_method_specific_output.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/refund_card_method_specific_output.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payment/refund_e_wallet_method_specific_output.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/payment/refund_method_specific_output.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/payment/refund_output.rb +72 -0
- data/lib/ingenico/connect/sdk/domain/payment/refund_payment_product840_customer_account.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/payment/refund_payment_product840_specific_output.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_input.rb +60 -0
- data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_output.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_results.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/payment/tokenize_payment_request.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payout/approve_payout_request.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/payout/create_payout_request.rb +101 -0
- data/lib/ingenico/connect/sdk/domain/payout/payout_customer.rb +76 -0
- data/lib/ingenico/connect/sdk/domain/payout/payout_error_response.rb +57 -0
- data/lib/ingenico/connect/sdk/domain/payout/payout_references.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/payout/payout_response.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/payout/payout_result.rb +54 -0
- data/lib/ingenico/connect/sdk/domain/product/account_on_file.rb +64 -0
- data/lib/ingenico/connect/sdk/domain/product/account_on_file_attribute.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/product/account_on_file_display_hints.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/product/directory.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/product/directory_entry.rb +59 -0
- data/lib/ingenico/connect/sdk/domain/product/empty_validator.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/product/fixed_list_validator.rb +38 -0
- data/lib/ingenico/connect/sdk/domain/product/label_template_element.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/product/length_validator.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product.rb +134 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_display_hints.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_field.rb +61 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_field_data_restrictions.rb +43 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_field_display_hints.rb +96 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_field_form_element.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_field_tooltip.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_field_validators.rb +100 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_group.rb +71 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_group_response.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_groups.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_product_response.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/product/payment_products.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/product/range_validator.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/product/regular_expression_validator.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/product/value_mapping_element.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/refund/approve_refund_request.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/refund/bank_account_bban_refund.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/refund/bank_refund_method_specific_input.rb +54 -0
- data/lib/ingenico/connect/sdk/domain/refund/refund_customer.rb +58 -0
- data/lib/ingenico/connect/sdk/domain/refund/refund_error_response.rb +57 -0
- data/lib/ingenico/connect/sdk/domain/refund/refund_references.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/refund/refund_request.rb +76 -0
- data/lib/ingenico/connect/sdk/domain/refund/refund_response.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/refund/refund_result.rb +54 -0
- data/lib/ingenico/connect/sdk/domain/riskassessments/customer_risk_assessment.rb +65 -0
- data/lib/ingenico/connect/sdk/domain/riskassessments/order_risk_assessment.rb +58 -0
- data/lib/ingenico/connect/sdk/domain/riskassessments/personal_information_risk_assessment.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/riskassessments/personal_name_risk_assessment.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment.rb +54 -0
- data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_bank_account.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_card.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_response.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/services/bank_data.rb +53 -0
- data/lib/ingenico/connect/sdk/domain/services/bank_details.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/services/bank_details_request.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/services/bank_details_response.rb +69 -0
- data/lib/ingenico/connect/sdk/domain/services/convert_amount.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/services/get_iin_details_request.rb +43 -0
- data/lib/ingenico/connect/sdk/domain/services/get_iin_details_response.rb +60 -0
- data/lib/ingenico/connect/sdk/domain/services/iin_detail.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/services/payment_context.rb +50 -0
- data/lib/ingenico/connect/sdk/domain/services/swift.rb +95 -0
- data/lib/ingenico/connect/sdk/domain/services/test_connection.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/sessions/payment_product_filters_client_session.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/sessions/session_request.rb +49 -0
- data/lib/ingenico/connect/sdk/domain/sessions/session_response.rb +59 -0
- data/lib/ingenico/connect/sdk/domain/token/abstract_token.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/token/approve_token_request.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/token/contact_details_token.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/token/create_token_request.rb +76 -0
- data/lib/ingenico/connect/sdk/domain/token/create_token_response.rb +39 -0
- data/lib/ingenico/connect/sdk/domain/token/creditor.rb +102 -0
- data/lib/ingenico/connect/sdk/domain/token/customer_token.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/token/customer_token_with_contact_details.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/token/debtor.rb +102 -0
- data/lib/ingenico/connect/sdk/domain/token/mandate_approval.rb +46 -0
- data/lib/ingenico/connect/sdk/domain/token/mandate_non_sepa_direct_debit.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit_with_mandate_id.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit_without_creditor.rb +79 -0
- data/lib/ingenico/connect/sdk/domain/token/personal_information_token.rb +36 -0
- data/lib/ingenico/connect/sdk/domain/token/personal_name_token.rb +16 -0
- data/lib/ingenico/connect/sdk/domain/token/token_card.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/token/token_card_data.rb +50 -0
- data/lib/ingenico/connect/sdk/domain/token/token_e_wallet.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/token/token_e_wallet_data.rb +32 -0
- data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit_payment_product705_specific_data.rb +43 -0
- data/lib/ingenico/connect/sdk/domain/token/token_response.rb +83 -0
- data/lib/ingenico/connect/sdk/domain/token/token_sepa_direct_debit.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/token/token_sepa_direct_debit_without_creditor.rb +47 -0
- data/lib/ingenico/connect/sdk/domain/token/update_token_request.rb +76 -0
- data/lib/ingenico/connect/sdk/endpoint_configuration.rb +139 -0
- data/lib/ingenico/connect/sdk/exceptions.rb +8 -0
- data/lib/ingenico/connect/sdk/factory.rb +200 -0
- data/lib/ingenico/connect/sdk/global_collect_exception.rb +15 -0
- data/lib/ingenico/connect/sdk/idempotence_exception.rb +24 -0
- data/lib/ingenico/connect/sdk/logging.rb +10 -0
- data/lib/ingenico/connect/sdk/logging/communicator_logger.rb +19 -0
- data/lib/ingenico/connect/sdk/logging/log_message_builder.rb +61 -0
- data/lib/ingenico/connect/sdk/logging/logging_capable.rb +19 -0
- data/lib/ingenico/connect/sdk/logging/logging_util.rb +298 -0
- data/lib/ingenico/connect/sdk/logging/request_log_message_builder.rb +42 -0
- data/lib/ingenico/connect/sdk/logging/response_log_message_builder.rb +34 -0
- data/lib/ingenico/connect/sdk/logging/ruby_communicator_logger.rb +58 -0
- data/lib/ingenico/connect/sdk/logging/stdout_communicator_logger.rb +36 -0
- data/lib/ingenico/connect/sdk/marshaller.rb +19 -0
- data/lib/ingenico/connect/sdk/marshaller_syntax_exception.rb +6 -0
- data/lib/ingenico/connect/sdk/merchant/hostedcheckouts/hostedcheckouts_client.rb +88 -0
- data/lib/ingenico/connect/sdk/merchant/merchant_client.rb +110 -0
- data/lib/ingenico/connect/sdk/merchant/payments/payments_client.rb +319 -0
- data/lib/ingenico/connect/sdk/merchant/payouts/payouts_client.rb +197 -0
- data/lib/ingenico/connect/sdk/merchant/productgroups/find_productgroups_params.rb +55 -0
- data/lib/ingenico/connect/sdk/merchant/productgroups/get_productgroup_params.rb +55 -0
- data/lib/ingenico/connect/sdk/merchant/productgroups/productgroups_client.rb +90 -0
- data/lib/ingenico/connect/sdk/merchant/products/directory_params.rb +31 -0
- data/lib/ingenico/connect/sdk/merchant/products/find_products_params.rb +55 -0
- data/lib/ingenico/connect/sdk/merchant/products/get_product_params.rb +55 -0
- data/lib/ingenico/connect/sdk/merchant/products/products_client.rb +124 -0
- data/lib/ingenico/connect/sdk/merchant/refunds/refunds_client.rb +154 -0
- data/lib/ingenico/connect/sdk/merchant/riskassessments/riskassessments_client.rb +85 -0
- data/lib/ingenico/connect/sdk/merchant/services/convert_amount_params.rb +35 -0
- data/lib/ingenico/connect/sdk/merchant/services/services_client.rb +149 -0
- data/lib/ingenico/connect/sdk/merchant/sessions/sessions_client.rb +55 -0
- data/lib/ingenico/connect/sdk/merchant/tokens/delete_token_params.rb +27 -0
- data/lib/ingenico/connect/sdk/merchant/tokens/tokens_client.rb +192 -0
- data/lib/ingenico/connect/sdk/meta_data_provider.rb +152 -0
- data/lib/ingenico/connect/sdk/modules.rb +130 -0
- data/lib/ingenico/connect/sdk/not_found_exception.rb +19 -0
- data/lib/ingenico/connect/sdk/param_request.rb +33 -0
- data/lib/ingenico/connect/sdk/pooled_connection.rb +21 -0
- data/lib/ingenico/connect/sdk/proxy_configuration.rb +75 -0
- data/lib/ingenico/connect/sdk/reference_exception.rb +14 -0
- data/lib/ingenico/connect/sdk/request_header.rb +25 -0
- data/lib/ingenico/connect/sdk/request_param.rb +24 -0
- data/lib/ingenico/connect/sdk/response.rb +62 -0
- data/lib/ingenico/connect/sdk/response_exception.rb +54 -0
- data/lib/ingenico/connect/sdk/response_header.rb +25 -0
- data/lib/ingenico/connect/sdk/session.rb +39 -0
- data/lib/ingenico/connect/sdk/validation_exception.rb +14 -0
- data/spec/comparable_extension.rb +29 -0
- data/spec/fixtures/resources/defaultimpl/convertAmount.json +3 -0
- data/spec/fixtures/resources/defaultimpl/createPayment.failure.invalidCardNumber.json +11 -0
- data/spec/fixtures/resources/defaultimpl/createPayment.failure.rejected.json +48 -0
- data/spec/fixtures/resources/defaultimpl/createPayment.json +40 -0
- data/spec/fixtures/resources/defaultimpl/idempotence_duplicate_failure.json +8 -0
- data/spec/fixtures/resources/defaultimpl/idempotence_rejected.json +46 -0
- data/spec/fixtures/resources/defaultimpl/idempotence_success.json +39 -0
- data/spec/fixtures/resources/defaultimpl/notFound.html +1 -0
- data/spec/fixtures/resources/defaultimpl/testConnection.json +3 -0
- data/spec/fixtures/resources/defaultimpl/unknownServerError.json +10 -0
- data/spec/fixtures/resources/logging/bodyNoObfuscation.json +17 -0
- data/spec/fixtures/resources/logging/bodyWithBinObfuscated.json +3 -0
- data/spec/fixtures/resources/logging/bodyWithBinOriginal.json +3 -0
- data/spec/fixtures/resources/logging/bodyWithCardObfuscated.json +21 -0
- data/spec/fixtures/resources/logging/bodyWithCardOriginal.json +21 -0
- data/spec/fixtures/resources/logging/bodyWithIbanObfuscated.json +19 -0
- data/spec/fixtures/resources/logging/bodyWithIbanOriginal.json +19 -0
- data/spec/fixtures/resources/payment/duplicate_request.json +8 -0
- data/spec/fixtures/resources/payment/invalid_authorization.json +9 -0
- data/spec/fixtures/resources/payment/invalid_request.json +11 -0
- data/spec/fixtures/resources/payment/method_not_allowed.html +1 -0
- data/spec/fixtures/resources/payment/not_found.html +1 -0
- data/spec/fixtures/resources/payment/pending_approval.json +39 -0
- data/spec/fixtures/resources/payment/rejected.json +46 -0
- data/spec/fixtures/resources/properties.proxy.yml +13 -0
- data/spec/fixtures/resources/properties.yml +7 -0
- data/spec/integration/connection_pooling_spec.rb +78 -0
- data/spec/integration/convert_amount_spec.rb +25 -0
- data/spec/integration/idempotence_spec.rb +59 -0
- data/spec/integration/multiline_header_spec.rb +30 -0
- data/spec/integration/payment_product_groups_spec.rb +23 -0
- data/spec/integration/payment_products_spec.rb +22 -0
- data/spec/integration/risk_assessments_spec.rb +37 -0
- data/spec/integration/sdk_proxy_spec.rb +89 -0
- data/spec/integration/token_spec.rb +42 -0
- data/spec/integration_setup.rb +50 -0
- data/spec/lib/client_spec.rb +69 -0
- data/spec/lib/communicator_configuration_spec.rb +179 -0
- data/spec/lib/communicator_spec.rb +31 -0
- data/spec/lib/defaultimpl/default_authenticator_spec.rb +74 -0
- data/spec/lib/defaultimpl/default_connection_idempotence_spec.rb +142 -0
- data/spec/lib/defaultimpl/default_connection_logger_spec.rb +526 -0
- data/spec/lib/defaultimpl/default_connection_spec.rb +334 -0
- data/spec/lib/defaultimpl/default_marshaller_spec.rb +36 -0
- data/spec/lib/factory_spec.rb +41 -0
- data/spec/lib/logging/header_obfuscator_spec.rb +51 -0
- data/spec/lib/logging/logging_util_spec.rb +143 -0
- data/spec/lib/logging/obfuscator_spec.rb +52 -0
- data/spec/lib/logging/ruby_communicator_logger_spec.rb +84 -0
- data/spec/lib/logging/stdout_communicator_logger_spec.rb +64 -0
- data/spec/lib/logging/value_obfuscator_spec.rb +95 -0
- data/spec/lib/meta_data_provider_spec.rb +71 -0
- data/spec/lib/payments_client_spec.rb +157 -0
- data/spec/lib/requestparams/delete_params_spec.rb +21 -0
- data/spec/lib/requestparams/directory_params_spec.rb +27 -0
- data/spec/lib/requestparams/find_params_spec.rb +58 -0
- data/spec/lib/requestparams/get_params_spec.rb +59 -0
- data/spec/lib/requestparams/param_request_spec.rb +57 -0
- data/spec/spec_helper.rb +23 -0
- metadata +565 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f9904df39ea9086dd36f1fda45a260a42546ea32
|
4
|
+
data.tar.gz: 5a9958176cceaba5701b659be2df0b9952fe5ef0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bc6c5983080c1199c1ff60c5e6bcce7a5f381f80b73c9490121b5277f1ec31f9aa06b6ab0dd0465e369d3b8644611f69b21d531caf8beb448671de197eefb9a9
|
7
|
+
data.tar.gz: 2c4be282e92d5e19a87a14751d37382b0e3d29a215ff2008768dc2bcc90a735545ad2638dc071f3444b75113ad86e4f07db4b108ada3e6c94fe6c3e78b9221c0
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2016 Global Collect Services B.V.
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
4
|
+
obtaining a copy of this software and associated documentation
|
5
|
+
files (the "Software"), to deal in the Software without
|
6
|
+
restriction, including without limitation the rights to use,
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the
|
9
|
+
Software is furnished to do so, subject to the following
|
10
|
+
conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
# Ingenico Connect Ruby SDK
|
2
|
+
|
3
|
+
## Introduction
|
4
|
+
|
5
|
+
The Ruby SDK helps you to communicate with the [Ingenico Connect](http://www.ingenico.com/epayments) Server API. Its primary features are:
|
6
|
+
|
7
|
+
* convenient Ruby library for the API calls and responses
|
8
|
+
* marshalls Ruby request objects to HTTP requests
|
9
|
+
* unmarshalls HTTP responses to Ruby response objects or Ruby exceptions
|
10
|
+
* handling of all the details concerning authentication
|
11
|
+
* handling of required meta data
|
12
|
+
|
13
|
+
Its use is demonstrated by an example for each possible call. The examples execute a call using the provided API keys.
|
14
|
+
|
15
|
+
See the [Ingenico Connect Developer Hub](https://developer.globalcollect.com/documentation/sdk/server/ruby/) for more information on how to use the SDK.
|
16
|
+
|
17
|
+
## Structure of this repository
|
18
|
+
|
19
|
+
This repository consists out of four main components:
|
20
|
+
|
21
|
+
1. The source code of the SDK itself: `/lib/ingenico/connect/sdk/`
|
22
|
+
2. The source code of the SDK unit tests: `/spec/lib/`
|
23
|
+
3. The source code of the SDK integration tests: `/spec/integration/`
|
24
|
+
4. Usage examples: `/examples/`
|
25
|
+
|
26
|
+
Note that the source code of the unit tests, integration tests and the examples can only be found on GitHub.
|
27
|
+
|
28
|
+
## Requirements
|
29
|
+
|
30
|
+
Ruby 2.2 and higher versions are required. Ruby 2.1.10 is also supported but is not suggested because official support has ended and security maintenance will end soon.
|
31
|
+
In addition, the following package is required:
|
32
|
+
|
33
|
+
* [httpclient](https://github.com/nahi/httpclient) 2.8 or higher
|
34
|
+
|
35
|
+
## Installation
|
36
|
+
|
37
|
+
### Using RubyGems
|
38
|
+
|
39
|
+
To install the SDK using `gem`, execute the following command:
|
40
|
+
|
41
|
+
gem install connect-sdk-ruby
|
42
|
+
|
43
|
+
### Using a pre-built gem
|
44
|
+
|
45
|
+
1. Download the latest version of the Ruby SDK from GitHub. Choose the `connect-sdk-ruby-x.y.z.gem` file from the [releases](https://github.com/Ingenico-ePayments/connect-sdk-ruby/releases) page, where `x.y.z` is the version number.
|
46
|
+
2. Navigate into the folder where the gem file is downloaded to, and execute the following command:
|
47
|
+
|
48
|
+
```
|
49
|
+
gem install connect-sdk-ruby-x.y.z.gem
|
50
|
+
```
|
51
|
+
3. Feel free to delete the gem file at this point, it is no longer required.
|
52
|
+
|
53
|
+
### From source
|
54
|
+
|
55
|
+
1. Download the latest version of the Ruby SDK from GitHub. Choose the `connect-sdk-ruby-x.y.z.zip` file from the [releases](https://github.com/Ingenico-ePayments/connect-sdk-ruby/releases) page, where `x.y.z` is the version number.
|
56
|
+
2. Unzip the file, navigate into the folder where the file is unzipped to, and execute the following commands:
|
57
|
+
|
58
|
+
```
|
59
|
+
gem build connect-sdk-ruby.gemspec
|
60
|
+
gem install connect-sdk-ruby-x.y.z.gem
|
61
|
+
```
|
62
|
+
3. Feel free to delete the unzipped archive, the zip file and the gem file at this point, they are no longer required.
|
63
|
+
|
64
|
+
## Uninstalling
|
65
|
+
|
66
|
+
After the Ruby SDK has been installed, it can be uninstalled using the
|
67
|
+
following command:
|
68
|
+
|
69
|
+
gem uninstall connect-sdk-ruby
|
70
|
+
|
71
|
+
The required packages can be uninstalled in the same way.
|
72
|
+
|
73
|
+
## Usage
|
74
|
+
|
75
|
+
After the Ruby SDK has been installed, it can be required in Ruby program as follows:
|
76
|
+
|
77
|
+
require 'ingenico/connect/sdk'
|
78
|
+
|
79
|
+
## Running tests
|
80
|
+
|
81
|
+
There are two types of tests: unit tests and integration tests. The unit tests will work out-of-the-box; for the integration tests some configuration is required.
|
82
|
+
First, some environment variables need to be set:
|
83
|
+
|
84
|
+
* `connect.api.apiKeyId` for the API key id to use. This can be retrieved from the Configuration Center.
|
85
|
+
* `connect.api.secretApiKey` for the secret API key to use. This can be retrieved from the Configuration Center.
|
86
|
+
* `connect.api.merchantId` for your merchant ID.
|
87
|
+
|
88
|
+
In addition, to run the proxy integration tests, the proxy URI, username and password should be set in the `spec/fixtures/resources/properties.proxy.yml` file.
|
89
|
+
|
90
|
+
In order to run the unit and integration tests, some additional dependencies are required:
|
91
|
+
|
92
|
+
* [rake](https://ruby.github.io/rake/) 10.4 or higher
|
93
|
+
* [rspec](https://github.com/rspec/rspec) 3.5 or higher
|
94
|
+
* [webmock](https://github.com/bblimke/webmock) 2.1 or higher
|
95
|
+
* [sinatra](https://github.com/sinatra/sinatra) 1.4 or higher
|
96
|
+
|
97
|
+
They can be installed using the following command:
|
98
|
+
|
99
|
+
gem install rake rspec webmock sinatra
|
100
|
+
|
101
|
+
*Note: if rake is already installed as part of the Ruby installation, this will cause a conflict error. This can safely be ignored.*
|
102
|
+
|
103
|
+
The following commands can now be executed from the root directory of the SDK folder (/) to execute the tests:
|
104
|
+
|
105
|
+
* Unit tests:
|
106
|
+
|
107
|
+
```
|
108
|
+
rake unit
|
109
|
+
```
|
110
|
+
|
111
|
+
* Integration tests:
|
112
|
+
|
113
|
+
```
|
114
|
+
rake integration
|
115
|
+
```
|
116
|
+
|
117
|
+
* Both unit and integration tests:
|
118
|
+
|
119
|
+
```
|
120
|
+
rake spec
|
121
|
+
```
|
122
|
+
|
123
|
+
## Generating documentation
|
124
|
+
|
125
|
+
Documentation can be generated with YARD. YARD can be installed as a gem. The gems required to generate documentation are:
|
126
|
+
|
127
|
+
* [rake](https://ruby.github.io/rake/) 10.4 or higher
|
128
|
+
* [yard](https://github.com/lsegal/yard) 0.9.5 or higher
|
129
|
+
|
130
|
+
They can be installed using the following command:
|
131
|
+
|
132
|
+
gem install rake yard
|
133
|
+
|
134
|
+
*Note: if rake is already installed as part of the Ruby installation, this will cause a conflict error. This can safely be ignored.*
|
135
|
+
|
136
|
+
Once YARD and rake are installed, documentation can be generated with the following command (ran from the root folder):
|
137
|
+
|
138
|
+
rake yard
|
139
|
+
|
140
|
+
Documentation will be generated in the `/doc` folder. The file `/doc/index.html` is the main documentation file.
|
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
begin
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
RSpec::Core::RakeTask.new(:spec) do |t| # supports automated testing using the command *rake* *spec*
|
5
|
+
t.rspec_opts = '--color --format documentation'
|
6
|
+
end
|
7
|
+
|
8
|
+
RSpec::Core::RakeTask.new(:unit) do |t| # supports automated testing using unit tests using the command *rake* *unit*
|
9
|
+
t.rspec_opts = '--color --format documentation'
|
10
|
+
t.exclude_pattern = 'spec/integration/**'
|
11
|
+
end
|
12
|
+
|
13
|
+
RSpec::Core::RakeTask.new(:integration) do |t| # supports automated testing of integration using the command *rake* *integration*
|
14
|
+
t.rspec_opts = '--color --format documentation'
|
15
|
+
t.pattern = 'spec/integration/**_spec.rb'
|
16
|
+
end
|
17
|
+
|
18
|
+
task :default => :spec
|
19
|
+
rescue LoadError
|
20
|
+
puts '[*] error -- development dependency is not installed'
|
21
|
+
end
|
22
|
+
|
23
|
+
begin
|
24
|
+
require 'yard'
|
25
|
+
|
26
|
+
YARD::Rake::YardocTask.new(:yard) do |t| # supports generating documentation using the command *rake* *yard*
|
27
|
+
# t.files = ['lib/**/*.rb', OTHER_PATHS] # optional
|
28
|
+
t.options = ['--no-private']
|
29
|
+
end
|
30
|
+
|
31
|
+
task :doc => :yard # alternative alias to generate documentation
|
32
|
+
rescue LoadError
|
33
|
+
puts '[*] error -- development dependency is not installed'
|
34
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = 'connect-sdk-ruby'
|
3
|
+
spec.version = '1.0.0'
|
4
|
+
spec.authors = ['Ingenico ePayments']
|
5
|
+
spec.email = ['github@epay.ingenico.com']
|
6
|
+
spec.summary = %q{SDK to communicate with the GlobalCollect platform using the Ingenico Connect Server API}
|
7
|
+
spec.description = %q{SDK to communicate with the GlobalCollect platform using the Ingenico Connect Server API}
|
8
|
+
spec.homepage = %q{https://github.com/Ingenico-ePayments/connect-sdk-ruby}
|
9
|
+
spec.license = 'MIT'
|
10
|
+
|
11
|
+
# exclude hidden files like .gitignore
|
12
|
+
spec.files = Dir['lib/**/*'] + Dir['examples/**/*'] + Dir['spec/**/*'] +
|
13
|
+
['connect-sdk-ruby.gemspec', 'Gemfile', 'LICENSE.txt', 'Rakefile', 'README.md']
|
14
|
+
spec.executables = spec.files.grep(%r{^bin\/}) { |f| File.basename(f) }
|
15
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)\/})
|
16
|
+
spec.require_paths = ['lib']
|
17
|
+
|
18
|
+
spec.required_ruby_version = '~> 2.0'
|
19
|
+
|
20
|
+
spec.add_dependency 'httpclient', '~> 2.8'
|
21
|
+
|
22
|
+
spec.add_development_dependency 'yard', '~> 0.9'
|
23
|
+
spec.add_development_dependency 'rspec', '~> 3.5'
|
24
|
+
spec.add_development_dependency 'webmock', '~> 2.1'
|
25
|
+
spec.add_development_dependency 'sinatra', '~> 1.4'
|
26
|
+
spec.add_development_dependency 'rake', '~> 10.4'
|
27
|
+
# spec.metadata['yard.run'] = 'yri' # compiles yard doc on install
|
28
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
#
|
2
|
+
# This class was auto-generated from the API references found at
|
3
|
+
# https://developer.globalcollect.com/documentation/api/server/
|
4
|
+
#
|
5
|
+
require 'ingenico/connect/sdk/factory'
|
6
|
+
require 'ingenico/connect/sdk/domain/definitions/address'
|
7
|
+
require 'ingenico/connect/sdk/domain/definitions/amount_of_money'
|
8
|
+
require 'ingenico/connect/sdk/domain/hostedcheckout/create_hosted_checkout_request'
|
9
|
+
require 'ingenico/connect/sdk/domain/hostedcheckout/hosted_checkout_specific_input'
|
10
|
+
require 'ingenico/connect/sdk/domain/payment/customer'
|
11
|
+
require 'ingenico/connect/sdk/domain/payment/order'
|
12
|
+
|
13
|
+
Definitions = Ingenico::Connect::SDK::Domain::Definitions
|
14
|
+
Hostedcheckout = Ingenico::Connect::SDK::Domain::Hostedcheckout
|
15
|
+
Payment = Ingenico::Connect::SDK::Domain::Payment
|
16
|
+
|
17
|
+
def example
|
18
|
+
get_client do |client|
|
19
|
+
hosted_checkout_specific_input = Hostedcheckout::HostedCheckoutSpecificInput.new
|
20
|
+
hosted_checkout_specific_input.locale = 'en_GB'
|
21
|
+
hosted_checkout_specific_input.variant = 'testVariant'
|
22
|
+
|
23
|
+
amount_of_money = Definitions::AmountOfMoney.new
|
24
|
+
amount_of_money.amount = 2345
|
25
|
+
amount_of_money.currency_code = 'USD'
|
26
|
+
|
27
|
+
billing_address = Definitions::Address.new
|
28
|
+
billing_address.country_code = 'US'
|
29
|
+
|
30
|
+
customer = Payment::Customer.new
|
31
|
+
customer.billing_address = billing_address
|
32
|
+
|
33
|
+
order = Payment::Order.new
|
34
|
+
order.amount_of_money = amount_of_money
|
35
|
+
order.customer = customer
|
36
|
+
|
37
|
+
body = Hostedcheckout::CreateHostedCheckoutRequest.new
|
38
|
+
body.hosted_checkout_specific_input = hosted_checkout_specific_input
|
39
|
+
body.order = order
|
40
|
+
|
41
|
+
response = client.merchant('merchantId').hostedcheckouts().create(body)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def get_client
|
46
|
+
api_key_id = ENV.fetch('connect.api.apiKeyId', 'someKey')
|
47
|
+
secret_api_key = ENV.fetch('connect.api.secretApiKey', 'someSecret')
|
48
|
+
configuration_file_name = File.join(__FILE__, '..', '..', 'example_configuration.yml')
|
49
|
+
yield client = Ingenico::Connect::SDK::Factory.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
|
50
|
+
ensure
|
51
|
+
# Free networking resources when done
|
52
|
+
client.close unless client.nil?
|
53
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#
|
2
|
+
# This class was auto-generated from the API references found at
|
3
|
+
# https://developer.globalcollect.com/documentation/api/server/
|
4
|
+
#
|
5
|
+
require 'ingenico/connect/sdk/factory'
|
6
|
+
|
7
|
+
|
8
|
+
def example
|
9
|
+
get_client do |client|
|
10
|
+
response = client.merchant('merchantId').hostedcheckouts().get('hostedCheckoutId')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_client
|
15
|
+
api_key_id = ENV.fetch('connect.api.apiKeyId', 'someKey')
|
16
|
+
secret_api_key = ENV.fetch('connect.api.secretApiKey', 'someSecret')
|
17
|
+
configuration_file_name = File.join(__FILE__, '..', '..', 'example_configuration.yml')
|
18
|
+
yield client = Ingenico::Connect::SDK::Factory.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
|
19
|
+
ensure
|
20
|
+
# Free networking resources when done
|
21
|
+
client.close unless client.nil?
|
22
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#
|
2
|
+
# This class was auto-generated from the API references found at
|
3
|
+
# https://developer.globalcollect.com/documentation/api/server/
|
4
|
+
#
|
5
|
+
require 'ingenico/connect/sdk/factory'
|
6
|
+
require 'ingenico/connect/sdk/domain/payment/approve_payment_request'
|
7
|
+
require 'ingenico/connect/sdk/domain/payment/approve_payment_non_sepa_direct_debit_payment_method_specific_input'
|
8
|
+
require 'ingenico/connect/sdk/domain/payment/order_approve_payment'
|
9
|
+
require 'ingenico/connect/sdk/domain/payment/order_references_approve_payment'
|
10
|
+
|
11
|
+
Payment = Ingenico::Connect::SDK::Domain::Payment
|
12
|
+
|
13
|
+
def example
|
14
|
+
get_client do |client|
|
15
|
+
direct_debit_payment_method_specific_input = Payment::ApprovePaymentNonSepaDirectDebitPaymentMethodSpecificInput.new
|
16
|
+
direct_debit_payment_method_specific_input.date_collect = '20150201'
|
17
|
+
direct_debit_payment_method_specific_input.token = 'bfa8a7e4-4530-455a-858d-204ba2afb77e'
|
18
|
+
|
19
|
+
references = Payment::OrderReferencesApprovePayment.new
|
20
|
+
references.merchant_reference = 'AcmeOrder0001'
|
21
|
+
|
22
|
+
order = Payment::OrderApprovePayment.new
|
23
|
+
order.references = references
|
24
|
+
|
25
|
+
body = Payment::ApprovePaymentRequest.new
|
26
|
+
body.amount = 2980
|
27
|
+
body.direct_debit_payment_method_specific_input = direct_debit_payment_method_specific_input
|
28
|
+
body.order = order
|
29
|
+
|
30
|
+
response = client.merchant('merchantId').payments().approve('paymentId', body)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_client
|
35
|
+
api_key_id = ENV.fetch('connect.api.apiKeyId', 'someKey')
|
36
|
+
secret_api_key = ENV.fetch('connect.api.secretApiKey', 'someSecret')
|
37
|
+
configuration_file_name = File.join(__FILE__, '..', '..', 'example_configuration.yml')
|
38
|
+
yield client = Ingenico::Connect::SDK::Factory.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
|
39
|
+
ensure
|
40
|
+
# Free networking resources when done
|
41
|
+
client.close unless client.nil?
|
42
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#
|
2
|
+
# This class was auto-generated from the API references found at
|
3
|
+
# https://developer.globalcollect.com/documentation/api/server/
|
4
|
+
#
|
5
|
+
require 'ingenico/connect/sdk/factory'
|
6
|
+
|
7
|
+
|
8
|
+
def example
|
9
|
+
get_client do |client|
|
10
|
+
response = client.merchant('merchantId').payments().cancelapproval('paymentId')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_client
|
15
|
+
api_key_id = ENV.fetch('connect.api.apiKeyId', 'someKey')
|
16
|
+
secret_api_key = ENV.fetch('connect.api.secretApiKey', 'someSecret')
|
17
|
+
configuration_file_name = File.join(__FILE__, '..', '..', 'example_configuration.yml')
|
18
|
+
yield client = Ingenico::Connect::SDK::Factory.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
|
19
|
+
ensure
|
20
|
+
# Free networking resources when done
|
21
|
+
client.close unless client.nil?
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#
|
2
|
+
# This class was auto-generated from the API references found at
|
3
|
+
# https://developer.globalcollect.com/documentation/api/server/
|
4
|
+
#
|
5
|
+
require 'ingenico/connect/sdk/factory'
|
6
|
+
|
7
|
+
|
8
|
+
def example
|
9
|
+
get_client do |client|
|
10
|
+
response = client.merchant('merchantId').payments().cancel('paymentId')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_client
|
15
|
+
api_key_id = ENV.fetch('connect.api.apiKeyId', 'someKey')
|
16
|
+
secret_api_key = ENV.fetch('connect.api.secretApiKey', 'someSecret')
|
17
|
+
configuration_file_name = File.join(__FILE__, '..', '..', 'example_configuration.yml')
|
18
|
+
yield client = Ingenico::Connect::SDK::Factory.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
|
19
|
+
ensure
|
20
|
+
# Free networking resources when done
|
21
|
+
client.close unless client.nil?
|
22
|
+
end
|
@@ -0,0 +1,177 @@
|
|
1
|
+
#
|
2
|
+
# This class was auto-generated from the API references found at
|
3
|
+
# https://developer.globalcollect.com/documentation/api/server/
|
4
|
+
#
|
5
|
+
require 'ingenico/connect/sdk/api_exception'
|
6
|
+
require 'ingenico/connect/sdk/declined_payment_exception'
|
7
|
+
require 'ingenico/connect/sdk/factory'
|
8
|
+
require 'ingenico/connect/sdk/domain/definitions/address'
|
9
|
+
require 'ingenico/connect/sdk/domain/definitions/amount_of_money'
|
10
|
+
require 'ingenico/connect/sdk/domain/definitions/card'
|
11
|
+
require 'ingenico/connect/sdk/domain/definitions/company_information'
|
12
|
+
require 'ingenico/connect/sdk/domain/payment/create_payment_request'
|
13
|
+
require 'ingenico/connect/sdk/domain/payment/address_personal'
|
14
|
+
require 'ingenico/connect/sdk/domain/payment/card_payment_method_specific_input'
|
15
|
+
require 'ingenico/connect/sdk/domain/payment/contact_details'
|
16
|
+
require 'ingenico/connect/sdk/domain/payment/customer'
|
17
|
+
require 'ingenico/connect/sdk/domain/payment/line_item'
|
18
|
+
require 'ingenico/connect/sdk/domain/payment/line_item_invoice_data'
|
19
|
+
require 'ingenico/connect/sdk/domain/payment/order'
|
20
|
+
require 'ingenico/connect/sdk/domain/payment/order_invoice_data'
|
21
|
+
require 'ingenico/connect/sdk/domain/payment/order_references'
|
22
|
+
require 'ingenico/connect/sdk/domain/payment/personal_information'
|
23
|
+
require 'ingenico/connect/sdk/domain/payment/personal_name'
|
24
|
+
|
25
|
+
Definitions = Ingenico::Connect::SDK::Domain::Definitions
|
26
|
+
Payment = Ingenico::Connect::SDK::Domain::Payment
|
27
|
+
|
28
|
+
def example
|
29
|
+
get_client do |client|
|
30
|
+
card = Definitions::Card.new
|
31
|
+
card.card_number = '4567350000427977'
|
32
|
+
card.cardholder_name = 'Wile E. Coyote'
|
33
|
+
card.cvv = '123'
|
34
|
+
card.expiry_date = '1220'
|
35
|
+
|
36
|
+
card_payment_method_specific_input = Payment::CardPaymentMethodSpecificInput.new
|
37
|
+
card_payment_method_specific_input.card = card
|
38
|
+
card_payment_method_specific_input.payment_product_id = 1
|
39
|
+
card_payment_method_specific_input.skip_authentication = false
|
40
|
+
|
41
|
+
amount_of_money = Definitions::AmountOfMoney.new
|
42
|
+
amount_of_money.amount = 2980
|
43
|
+
amount_of_money.currency_code = 'EUR'
|
44
|
+
|
45
|
+
billing_address = Definitions::Address.new
|
46
|
+
billing_address.additional_info = 'b'
|
47
|
+
billing_address.city = 'Monument Valley'
|
48
|
+
billing_address.country_code = 'US'
|
49
|
+
billing_address.house_number = '13'
|
50
|
+
billing_address.state = 'Utah'
|
51
|
+
billing_address.street = 'Desertroad'
|
52
|
+
billing_address.zip = '84536'
|
53
|
+
|
54
|
+
company_information = Definitions::CompanyInformation.new
|
55
|
+
company_information.name = 'Acme Labs'
|
56
|
+
|
57
|
+
contact_details = Payment::ContactDetails.new
|
58
|
+
contact_details.email_address = 'wile.e.coyote@acmelabs.com'
|
59
|
+
contact_details.email_message_type = 'html'
|
60
|
+
contact_details.fax_number = '+1234567891'
|
61
|
+
contact_details.phone_number = '+1234567890'
|
62
|
+
|
63
|
+
name = Payment::PersonalName.new
|
64
|
+
name.first_name = 'Wile'
|
65
|
+
name.surname = 'Coyote'
|
66
|
+
name.surname_prefix = 'E.'
|
67
|
+
name.title = 'Mr.'
|
68
|
+
|
69
|
+
personal_information = Payment::PersonalInformation.new
|
70
|
+
personal_information.date_of_birth = '19490917'
|
71
|
+
personal_information.gender = 'M'
|
72
|
+
personal_information.name = name
|
73
|
+
|
74
|
+
shipping_name = Payment::PersonalName.new
|
75
|
+
shipping_name.first_name = 'Road'
|
76
|
+
shipping_name.surname = 'Runner'
|
77
|
+
shipping_name.title = 'Miss'
|
78
|
+
|
79
|
+
shipping_address = Payment::AddressPersonal.new
|
80
|
+
shipping_address.additional_info = 'Suite II'
|
81
|
+
shipping_address.city = 'Monument Valley'
|
82
|
+
shipping_address.country_code = 'US'
|
83
|
+
shipping_address.house_number = '1'
|
84
|
+
shipping_address.name = shipping_name
|
85
|
+
shipping_address.state = 'Utah'
|
86
|
+
shipping_address.street = 'Desertroad'
|
87
|
+
shipping_address.zip = '84536'
|
88
|
+
|
89
|
+
customer = Payment::Customer.new
|
90
|
+
customer.billing_address = billing_address
|
91
|
+
customer.company_information = company_information
|
92
|
+
customer.contact_details = contact_details
|
93
|
+
customer.locale = 'en_US'
|
94
|
+
customer.merchant_customer_id = '1234'
|
95
|
+
customer.personal_information = personal_information
|
96
|
+
customer.shipping_address = shipping_address
|
97
|
+
customer.vat_number = '1234AB5678CD'
|
98
|
+
|
99
|
+
items = []
|
100
|
+
|
101
|
+
item1_amount_of_money = Definitions::AmountOfMoney.new
|
102
|
+
item1_amount_of_money.amount = 2500
|
103
|
+
item1_amount_of_money.currency_code = 'EUR'
|
104
|
+
|
105
|
+
item1_invoice_data = Payment::LineItemInvoiceData.new
|
106
|
+
item1_invoice_data.description = 'ACME Super Outfit'
|
107
|
+
item1_invoice_data.nr_of_items = '1'
|
108
|
+
item1_invoice_data.price_per_item = 2500
|
109
|
+
|
110
|
+
item1 = Payment::LineItem.new
|
111
|
+
item1.amount_of_money = item1_amount_of_money
|
112
|
+
item1.invoice_data = item1_invoice_data
|
113
|
+
|
114
|
+
items << item1
|
115
|
+
|
116
|
+
item2_amount_of_money = Definitions::AmountOfMoney.new
|
117
|
+
item2_amount_of_money.amount = 480
|
118
|
+
item2_amount_of_money.currency_code = 'EUR'
|
119
|
+
|
120
|
+
item2_invoice_data = Payment::LineItemInvoiceData.new
|
121
|
+
item2_invoice_data.description = 'Asperin'
|
122
|
+
item2_invoice_data.nr_of_items = '12'
|
123
|
+
item2_invoice_data.price_per_item = 40
|
124
|
+
|
125
|
+
item2 = Payment::LineItem.new
|
126
|
+
item2.amount_of_money = item2_amount_of_money
|
127
|
+
item2.invoice_data = item2_invoice_data
|
128
|
+
|
129
|
+
items << item2
|
130
|
+
|
131
|
+
invoice_data = Payment::OrderInvoiceData.new
|
132
|
+
invoice_data.invoice_date = '20140306191500'
|
133
|
+
invoice_data.invoice_number = '000000123'
|
134
|
+
|
135
|
+
references = Payment::OrderReferences.new
|
136
|
+
references.descriptor = 'Fast and Furry-ous'
|
137
|
+
references.invoice_data = invoice_data
|
138
|
+
references.merchant_order_id = 123456
|
139
|
+
references.merchant_reference = 'AcmeOrder0001'
|
140
|
+
|
141
|
+
order = Payment::Order.new
|
142
|
+
order.amount_of_money = amount_of_money
|
143
|
+
order.customer = customer
|
144
|
+
order.items = items
|
145
|
+
order.references = references
|
146
|
+
|
147
|
+
body = Payment::CreatePaymentRequest.new
|
148
|
+
body.card_payment_method_specific_input = card_payment_method_specific_input
|
149
|
+
body.order = order
|
150
|
+
|
151
|
+
begin
|
152
|
+
response = client.merchant('merchantId').payments().create(body)
|
153
|
+
rescue Ingenico::Connect::SDK::DeclinedPaymentException => e
|
154
|
+
handle_declined_payment(e.create_payment_result)
|
155
|
+
rescue Ingenico::Connect::SDK::ApiException => e
|
156
|
+
handle_api_errors(e.errors)
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
def get_client
|
162
|
+
api_key_id = ENV.fetch('connect.api.apiKeyId', 'someKey')
|
163
|
+
secret_api_key = ENV.fetch('connect.api.secretApiKey', 'someSecret')
|
164
|
+
configuration_file_name = File.join(__FILE__, '..', '..', 'example_configuration.yml')
|
165
|
+
yield client = Ingenico::Connect::SDK::Factory.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
|
166
|
+
ensure
|
167
|
+
# Free networking resources when done
|
168
|
+
client.close unless client.nil?
|
169
|
+
end
|
170
|
+
|
171
|
+
def handle_declined_payment(create_payment_result)
|
172
|
+
# handle the result here
|
173
|
+
end
|
174
|
+
|
175
|
+
def handle_api_errors(errors)
|
176
|
+
# handle the errors here
|
177
|
+
end
|