connect-sdk-ruby 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|