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,13 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Permission
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
# The permission code
|
5
|
+
attr_accessor :code
|
6
|
+
|
7
|
+
# The permission status
|
8
|
+
attr_accessor :status
|
9
|
+
|
10
|
+
# The time when the permission was last updated
|
11
|
+
attr_accessor :last_update
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Person
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
include Extensions::EnsureType
|
5
|
+
|
6
|
+
# Set the account name.
|
7
|
+
attr_accessor :name
|
8
|
+
|
9
|
+
# Set the account birth_date.
|
10
|
+
# Pattern: aaaa-MM-dd
|
11
|
+
attr_accessor :birth_date
|
12
|
+
|
13
|
+
# Set the account address.
|
14
|
+
attr_reader :address
|
15
|
+
|
16
|
+
def address=(address)
|
17
|
+
@address = ensure_type(Address, address)
|
18
|
+
end
|
19
|
+
|
20
|
+
def documents
|
21
|
+
@documents ||= Documents.new
|
22
|
+
end
|
23
|
+
|
24
|
+
def documents=(_documents=[])
|
25
|
+
_documents.each do |document|
|
26
|
+
documents << ensure_type(Document, document)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def phones
|
31
|
+
@phones ||= Phones.new
|
32
|
+
end
|
33
|
+
|
34
|
+
def phones=(_phones=[])
|
35
|
+
_phones.each do |phone|
|
36
|
+
phones << ensure_type(Phone, phone)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Phone
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
|
5
|
+
# Set the type phone
|
6
|
+
# Must be HOME, MOBILE or BUSINESS
|
7
|
+
attr_accessor :type
|
8
|
+
|
9
|
+
# Set the area code.
|
10
|
+
attr_accessor :area_code
|
11
|
+
|
12
|
+
# Set the phone number.
|
13
|
+
# Must have 7-9 numbers.
|
14
|
+
attr_accessor :number
|
15
|
+
|
16
|
+
def ==(other)
|
17
|
+
[type, area_code, number] == [other.type, other.area_code, other.number]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Receiver
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
include Extensions::EnsureType
|
5
|
+
|
6
|
+
# Set receiver's email.
|
7
|
+
attr_accessor :email
|
8
|
+
|
9
|
+
# Set receiver's public_key.
|
10
|
+
attr_accessor :public_key
|
11
|
+
|
12
|
+
# Get receiver split.
|
13
|
+
attr_reader :split
|
14
|
+
|
15
|
+
# Set receiver split.
|
16
|
+
def split=(split)
|
17
|
+
@split = ensure_type(ReceiverSplit, split)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class ReceiverSplit
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
include Extensions::EnsureType
|
5
|
+
|
6
|
+
# Set amount.
|
7
|
+
attr_accessor :amount
|
8
|
+
|
9
|
+
# Set rate percent.
|
10
|
+
attr_accessor :rate_percent
|
11
|
+
|
12
|
+
# Set fee percent.
|
13
|
+
attr_accessor :fee_percent
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,170 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
module Request
|
3
|
+
extend self
|
4
|
+
extend Forwardable
|
5
|
+
|
6
|
+
# Delegates the <tt>:config</tt> and <tt>:configure</tt> methods
|
7
|
+
# to the <tt>:request</tt> method, which returns a Aitch::Namespace instance.
|
8
|
+
def_delegators :request, :config, :configure
|
9
|
+
|
10
|
+
# Perform a GET request.
|
11
|
+
#
|
12
|
+
# # +path+: the path that will be requested. Must be something like <tt>"transactions/code/739D69-79C052C05280-55542D9FBB33-CAB2B1"</tt>.
|
13
|
+
# # +api_version+: the current PagSeguro API version of the requested service
|
14
|
+
# # +data+: the data that will be sent as query string. Must be a Hash.
|
15
|
+
# # +headers+: any additional header that will be sent through the request.
|
16
|
+
#
|
17
|
+
def get(path, api_version, data = {}, headers = {})
|
18
|
+
execute :get, path, api_version, data, headers
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_with_auth_on_url(path, api_version, credentials)
|
22
|
+
request.public_send(
|
23
|
+
:get,
|
24
|
+
PagSeguro.api_url("#{api_version}/#{path}?#{credentials_to_params(credentials)}")
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_without_api_version(path, data={}, headers={})
|
29
|
+
request.get(path, extended_data(data), headers)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Perform a POST request.
|
33
|
+
#
|
34
|
+
# # +path+: the path that will be requested. Must be something like <tt>"checkout"</tt>.
|
35
|
+
# # +api_version+: the current PagSeguro API version of the requested service
|
36
|
+
# # +data+: the data that will be sent as body data. Must be a Hash.
|
37
|
+
# # +headers+: any additional header that will be sent through the request.
|
38
|
+
#
|
39
|
+
def post(path, api_version, data = {}, headers = {})
|
40
|
+
execute :post, path, api_version, data, headers
|
41
|
+
end
|
42
|
+
|
43
|
+
# Perform a POST request, sending XML data.
|
44
|
+
#
|
45
|
+
# # +path+: the path that will be requested. Must be something like <tt>"checkout"</tt>.
|
46
|
+
# # +api_version+: the current PagSeguro API version of the requested service
|
47
|
+
# # +credentials+: the credentials like ApplicationCredentials or AccountCredentials.
|
48
|
+
# # +data+: the data that will be sent as body data. Must be a XML.
|
49
|
+
#
|
50
|
+
def post_xml(path, api_version, credentials, data = '', options={})
|
51
|
+
credentials_params = credentials_to_params(credentials)
|
52
|
+
url_path = [api_version, path].reject(&:nil?).join('/')
|
53
|
+
|
54
|
+
request.post do
|
55
|
+
url PagSeguro.api_url("#{url_path}?#{credentials_params}")
|
56
|
+
headers "Content-Type" => "application/xml; charset=#{PagSeguro.encoding}"
|
57
|
+
headers.merge!(options[:headers]) if options[:headers]
|
58
|
+
body data
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Perform a PUT request, sending XML data.
|
63
|
+
#
|
64
|
+
# # +path+: the path that will be requested. Must be something like <tt>"checkout"</tt>.
|
65
|
+
# # +credentials+: the credentials like ApplicationCredentials or AccountCredentials.
|
66
|
+
# # +data+: the data that will be sent as body data. Must be a XML.
|
67
|
+
#
|
68
|
+
def put_xml(path, credentials, data)
|
69
|
+
full_url = PagSeguro.api_url("#{path}?#{credentials_to_params(credentials)}")
|
70
|
+
|
71
|
+
request.put do
|
72
|
+
url full_url
|
73
|
+
headers "Content-Type" => "application/xml; charset=#{PagSeguro.encoding}",
|
74
|
+
"Accept" => "application/vnd.pagseguro.com.br.v1+xml;charset=ISO-8859-1"
|
75
|
+
body data
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# Perform the specified HTTP request. It will include the API credentials,
|
80
|
+
# api_version, encoding and additional headers.
|
81
|
+
def execute(request_method, path, api_version, data, headers) # :nodoc:
|
82
|
+
request.public_send(
|
83
|
+
request_method,
|
84
|
+
PagSeguro.api_url("#{api_version}/#{path}"),
|
85
|
+
extended_data(data),
|
86
|
+
extended_headers(request_method, headers)
|
87
|
+
)
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
def request
|
92
|
+
@request ||= Aitch::Namespace.new
|
93
|
+
@request.configure do |config|
|
94
|
+
config.timeout = 50
|
95
|
+
end
|
96
|
+
@request
|
97
|
+
end
|
98
|
+
|
99
|
+
def extended_data(data)
|
100
|
+
if data[:credentials]
|
101
|
+
data.merge!(credentials_object(data))
|
102
|
+
else
|
103
|
+
data.merge!(global_credentials(data))
|
104
|
+
end
|
105
|
+
data.merge!({ charset: PagSeguro.encoding })
|
106
|
+
data.delete_if { |_, value| value.nil? }
|
107
|
+
end
|
108
|
+
|
109
|
+
def extended_headers(request_method, headers)
|
110
|
+
headers.merge __send__("headers_for_#{request_method}")
|
111
|
+
end
|
112
|
+
|
113
|
+
def headers_for_post
|
114
|
+
{
|
115
|
+
"Accept-Charset" => PagSeguro.encoding,
|
116
|
+
"Content-Type" => "application/x-www-form-urlencoded; charset=#{PagSeguro.encoding}"
|
117
|
+
}
|
118
|
+
end
|
119
|
+
|
120
|
+
def headers_for_get
|
121
|
+
{
|
122
|
+
"Accept-Charset" => PagSeguro.encoding
|
123
|
+
}
|
124
|
+
end
|
125
|
+
|
126
|
+
def credentials_to_params(credentials)
|
127
|
+
credentials_object(credentials: credentials)
|
128
|
+
.delete_if { |_, value| value.nil? }
|
129
|
+
.map { |key, value| "#{key}=#{value}" }
|
130
|
+
.join('&')
|
131
|
+
end
|
132
|
+
|
133
|
+
def credentials_object(data)
|
134
|
+
credentials = data.delete(:credentials)
|
135
|
+
if credentials.respond_to? :app_id
|
136
|
+
{
|
137
|
+
appId: credentials.app_id,
|
138
|
+
appKey: credentials.app_key,
|
139
|
+
authorizationCode: credentials.authorization_code
|
140
|
+
}
|
141
|
+
else
|
142
|
+
{
|
143
|
+
email: credentials.email,
|
144
|
+
token: credentials.token
|
145
|
+
}
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
def global_credentials(data)
|
150
|
+
if PagSeguro.app_id && PagSeguro.app_key
|
151
|
+
{
|
152
|
+
appId: PagSeguro.app_id,
|
153
|
+
appKey: PagSeguro.app_key
|
154
|
+
}
|
155
|
+
else
|
156
|
+
{
|
157
|
+
email: data[:email] || PagSeguro.email,
|
158
|
+
token: data[:token] || PagSeguro.token
|
159
|
+
}
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
Request.configure do |config|
|
165
|
+
config.default_headers = {
|
166
|
+
"lib-description" => "ruby:#{PagSeguro::VERSION}",
|
167
|
+
"language-engine-description" => "ruby:#{RUBY_VERSION}"
|
168
|
+
}
|
169
|
+
end
|
170
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Sender
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
include Extensions::EnsureType
|
5
|
+
|
6
|
+
# Get the sender phone.
|
7
|
+
attr_reader :phone
|
8
|
+
|
9
|
+
# Get the sender document
|
10
|
+
attr_reader :document
|
11
|
+
|
12
|
+
# Get the sender address
|
13
|
+
attr_reader :address
|
14
|
+
|
15
|
+
# Set the sender name.
|
16
|
+
attr_accessor :name
|
17
|
+
|
18
|
+
# Set the sender e-mail.
|
19
|
+
attr_accessor :email
|
20
|
+
|
21
|
+
# Set the sender ip
|
22
|
+
attr_accessor :ip
|
23
|
+
|
24
|
+
# Set sender hash.
|
25
|
+
# It's used to identify the sender.
|
26
|
+
attr_accessor :hash
|
27
|
+
|
28
|
+
# Set the sender phone.
|
29
|
+
def phone=(phone)
|
30
|
+
@phone = ensure_type(Phone, phone)
|
31
|
+
end
|
32
|
+
|
33
|
+
def documents
|
34
|
+
@documents ||= Documents.new
|
35
|
+
end
|
36
|
+
|
37
|
+
def documents=(_documents=[])
|
38
|
+
_documents.each do |document|
|
39
|
+
documents << document
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Set the sender document.
|
44
|
+
def document=(document)
|
45
|
+
documents << ensure_type(Document, document)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Set the sender address.
|
49
|
+
def address=(address)
|
50
|
+
@address = ensure_type(Address, address)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Session
|
3
|
+
include Extensions::MassAssignment
|
4
|
+
|
5
|
+
# The session id.
|
6
|
+
attr_accessor :id
|
7
|
+
|
8
|
+
# The PageSeguro::Errors object.
|
9
|
+
attr_writer :errors
|
10
|
+
|
11
|
+
def errors
|
12
|
+
@errors ||= Errors.new
|
13
|
+
end
|
14
|
+
|
15
|
+
# Create a payment session.
|
16
|
+
# Return a PagSeguro::Session instance.
|
17
|
+
def self.create
|
18
|
+
response = Request.post("sessions", api_version)
|
19
|
+
session = Session.new
|
20
|
+
response = Response.new(response, session).serialize
|
21
|
+
|
22
|
+
session
|
23
|
+
end
|
24
|
+
|
25
|
+
def update_attributes(attrs)
|
26
|
+
attrs.map { |name, value| send("#{name}=", value) }
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def self.api_version
|
31
|
+
'v2'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Session
|
3
|
+
class Response
|
4
|
+
def initialize(response, session)
|
5
|
+
@response = response
|
6
|
+
@session = session
|
7
|
+
end
|
8
|
+
|
9
|
+
def serialize
|
10
|
+
if success?
|
11
|
+
xml = Nokogiri::XML(response.body).css("session").first
|
12
|
+
session.update_attributes(ResponseSerializer.new(xml).serialize)
|
13
|
+
else
|
14
|
+
session.errors.add(response)
|
15
|
+
end
|
16
|
+
|
17
|
+
session
|
18
|
+
end
|
19
|
+
|
20
|
+
def success?
|
21
|
+
response.success? && response.xml?
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
# The request response.
|
26
|
+
attr_reader :response
|
27
|
+
|
28
|
+
# The Session instance.
|
29
|
+
attr_reader :session
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Session
|
3
|
+
class ResponseSerializer
|
4
|
+
# The session that will be serialized
|
5
|
+
attr_reader :xml
|
6
|
+
|
7
|
+
def initialize(xml)
|
8
|
+
@xml = xml
|
9
|
+
end
|
10
|
+
|
11
|
+
def serialize
|
12
|
+
{}.tap do |data|
|
13
|
+
data[:id] = xml.css("id").text
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module PagSeguro
|
2
|
+
class Shipping
|
3
|
+
# Set the available shipping type.
|
4
|
+
TYPE = {
|
5
|
+
pac: 1,
|
6
|
+
sedex: 2,
|
7
|
+
not_specified: 3
|
8
|
+
}
|
9
|
+
|
10
|
+
# Define the error class for invalid type assignment.
|
11
|
+
InvalidShippingTypeError = Class.new(StandardError)
|
12
|
+
|
13
|
+
include Extensions::MassAssignment
|
14
|
+
include Extensions::EnsureType
|
15
|
+
|
16
|
+
# Define the shipping type id.
|
17
|
+
attr_reader :type_id
|
18
|
+
|
19
|
+
# Get the shipping type name.
|
20
|
+
attr_reader :type_name
|
21
|
+
|
22
|
+
# Get the address object.
|
23
|
+
attr_reader :address
|
24
|
+
|
25
|
+
# Set the shipping cost.
|
26
|
+
attr_accessor :cost
|
27
|
+
|
28
|
+
# Set the shipping address info.
|
29
|
+
def address=(address)
|
30
|
+
@address = ensure_type(Address, address)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Set the shipping type.
|
34
|
+
# It raises the PagSeguro::Shipping::InvalidShippingTypeError exception
|
35
|
+
# when trying to assign an invalid type name.
|
36
|
+
def type_name=(type_name)
|
37
|
+
type_name = type_name.to_sym
|
38
|
+
@type_id = TYPE.fetch(type_name) {
|
39
|
+
raise InvalidShippingTypeError, "invalid #{type_name.inspect} type name"
|
40
|
+
}
|
41
|
+
@type_name = type_name
|
42
|
+
end
|
43
|
+
|
44
|
+
# Set the shipping type id.
|
45
|
+
# It raises the PagSeguro::Shipping::InvalidShippingTypeError exception
|
46
|
+
# when trying to assign an invalid type id.
|
47
|
+
def type_id=(id)
|
48
|
+
type_id = id.to_i
|
49
|
+
|
50
|
+
raise InvalidShippingTypeError,
|
51
|
+
"invalid #{id.inspect} type id" unless TYPE.value?(type_id)
|
52
|
+
|
53
|
+
@type_id = type_id
|
54
|
+
@type_name = TYPE.key(type_id)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|