pagseguro-sdk 2.6.2
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/.github/.gitignore +204 -0
- data/.github/ISSUE_TEMPLATE/relatorio-de-bug.md +29 -0
- data/.github/workflows/codacy-analysis.yml +46 -0
- data/.gitignore +28 -0
- data/.rspec +1 -0
- data/.travis.yml +13 -0
- data/CHANGELOG.md +95 -0
- data/CONTRIBUTING.md +39 -0
- data/Dockerfile +20 -0
- data/Gemfile +2 -0
- data/LICENSE-2.0.txt +177 -0
- data/README.md +436 -0
- data/Rakefile +5 -0
- data/docker-compose.yml +5 -0
- data/docs/transparent_checkout.md +201 -0
- data/examples/authorization/create_authorization.rb +32 -0
- data/examples/authorization/create_authorization_with_account.rb +56 -0
- data/examples/authorization/search/search_authorization_by_code.rb +29 -0
- data/examples/authorization/search/search_authorization_by_date.rb +35 -0
- data/examples/authorization/search/search_authorization_by_notification_code.rb +29 -0
- data/examples/authorization/search/search_authorization_by_reference.rb +31 -0
- data/examples/boot.rb +26 -0
- data/examples/checkout/create_payment_request.rb +63 -0
- data/examples/checkout/search/search_abandoned_transactions.rb +41 -0
- data/examples/checkout/search/search_transaction_by_code.rb +76 -0
- data/examples/checkout/search/search_transaction_by_notification_code.rb +76 -0
- data/examples/checkout/search/search_transaction_by_reference.rb +36 -0
- data/examples/checkout/search/search_transactions_by_date.rb +45 -0
- data/examples/create_session.rb +19 -0
- data/examples/direct/create_transaction_using_boleto.rb +100 -0
- data/examples/direct/create_transaction_using_credit_card.rb +128 -0
- data/examples/direct/create_transaction_using_online_debit.rb +104 -0
- data/examples/get_installments.rb +40 -0
- data/examples/preapproval/cancel_preapproval.rb +26 -0
- data/examples/preapproval/change_preapproval_payment.rb +50 -0
- data/examples/preapproval/change_preapproval_status.rb +29 -0
- data/examples/preapproval/charge_preapproval.rb +36 -0
- data/examples/preapproval/create_preapproval.rb +68 -0
- data/examples/preapproval/create_preapproval_auto.rb +53 -0
- data/examples/preapproval/create_preapproval_discount.rb +30 -0
- data/examples/preapproval/create_preapproval_manual.rb +58 -0
- data/examples/preapproval/create_preapproval_transparent.rb +41 -0
- data/examples/preapproval/preapproval_retry.rb +29 -0
- data/examples/preapproval/search/search_by_date_interval.rb +45 -0
- data/examples/preapproval/search/search_by_days_interval.rb +46 -0
- data/examples/preapproval/search/search_by_notification_code.rb +50 -0
- data/examples/preapproval/search/search_by_subscription_code.rb +50 -0
- data/examples/preapproval/search/search_subscription_payment_orders.rb +53 -0
- data/examples/request_transaction_cancellation.rb +19 -0
- data/examples/split_payment/create_authorization.rb +32 -0
- data/examples/split_payment/create_payment_request.rb +71 -0
- data/examples/split_payment/create_transaction_using_boleto.rb +118 -0
- data/examples/split_payment/create_transaction_using_credit_card.rb +152 -0
- data/lib/pagseguro-oficial.rb +1 -0
- data/lib/pagseguro.rb +221 -0
- data/lib/pagseguro/account.rb +29 -0
- data/lib/pagseguro/account_credentials.rb +14 -0
- data/lib/pagseguro/address.rb +40 -0
- data/lib/pagseguro/application_credentials.rb +18 -0
- data/lib/pagseguro/authorization.rb +61 -0
- data/lib/pagseguro/authorization/collection.rb +28 -0
- data/lib/pagseguro/authorization/request_serializer.rb +24 -0
- data/lib/pagseguro/authorization/response.rb +49 -0
- data/lib/pagseguro/authorization/response_serializer.rb +40 -0
- data/lib/pagseguro/authorization_request.rb +84 -0
- data/lib/pagseguro/authorization_request/request_serializer.rb +142 -0
- data/lib/pagseguro/authorization_request/response.rb +26 -0
- data/lib/pagseguro/authorization_request/response_serializer.rb +18 -0
- data/lib/pagseguro/bank.rb +8 -0
- data/lib/pagseguro/boleto_transaction_request.rb +8 -0
- data/lib/pagseguro/company.rb +41 -0
- data/lib/pagseguro/config.rb +34 -0
- data/lib/pagseguro/credit_card_transaction_request.rb +39 -0
- data/lib/pagseguro/creditor_fee.rb +23 -0
- data/lib/pagseguro/document.rb +23 -0
- data/lib/pagseguro/documents.rb +5 -0
- data/lib/pagseguro/errors.rb +57 -0
- data/lib/pagseguro/exceptions.rb +3 -0
- data/lib/pagseguro/extensions/collection_object.rb +34 -0
- data/lib/pagseguro/extensions/credentiable.rb +17 -0
- data/lib/pagseguro/extensions/ensure_type.rb +9 -0
- data/lib/pagseguro/extensions/mass_assignment.rb +11 -0
- data/lib/pagseguro/holder.rb +36 -0
- data/lib/pagseguro/installment.rb +57 -0
- data/lib/pagseguro/installment/collection.rb +25 -0
- data/lib/pagseguro/installment/request_serializer.rb +24 -0
- data/lib/pagseguro/installment/response.rb +37 -0
- data/lib/pagseguro/installment/response_serializer.rb +22 -0
- data/lib/pagseguro/item.rb +34 -0
- data/lib/pagseguro/items.rb +23 -0
- data/lib/pagseguro/manual_subscription_charger.rb +59 -0
- data/lib/pagseguro/manual_subscription_charger/request_serializer.rb +50 -0
- data/lib/pagseguro/manual_subscription_charger/response.rb +36 -0
- data/lib/pagseguro/manual_subscription_charger/response_serializer.rb +17 -0
- data/lib/pagseguro/notification.rb +11 -0
- data/lib/pagseguro/notification/authorization.rb +15 -0
- data/lib/pagseguro/notification/transaction.rb +15 -0
- data/lib/pagseguro/online_debit_transaction_request.rb +17 -0
- data/lib/pagseguro/partner.rb +20 -0
- data/lib/pagseguro/payment_method.rb +39 -0
- data/lib/pagseguro/payment_release.rb +21 -0
- data/lib/pagseguro/payment_releases.rb +28 -0
- data/lib/pagseguro/payment_request.rb +117 -0
- data/lib/pagseguro/payment_request/request_serializer.rb +203 -0
- data/lib/pagseguro/payment_request/response.rb +35 -0
- data/lib/pagseguro/payment_status.rb +39 -0
- data/lib/pagseguro/permission.rb +13 -0
- data/lib/pagseguro/person.rb +40 -0
- data/lib/pagseguro/phone.rb +20 -0
- data/lib/pagseguro/phones.rb +5 -0
- data/lib/pagseguro/receiver.rb +20 -0
- data/lib/pagseguro/receiver_split.rb +15 -0
- data/lib/pagseguro/request.rb +170 -0
- data/lib/pagseguro/sender.rb +53 -0
- data/lib/pagseguro/session.rb +34 -0
- data/lib/pagseguro/session/response.rb +32 -0
- data/lib/pagseguro/session/response_serializer.rb +18 -0
- data/lib/pagseguro/shipping.rb +57 -0
- data/lib/pagseguro/subscription.rb +132 -0
- data/lib/pagseguro/subscription/request_serializer.rb +129 -0
- data/lib/pagseguro/subscription/response.rb +49 -0
- data/lib/pagseguro/subscription/response_serializer.rb +62 -0
- data/lib/pagseguro/subscription/subscription_search.rb +135 -0
- data/lib/pagseguro/subscription_canceller.rb +30 -0
- data/lib/pagseguro/subscription_canceller/response.rb +34 -0
- data/lib/pagseguro/subscription_change_payment.rb +46 -0
- data/lib/pagseguro/subscription_change_payment/request_serializer.rb +80 -0
- data/lib/pagseguro/subscription_change_payment/response.rb +26 -0
- data/lib/pagseguro/subscription_change_status.rb +50 -0
- data/lib/pagseguro/subscription_change_status/request_serializer.rb +28 -0
- data/lib/pagseguro/subscription_change_status/response.rb +26 -0
- data/lib/pagseguro/subscription_discount.rb +41 -0
- data/lib/pagseguro/subscription_discount/request_serializer.rb +34 -0
- data/lib/pagseguro/subscription_discount/response.rb +34 -0
- data/lib/pagseguro/subscription_payment_method.rb +21 -0
- data/lib/pagseguro/subscription_payment_order.rb +57 -0
- data/lib/pagseguro/subscription_payment_order/response.rb +37 -0
- data/lib/pagseguro/subscription_payment_order/response_serializer.rb +51 -0
- data/lib/pagseguro/subscription_plan.rb +69 -0
- data/lib/pagseguro/subscription_plan/request_serializer.rb +81 -0
- data/lib/pagseguro/subscription_plan/response.rb +36 -0
- data/lib/pagseguro/subscription_plan/response_serializer.rb +17 -0
- data/lib/pagseguro/subscription_retry.rb +35 -0
- data/lib/pagseguro/subscription_retry/response.rb +34 -0
- data/lib/pagseguro/subscription_search_payment_orders.rb +131 -0
- data/lib/pagseguro/subscription_transaction.rb +29 -0
- data/lib/pagseguro/subscription_transactions.rb +5 -0
- data/lib/pagseguro/transaction.rb +215 -0
- data/lib/pagseguro/transaction/collection.rb +20 -0
- data/lib/pagseguro/transaction/response.rb +45 -0
- data/lib/pagseguro/transaction/search.rb +121 -0
- data/lib/pagseguro/transaction/search/search_abandoned.rb +20 -0
- data/lib/pagseguro/transaction/search/search_by_date.rb +16 -0
- data/lib/pagseguro/transaction/search/search_by_reference.rb +13 -0
- data/lib/pagseguro/transaction/serializer.rb +181 -0
- data/lib/pagseguro/transaction_cancellation.rb +37 -0
- data/lib/pagseguro/transaction_cancellation/request_serializer.rb +18 -0
- data/lib/pagseguro/transaction_cancellation/response.rb +33 -0
- data/lib/pagseguro/transaction_cancellation/response_serializer.rb +17 -0
- data/lib/pagseguro/transaction_installment.rb +11 -0
- data/lib/pagseguro/transaction_refund.rb +44 -0
- data/lib/pagseguro/transaction_refund/request_serializer.rb +24 -0
- data/lib/pagseguro/transaction_refund/response.rb +33 -0
- data/lib/pagseguro/transaction_refund/response_serializer.rb +17 -0
- data/lib/pagseguro/transaction_request.rb +165 -0
- data/lib/pagseguro/transaction_request/request_serializer.rb +311 -0
- data/lib/pagseguro/transaction_request/response.rb +33 -0
- data/lib/pagseguro/transaction_request/response_serializer.rb +117 -0
- data/lib/pagseguro/transaction_status.rb +14 -0
- data/lib/pagseguro/version.rb +3 -0
- data/locales/pt-BR.yml +130 -0
- data/pagseguro-oficial.gemspec +31 -0
- data/spec/fixtures/authorization/find_authorization.xml +17 -0
- data/spec/fixtures/authorization/search_authorization.xml +47 -0
- data/spec/fixtures/authorization_request/authorization_request.xml +11 -0
- data/spec/fixtures/authorization_request/authorization_request_with_account.xml +47 -0
- data/spec/fixtures/authorization_request/success.xml +4 -0
- data/spec/fixtures/by_date/success.xml +85 -0
- data/spec/fixtures/installment/success.xml +24 -0
- data/spec/fixtures/invalid_code.xml +7 -0
- data/spec/fixtures/manual_subscription_charger/fail.xml +6 -0
- data/spec/fixtures/manual_subscription_charger/success.xml +4 -0
- data/spec/fixtures/payment_request/failure.xml +7 -0
- data/spec/fixtures/payment_request/success.xml +5 -0
- data/spec/fixtures/refund/success.xml +2 -0
- data/spec/fixtures/session/success.xml +4 -0
- data/spec/fixtures/subscription/fail.xml +6 -0
- data/spec/fixtures/subscription/find_success.xml +28 -0
- data/spec/fixtures/subscription/search_success.xml +18 -0
- data/spec/fixtures/subscription/success.xml +4 -0
- data/spec/fixtures/subscription_canceller/fail.xml +6 -0
- data/spec/fixtures/subscription_change_payment/fail.xml +7 -0
- data/spec/fixtures/subscription_change_status/fail.xml +7 -0
- data/spec/fixtures/subscription_discount/fail.xml +6 -0
- data/spec/fixtures/subscription_payment_order/success.xml +18 -0
- data/spec/fixtures/subscription_plan/fail.xml +6 -0
- data/spec/fixtures/subscription_plan/success.xml +4 -0
- data/spec/fixtures/subscription_retry/fail.xml +7 -0
- data/spec/fixtures/subscription_search_payment_orders/success.xml +43 -0
- data/spec/fixtures/transaction_cancellation/success.xml +2 -0
- data/spec/fixtures/transaction_request/success.xml +58 -0
- data/spec/fixtures/transactions/additional.xml +53 -0
- data/spec/fixtures/transactions/search.xml +40 -0
- data/spec/fixtures/transactions/success.xml +75 -0
- data/spec/fixtures/transactions/without_status_and_type.xml +71 -0
- data/spec/pagseguro/account_credentials_spec.rb +10 -0
- data/spec/pagseguro/account_spec.rb +27 -0
- data/spec/pagseguro/address_spec.rb +17 -0
- data/spec/pagseguro/application_credentials_spec.rb +11 -0
- data/spec/pagseguro/authorization/collection_spec.rb +49 -0
- data/spec/pagseguro/authorization/request_serializer_spec.rb +10 -0
- data/spec/pagseguro/authorization/response_serializer_spec.rb +19 -0
- data/spec/pagseguro/authorization/response_spec.rb +90 -0
- data/spec/pagseguro/authorization_request/request_serializer_spec.rb +323 -0
- data/spec/pagseguro/authorization_request/response_serializer_spec.rb +15 -0
- data/spec/pagseguro/authorization_request/response_spec.rb +36 -0
- data/spec/pagseguro/authorization_request_spec.rb +127 -0
- data/spec/pagseguro/authorization_spec.rb +111 -0
- data/spec/pagseguro/bank_spec.rb +5 -0
- data/spec/pagseguro/boleto_transaction_request_spec.rb +9 -0
- data/spec/pagseguro/company_spec.rb +12 -0
- data/spec/pagseguro/config_spec.rb +5 -0
- data/spec/pagseguro/credit_card_transaction_request_spec.rb +36 -0
- data/spec/pagseguro/creditor_fee_spec.rb +10 -0
- data/spec/pagseguro/document_spec.rb +21 -0
- data/spec/pagseguro/documents_spec.rb +37 -0
- data/spec/pagseguro/errors_spec.rb +145 -0
- data/spec/pagseguro/extensions/collection_object_spec.rb +77 -0
- data/spec/pagseguro/features/create_session_spec.rb +52 -0
- data/spec/pagseguro/features/create_transaction_request_spec.rb +58 -0
- data/spec/pagseguro/holder_spec.rb +10 -0
- data/spec/pagseguro/installment/collection_spec.rb +43 -0
- data/spec/pagseguro/installment/request_serializer_spec.rb +16 -0
- data/spec/pagseguro/installment/response_serializer_spec.rb +33 -0
- data/spec/pagseguro/installment/response_spec.rb +56 -0
- data/spec/pagseguro/installment_spec.rb +50 -0
- data/spec/pagseguro/item_spec.rb +20 -0
- data/spec/pagseguro/items_spec.rb +148 -0
- data/spec/pagseguro/manual_subscription_charger/request_serializer_spec.rb +79 -0
- data/spec/pagseguro/manual_subscription_charger/response_serializer_spec.rb +10 -0
- data/spec/pagseguro/manual_subscription_charger/response_spec.rb +65 -0
- data/spec/pagseguro/manual_subscription_charger_spec.rb +68 -0
- data/spec/pagseguro/notification_spec.rb +6 -0
- data/spec/pagseguro/online_debit_transaction_request_spec.rb +18 -0
- data/spec/pagseguro/pagseguro_spec.rb +82 -0
- data/spec/pagseguro/partner_spec.rb +8 -0
- data/spec/pagseguro/payment_method_spec.rb +42 -0
- data/spec/pagseguro/payment_release_spec.rb +9 -0
- data/spec/pagseguro/payment_releases_spec.rb +34 -0
- data/spec/pagseguro/payment_request/request_serializer_spec.rb +283 -0
- data/spec/pagseguro/payment_request/response_spec.rb +13 -0
- data/spec/pagseguro/payment_request_spec.rb +148 -0
- data/spec/pagseguro/payment_status_spec.rb +33 -0
- data/spec/pagseguro/permission_spec.rb +7 -0
- data/spec/pagseguro/person_spec.rb +10 -0
- data/spec/pagseguro/phone_spec.rb +6 -0
- data/spec/pagseguro/phones_spec.rb +38 -0
- data/spec/pagseguro/receiver_spec.rb +7 -0
- data/spec/pagseguro/receiver_split_spec.rb +7 -0
- data/spec/pagseguro/request_spec.rb +114 -0
- data/spec/pagseguro/sender_spec.rb +25 -0
- data/spec/pagseguro/session/response_serializer_spec.rb +12 -0
- data/spec/pagseguro/session/response_spec.rb +57 -0
- data/spec/pagseguro/session_spec.rb +45 -0
- data/spec/pagseguro/shipping_spec.rb +40 -0
- data/spec/pagseguro/subscription/request_serializer_spec.rb +233 -0
- data/spec/pagseguro/subscription/response_serializer_spec.rb +46 -0
- data/spec/pagseguro/subscription/response_spec.rb +79 -0
- data/spec/pagseguro/subscription/subscription_search_spec.rb +154 -0
- data/spec/pagseguro/subscription_canceller/response_spec.rb +58 -0
- data/spec/pagseguro/subscription_canceller_spec.rb +57 -0
- data/spec/pagseguro/subscription_change_payment/request_serializer_spec.rb +150 -0
- data/spec/pagseguro/subscription_change_payment/response_spec.rb +41 -0
- data/spec/pagseguro/subscription_change_payment_spec.rb +60 -0
- data/spec/pagseguro/subscription_change_status/request_serializer_spec.rb +19 -0
- data/spec/pagseguro/subscription_change_status/response_spec.rb +41 -0
- data/spec/pagseguro/subscription_change_status_spec.rb +53 -0
- data/spec/pagseguro/subscription_discount/request_serializer_spec.rb +27 -0
- data/spec/pagseguro/subscription_discount/response_spec.rb +58 -0
- data/spec/pagseguro/subscription_discount_spec.rb +60 -0
- data/spec/pagseguro/subscription_payment_method_spec.rb +10 -0
- data/spec/pagseguro/subscription_payment_order/response_serializer_spec.rb +24 -0
- data/spec/pagseguro/subscription_payment_order/response_spec.rb +55 -0
- data/spec/pagseguro/subscription_payment_order_spec.rb +27 -0
- data/spec/pagseguro/subscription_plan/request_serializer_spec.rb +253 -0
- data/spec/pagseguro/subscription_plan/response_serializer_spec.rb +10 -0
- data/spec/pagseguro/subscription_plan/response_spec.rb +65 -0
- data/spec/pagseguro/subscription_plan_spec.rb +118 -0
- data/spec/pagseguro/subscription_retry/response_spec.rb +58 -0
- data/spec/pagseguro/subscription_retry_spec.rb +62 -0
- data/spec/pagseguro/subscription_search_payment_order_spec.rb +129 -0
- data/spec/pagseguro/subscription_spec.rb +137 -0
- data/spec/pagseguro/subscription_transaction_spec.rb +24 -0
- data/spec/pagseguro/subscription_transactions_spec.rb +37 -0
- data/spec/pagseguro/transaction/collection_spec.rb +43 -0
- data/spec/pagseguro/transaction/response_spec.rb +60 -0
- data/spec/pagseguro/transaction/search/search_abandoned_spec.rb +55 -0
- data/spec/pagseguro/transaction/search/search_by_date_spec.rb +28 -0
- data/spec/pagseguro/transaction/search/search_by_reference_spec.rb +21 -0
- data/spec/pagseguro/transaction/search_spec.rb +133 -0
- data/spec/pagseguro/transaction/serializer_spec.rb +86 -0
- data/spec/pagseguro/transaction_cancellation/request_serializer_spec.rb +13 -0
- data/spec/pagseguro/transaction_cancellation/response_serializer_spec.rb +9 -0
- data/spec/pagseguro/transaction_cancellation/response_spec.rb +45 -0
- data/spec/pagseguro/transaction_cancellation_spec.rb +60 -0
- data/spec/pagseguro/transaction_installment_spec.rb +6 -0
- data/spec/pagseguro/transaction_refund/request_serializer_spec.rb +15 -0
- data/spec/pagseguro/transaction_refund/response_serializer_spec.rb +12 -0
- data/spec/pagseguro/transaction_refund/response_spec.rb +39 -0
- data/spec/pagseguro/transaction_refund_spec.rb +71 -0
- data/spec/pagseguro/transaction_request/request_serializer_spec.rb +677 -0
- data/spec/pagseguro/transaction_request/response_serializer_spec.rb +52 -0
- data/spec/pagseguro/transaction_request/response_spec.rb +63 -0
- data/spec/pagseguro/transaction_request_spec.rb +156 -0
- data/spec/pagseguro/transaction_spec.rb +265 -0
- data/spec/pagseguro/transaction_status_spec.rb +7 -0
- data/spec/spec_helper.rb +35 -0
- data/spec/support/ensure_type_macro.rb +35 -0
- data/spec/support/helpers.rb +14 -0
- data/spec/support/mass_assignment_macro.rb +11 -0
- data/spec/support/shared_examples_for_configuration.rb +10 -0
- data/transaction/transaction_refund.rb +25 -0
- metadata +641 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class AuthorizationRequest
|
3
|
+
class Response
|
4
|
+
def initialize(response)
|
5
|
+
@response = response
|
6
|
+
end
|
7
|
+
|
8
|
+
def serialize
|
9
|
+
if success?
|
10
|
+
xml = Nokogiri::XML(response.body).css('authorizationRequest').first
|
11
|
+
ResponseSerializer.new(xml).serialize
|
12
|
+
else
|
13
|
+
{ errors: Errors.new(response) }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def success?
|
18
|
+
response.success? && response.xml?
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
# The request response.
|
23
|
+
attr_reader :response
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class AuthorizationRequest
|
3
|
+
class ResponseSerializer
|
4
|
+
attr_reader :xml
|
5
|
+
|
6
|
+
def initialize(xml)
|
7
|
+
@xml = xml
|
8
|
+
end
|
9
|
+
|
10
|
+
def serialize
|
11
|
+
{}.tap do |data|
|
12
|
+
data[:code] = xml.css("> code").text
|
13
|
+
data[:date] = Time.parse xml.css("date").text
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Company
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
include Extensions::EnsureType
|
5
|
+
|
6
|
+
attr_accessor :name
|
7
|
+
attr_accessor :display_name
|
8
|
+
attr_accessor :website_url
|
9
|
+
|
10
|
+
attr_reader :address
|
11
|
+
attr_reader :partner
|
12
|
+
|
13
|
+
def address=(address)
|
14
|
+
@address = ensure_type(Address, address)
|
15
|
+
end
|
16
|
+
|
17
|
+
def partner=(partner)
|
18
|
+
@partner = ensure_type(Partner, partner)
|
19
|
+
end
|
20
|
+
|
21
|
+
def phones
|
22
|
+
@phones ||= Phones.new
|
23
|
+
end
|
24
|
+
|
25
|
+
def phones=(_phones=[])
|
26
|
+
_phones.each do |phone|
|
27
|
+
phones << ensure_type(Phone, phone)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def documents
|
32
|
+
@documents ||= Documents.new
|
33
|
+
end
|
34
|
+
|
35
|
+
def documents=(_documents=[])
|
36
|
+
_documents.each do |document|
|
37
|
+
documents << ensure_type(Document, document)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
# Holds the configuration of the user
|
3
|
+
class Config
|
4
|
+
# Primary e-mail associated with this account.
|
5
|
+
attr_accessor :email
|
6
|
+
|
7
|
+
# The e-mail that will be displayed when sender is redirected
|
8
|
+
# to PagSeguro.
|
9
|
+
attr_accessor :receiver_email
|
10
|
+
|
11
|
+
# The API token associated with this account.
|
12
|
+
attr_accessor :token
|
13
|
+
|
14
|
+
# The application id
|
15
|
+
attr_accessor :app_id
|
16
|
+
|
17
|
+
# A token related to the application that is making the requests
|
18
|
+
attr_accessor :app_key
|
19
|
+
|
20
|
+
# The PagSeguro environment.
|
21
|
+
# +production+ or +sandbox+.
|
22
|
+
# Defaults to +production+.
|
23
|
+
attr_accessor :environment
|
24
|
+
|
25
|
+
# The encoding that will be used.
|
26
|
+
# Defaults to +UTF-8+.
|
27
|
+
attr_accessor :encoding
|
28
|
+
|
29
|
+
def initialize
|
30
|
+
@environment = :production
|
31
|
+
@encoding = "UTF-8"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class CreditCardTransactionRequest < TransactionRequest
|
3
|
+
# Set credit card token.
|
4
|
+
# Required for credit card payment method.
|
5
|
+
attr_accessor :credit_card_token
|
6
|
+
|
7
|
+
# Get installment info.
|
8
|
+
attr_reader :installment
|
9
|
+
|
10
|
+
# Get credit card holder info.
|
11
|
+
attr_reader :holder
|
12
|
+
|
13
|
+
# Get billing address info.
|
14
|
+
attr_reader :billing_address
|
15
|
+
|
16
|
+
# Get the payment_method.
|
17
|
+
def payment_method
|
18
|
+
"creditCard"
|
19
|
+
end
|
20
|
+
|
21
|
+
# Set the installment.
|
22
|
+
# Required for credit card payment method.
|
23
|
+
def installment=(installment)
|
24
|
+
@installment = ensure_type(TransactionInstallment, installment)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Set the credit card holder.
|
28
|
+
# Required for credit card payment method.
|
29
|
+
def holder=(holder)
|
30
|
+
@holder = ensure_type(Holder, holder)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Set the billing address.
|
34
|
+
# Required for credit card payment method.
|
35
|
+
def billing_address=(address)
|
36
|
+
@billing_address = ensure_type(Address, address)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class CreditorFee
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
|
5
|
+
# Set the current transaction intermidiation rate amount
|
6
|
+
attr_accessor :intermediation_rate_amount
|
7
|
+
|
8
|
+
# Set the current transaction intermediation fee amount
|
9
|
+
attr_accessor :intermediation_fee_amount
|
10
|
+
|
11
|
+
# Set the current transaction installment amount
|
12
|
+
attr_accessor :installment_fee_amount
|
13
|
+
|
14
|
+
# Set the current transaction operational fee amount
|
15
|
+
attr_accessor :operational_fee_amount
|
16
|
+
|
17
|
+
# Set the current transaction commission fee amount
|
18
|
+
attr_accessor :commission_fee_amount
|
19
|
+
|
20
|
+
# Set the current transaction freight amount
|
21
|
+
attr_accessor :efrete
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Document
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
|
5
|
+
# Set the type.
|
6
|
+
attr_accessor :type
|
7
|
+
|
8
|
+
# Set the value.
|
9
|
+
attr_accessor :value
|
10
|
+
|
11
|
+
def ==(other)
|
12
|
+
[type, value] == [other.type, other.value]
|
13
|
+
end
|
14
|
+
|
15
|
+
def cpf?
|
16
|
+
type == 'CPF'
|
17
|
+
end
|
18
|
+
|
19
|
+
def cnpj?
|
20
|
+
type == 'CNPJ'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Errors
|
3
|
+
extend Forwardable
|
4
|
+
include Enumerable
|
5
|
+
|
6
|
+
def_delegators :@messages, :each, :empty?, :any?, :join, :include?
|
7
|
+
|
8
|
+
def initialize(response = nil)
|
9
|
+
@response = response
|
10
|
+
@messages = []
|
11
|
+
|
12
|
+
process(@response) if response
|
13
|
+
end
|
14
|
+
|
15
|
+
# Adds errors.
|
16
|
+
# Accepts a response.
|
17
|
+
def add(response)
|
18
|
+
process(response)
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def process(response)
|
23
|
+
return unless response.error?
|
24
|
+
@messages << error_message(
|
25
|
+
error_to_sym(response.error),
|
26
|
+
error_to_human(response.error)
|
27
|
+
)
|
28
|
+
|
29
|
+
if response.error == Aitch::BadRequestError
|
30
|
+
response.data.css("errors > error").each do |error|
|
31
|
+
@messages << error_message(error.css("code").text, error.css("message").text)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def error_message(code, message)
|
37
|
+
I18n.t(code, scope: "pagseguro.errors", default: message)
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
# Error formats
|
42
|
+
def error_to_sym(error)
|
43
|
+
error.to_s.split(/::/)[-1]
|
44
|
+
.gsub(/Error$/, '')
|
45
|
+
.gsub(/[[:upper:]]/)
|
46
|
+
.with_index {|k, i| i == 0 ? k : ('_' + k)}
|
47
|
+
.downcase
|
48
|
+
.to_sym
|
49
|
+
end
|
50
|
+
|
51
|
+
def error_to_human(error)
|
52
|
+
error_to_sym(error).to_s
|
53
|
+
.capitalize
|
54
|
+
.gsub('_', ' ')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
module Extensions
|
3
|
+
module CollectionObject
|
4
|
+
extend Forwardable
|
5
|
+
include Enumerable
|
6
|
+
include EnsureType
|
7
|
+
|
8
|
+
def_delegators :@store, :size, :clear, :empty?, :any?, :each, :include?
|
9
|
+
|
10
|
+
attr_accessor :store
|
11
|
+
|
12
|
+
def initialize
|
13
|
+
@store = []
|
14
|
+
end
|
15
|
+
|
16
|
+
def collection_type
|
17
|
+
PagSeguro.const_get(class_name_singularized)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Adds a new object to the collection.
|
21
|
+
def <<(param)
|
22
|
+
object = ensure_type(collection_type, param)
|
23
|
+
@store << object unless include?(object)
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def class_name_singularized
|
29
|
+
class_name = self.class.to_s.split('::').last
|
30
|
+
class_name[0...-1] if class_name.end_with? 's'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
module Extensions
|
3
|
+
module Credentiable
|
4
|
+
# Get the credential object value
|
5
|
+
attr_reader :credentials
|
6
|
+
|
7
|
+
# Set a credential object
|
8
|
+
def credentials=(credentials)
|
9
|
+
if credentials.kind_of?(ApplicationCredentials) || credentials.kind_of?(AccountCredentials)
|
10
|
+
@credentials = credentials
|
11
|
+
else
|
12
|
+
raise 'Invalid credentials object'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
module Extensions
|
3
|
+
module MassAssignment
|
4
|
+
def initialize(options = {})
|
5
|
+
before_initialize if respond_to?(:before_initialize, true)
|
6
|
+
options.each {|name, value| public_send("#{name}=", value) }
|
7
|
+
after_initialize if respond_to?(:after_initialize, true)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Holder
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
include Extensions::EnsureType
|
5
|
+
|
6
|
+
# Set the name.
|
7
|
+
attr_accessor :name
|
8
|
+
|
9
|
+
# Set the birth date.
|
10
|
+
attr_accessor :birth_date
|
11
|
+
|
12
|
+
# Get document info.
|
13
|
+
attr_reader :document
|
14
|
+
|
15
|
+
# Get the phone.
|
16
|
+
attr_reader :phone
|
17
|
+
|
18
|
+
# Get the billing address
|
19
|
+
attr_reader :billing_address
|
20
|
+
|
21
|
+
# Set the document.
|
22
|
+
def document=(document)
|
23
|
+
@document = ensure_type(Document, document)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Set the phone.
|
27
|
+
def phone=(phone)
|
28
|
+
@phone = ensure_type(Phone, phone)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Set the billing address
|
32
|
+
def billing_address=(billing_address)
|
33
|
+
@billing_address = ensure_type(Address, billing_address)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Installment
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
|
5
|
+
# Set the credit card brand.
|
6
|
+
attr_accessor :card_brand
|
7
|
+
|
8
|
+
# Set the installments quantity.
|
9
|
+
attr_accessor :quantity
|
10
|
+
|
11
|
+
# Set the amount.
|
12
|
+
# Must fit the patern: \\d+.\\d{2} (e.g. "12.00")
|
13
|
+
attr_accessor :amount
|
14
|
+
|
15
|
+
# Set total amount.
|
16
|
+
attr_accessor :total_amount
|
17
|
+
|
18
|
+
# Set interest free.
|
19
|
+
attr_accessor :interest_free
|
20
|
+
|
21
|
+
# Find installment options by a given amount
|
22
|
+
# Optional. Credit card brand
|
23
|
+
|
24
|
+
# Return a PagSeguro::Installment::Collection instance
|
25
|
+
def self.find(amount, card_brand, options = {})
|
26
|
+
request = Request.get("installments", api_version, options.merge(params(amount: amount, card_brand: card_brand)))
|
27
|
+
collection = Collection.new
|
28
|
+
Response.new(request, collection).serialize
|
29
|
+
|
30
|
+
collection
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def self.params(options)
|
36
|
+
RequestSerializer.new(options).to_params
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.api_version
|
40
|
+
'v2'
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.load_from_response(response)
|
44
|
+
if response.success? and response.xml?
|
45
|
+
Nokogiri::XML(response.body).css("installments > installment").map do |node|
|
46
|
+
load_from_xml(node)
|
47
|
+
end
|
48
|
+
else
|
49
|
+
Response.new Errors.new(response)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.load_from_xml(xml)
|
54
|
+
new Serializer.new(xml).serialize
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|