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.
Files changed (324) hide show
  1. checksums.yaml +7 -0
  2. data/.github/.gitignore +204 -0
  3. data/.github/ISSUE_TEMPLATE/relatorio-de-bug.md +29 -0
  4. data/.github/workflows/codacy-analysis.yml +46 -0
  5. data/.gitignore +28 -0
  6. data/.rspec +1 -0
  7. data/.travis.yml +13 -0
  8. data/CHANGELOG.md +95 -0
  9. data/CONTRIBUTING.md +39 -0
  10. data/Dockerfile +20 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE-2.0.txt +177 -0
  13. data/README.md +436 -0
  14. data/Rakefile +5 -0
  15. data/docker-compose.yml +5 -0
  16. data/docs/transparent_checkout.md +201 -0
  17. data/examples/authorization/create_authorization.rb +32 -0
  18. data/examples/authorization/create_authorization_with_account.rb +56 -0
  19. data/examples/authorization/search/search_authorization_by_code.rb +29 -0
  20. data/examples/authorization/search/search_authorization_by_date.rb +35 -0
  21. data/examples/authorization/search/search_authorization_by_notification_code.rb +29 -0
  22. data/examples/authorization/search/search_authorization_by_reference.rb +31 -0
  23. data/examples/boot.rb +26 -0
  24. data/examples/checkout/create_payment_request.rb +63 -0
  25. data/examples/checkout/search/search_abandoned_transactions.rb +41 -0
  26. data/examples/checkout/search/search_transaction_by_code.rb +76 -0
  27. data/examples/checkout/search/search_transaction_by_notification_code.rb +76 -0
  28. data/examples/checkout/search/search_transaction_by_reference.rb +36 -0
  29. data/examples/checkout/search/search_transactions_by_date.rb +45 -0
  30. data/examples/create_session.rb +19 -0
  31. data/examples/direct/create_transaction_using_boleto.rb +100 -0
  32. data/examples/direct/create_transaction_using_credit_card.rb +128 -0
  33. data/examples/direct/create_transaction_using_online_debit.rb +104 -0
  34. data/examples/get_installments.rb +40 -0
  35. data/examples/preapproval/cancel_preapproval.rb +26 -0
  36. data/examples/preapproval/change_preapproval_payment.rb +50 -0
  37. data/examples/preapproval/change_preapproval_status.rb +29 -0
  38. data/examples/preapproval/charge_preapproval.rb +36 -0
  39. data/examples/preapproval/create_preapproval.rb +68 -0
  40. data/examples/preapproval/create_preapproval_auto.rb +53 -0
  41. data/examples/preapproval/create_preapproval_discount.rb +30 -0
  42. data/examples/preapproval/create_preapproval_manual.rb +58 -0
  43. data/examples/preapproval/create_preapproval_transparent.rb +41 -0
  44. data/examples/preapproval/preapproval_retry.rb +29 -0
  45. data/examples/preapproval/search/search_by_date_interval.rb +45 -0
  46. data/examples/preapproval/search/search_by_days_interval.rb +46 -0
  47. data/examples/preapproval/search/search_by_notification_code.rb +50 -0
  48. data/examples/preapproval/search/search_by_subscription_code.rb +50 -0
  49. data/examples/preapproval/search/search_subscription_payment_orders.rb +53 -0
  50. data/examples/request_transaction_cancellation.rb +19 -0
  51. data/examples/split_payment/create_authorization.rb +32 -0
  52. data/examples/split_payment/create_payment_request.rb +71 -0
  53. data/examples/split_payment/create_transaction_using_boleto.rb +118 -0
  54. data/examples/split_payment/create_transaction_using_credit_card.rb +152 -0
  55. data/lib/pagseguro-oficial.rb +1 -0
  56. data/lib/pagseguro.rb +221 -0
  57. data/lib/pagseguro/account.rb +29 -0
  58. data/lib/pagseguro/account_credentials.rb +14 -0
  59. data/lib/pagseguro/address.rb +40 -0
  60. data/lib/pagseguro/application_credentials.rb +18 -0
  61. data/lib/pagseguro/authorization.rb +61 -0
  62. data/lib/pagseguro/authorization/collection.rb +28 -0
  63. data/lib/pagseguro/authorization/request_serializer.rb +24 -0
  64. data/lib/pagseguro/authorization/response.rb +49 -0
  65. data/lib/pagseguro/authorization/response_serializer.rb +40 -0
  66. data/lib/pagseguro/authorization_request.rb +84 -0
  67. data/lib/pagseguro/authorization_request/request_serializer.rb +142 -0
  68. data/lib/pagseguro/authorization_request/response.rb +26 -0
  69. data/lib/pagseguro/authorization_request/response_serializer.rb +18 -0
  70. data/lib/pagseguro/bank.rb +8 -0
  71. data/lib/pagseguro/boleto_transaction_request.rb +8 -0
  72. data/lib/pagseguro/company.rb +41 -0
  73. data/lib/pagseguro/config.rb +34 -0
  74. data/lib/pagseguro/credit_card_transaction_request.rb +39 -0
  75. data/lib/pagseguro/creditor_fee.rb +23 -0
  76. data/lib/pagseguro/document.rb +23 -0
  77. data/lib/pagseguro/documents.rb +5 -0
  78. data/lib/pagseguro/errors.rb +57 -0
  79. data/lib/pagseguro/exceptions.rb +3 -0
  80. data/lib/pagseguro/extensions/collection_object.rb +34 -0
  81. data/lib/pagseguro/extensions/credentiable.rb +17 -0
  82. data/lib/pagseguro/extensions/ensure_type.rb +9 -0
  83. data/lib/pagseguro/extensions/mass_assignment.rb +11 -0
  84. data/lib/pagseguro/holder.rb +36 -0
  85. data/lib/pagseguro/installment.rb +57 -0
  86. data/lib/pagseguro/installment/collection.rb +25 -0
  87. data/lib/pagseguro/installment/request_serializer.rb +24 -0
  88. data/lib/pagseguro/installment/response.rb +37 -0
  89. data/lib/pagseguro/installment/response_serializer.rb +22 -0
  90. data/lib/pagseguro/item.rb +34 -0
  91. data/lib/pagseguro/items.rb +23 -0
  92. data/lib/pagseguro/manual_subscription_charger.rb +59 -0
  93. data/lib/pagseguro/manual_subscription_charger/request_serializer.rb +50 -0
  94. data/lib/pagseguro/manual_subscription_charger/response.rb +36 -0
  95. data/lib/pagseguro/manual_subscription_charger/response_serializer.rb +17 -0
  96. data/lib/pagseguro/notification.rb +11 -0
  97. data/lib/pagseguro/notification/authorization.rb +15 -0
  98. data/lib/pagseguro/notification/transaction.rb +15 -0
  99. data/lib/pagseguro/online_debit_transaction_request.rb +17 -0
  100. data/lib/pagseguro/partner.rb +20 -0
  101. data/lib/pagseguro/payment_method.rb +39 -0
  102. data/lib/pagseguro/payment_release.rb +21 -0
  103. data/lib/pagseguro/payment_releases.rb +28 -0
  104. data/lib/pagseguro/payment_request.rb +117 -0
  105. data/lib/pagseguro/payment_request/request_serializer.rb +203 -0
  106. data/lib/pagseguro/payment_request/response.rb +35 -0
  107. data/lib/pagseguro/payment_status.rb +39 -0
  108. data/lib/pagseguro/permission.rb +13 -0
  109. data/lib/pagseguro/person.rb +40 -0
  110. data/lib/pagseguro/phone.rb +20 -0
  111. data/lib/pagseguro/phones.rb +5 -0
  112. data/lib/pagseguro/receiver.rb +20 -0
  113. data/lib/pagseguro/receiver_split.rb +15 -0
  114. data/lib/pagseguro/request.rb +170 -0
  115. data/lib/pagseguro/sender.rb +53 -0
  116. data/lib/pagseguro/session.rb +34 -0
  117. data/lib/pagseguro/session/response.rb +32 -0
  118. data/lib/pagseguro/session/response_serializer.rb +18 -0
  119. data/lib/pagseguro/shipping.rb +57 -0
  120. data/lib/pagseguro/subscription.rb +132 -0
  121. data/lib/pagseguro/subscription/request_serializer.rb +129 -0
  122. data/lib/pagseguro/subscription/response.rb +49 -0
  123. data/lib/pagseguro/subscription/response_serializer.rb +62 -0
  124. data/lib/pagseguro/subscription/subscription_search.rb +135 -0
  125. data/lib/pagseguro/subscription_canceller.rb +30 -0
  126. data/lib/pagseguro/subscription_canceller/response.rb +34 -0
  127. data/lib/pagseguro/subscription_change_payment.rb +46 -0
  128. data/lib/pagseguro/subscription_change_payment/request_serializer.rb +80 -0
  129. data/lib/pagseguro/subscription_change_payment/response.rb +26 -0
  130. data/lib/pagseguro/subscription_change_status.rb +50 -0
  131. data/lib/pagseguro/subscription_change_status/request_serializer.rb +28 -0
  132. data/lib/pagseguro/subscription_change_status/response.rb +26 -0
  133. data/lib/pagseguro/subscription_discount.rb +41 -0
  134. data/lib/pagseguro/subscription_discount/request_serializer.rb +34 -0
  135. data/lib/pagseguro/subscription_discount/response.rb +34 -0
  136. data/lib/pagseguro/subscription_payment_method.rb +21 -0
  137. data/lib/pagseguro/subscription_payment_order.rb +57 -0
  138. data/lib/pagseguro/subscription_payment_order/response.rb +37 -0
  139. data/lib/pagseguro/subscription_payment_order/response_serializer.rb +51 -0
  140. data/lib/pagseguro/subscription_plan.rb +69 -0
  141. data/lib/pagseguro/subscription_plan/request_serializer.rb +81 -0
  142. data/lib/pagseguro/subscription_plan/response.rb +36 -0
  143. data/lib/pagseguro/subscription_plan/response_serializer.rb +17 -0
  144. data/lib/pagseguro/subscription_retry.rb +35 -0
  145. data/lib/pagseguro/subscription_retry/response.rb +34 -0
  146. data/lib/pagseguro/subscription_search_payment_orders.rb +131 -0
  147. data/lib/pagseguro/subscription_transaction.rb +29 -0
  148. data/lib/pagseguro/subscription_transactions.rb +5 -0
  149. data/lib/pagseguro/transaction.rb +215 -0
  150. data/lib/pagseguro/transaction/collection.rb +20 -0
  151. data/lib/pagseguro/transaction/response.rb +45 -0
  152. data/lib/pagseguro/transaction/search.rb +121 -0
  153. data/lib/pagseguro/transaction/search/search_abandoned.rb +20 -0
  154. data/lib/pagseguro/transaction/search/search_by_date.rb +16 -0
  155. data/lib/pagseguro/transaction/search/search_by_reference.rb +13 -0
  156. data/lib/pagseguro/transaction/serializer.rb +181 -0
  157. data/lib/pagseguro/transaction_cancellation.rb +37 -0
  158. data/lib/pagseguro/transaction_cancellation/request_serializer.rb +18 -0
  159. data/lib/pagseguro/transaction_cancellation/response.rb +33 -0
  160. data/lib/pagseguro/transaction_cancellation/response_serializer.rb +17 -0
  161. data/lib/pagseguro/transaction_installment.rb +11 -0
  162. data/lib/pagseguro/transaction_refund.rb +44 -0
  163. data/lib/pagseguro/transaction_refund/request_serializer.rb +24 -0
  164. data/lib/pagseguro/transaction_refund/response.rb +33 -0
  165. data/lib/pagseguro/transaction_refund/response_serializer.rb +17 -0
  166. data/lib/pagseguro/transaction_request.rb +165 -0
  167. data/lib/pagseguro/transaction_request/request_serializer.rb +311 -0
  168. data/lib/pagseguro/transaction_request/response.rb +33 -0
  169. data/lib/pagseguro/transaction_request/response_serializer.rb +117 -0
  170. data/lib/pagseguro/transaction_status.rb +14 -0
  171. data/lib/pagseguro/version.rb +3 -0
  172. data/locales/pt-BR.yml +130 -0
  173. data/pagseguro-oficial.gemspec +31 -0
  174. data/spec/fixtures/authorization/find_authorization.xml +17 -0
  175. data/spec/fixtures/authorization/search_authorization.xml +47 -0
  176. data/spec/fixtures/authorization_request/authorization_request.xml +11 -0
  177. data/spec/fixtures/authorization_request/authorization_request_with_account.xml +47 -0
  178. data/spec/fixtures/authorization_request/success.xml +4 -0
  179. data/spec/fixtures/by_date/success.xml +85 -0
  180. data/spec/fixtures/installment/success.xml +24 -0
  181. data/spec/fixtures/invalid_code.xml +7 -0
  182. data/spec/fixtures/manual_subscription_charger/fail.xml +6 -0
  183. data/spec/fixtures/manual_subscription_charger/success.xml +4 -0
  184. data/spec/fixtures/payment_request/failure.xml +7 -0
  185. data/spec/fixtures/payment_request/success.xml +5 -0
  186. data/spec/fixtures/refund/success.xml +2 -0
  187. data/spec/fixtures/session/success.xml +4 -0
  188. data/spec/fixtures/subscription/fail.xml +6 -0
  189. data/spec/fixtures/subscription/find_success.xml +28 -0
  190. data/spec/fixtures/subscription/search_success.xml +18 -0
  191. data/spec/fixtures/subscription/success.xml +4 -0
  192. data/spec/fixtures/subscription_canceller/fail.xml +6 -0
  193. data/spec/fixtures/subscription_change_payment/fail.xml +7 -0
  194. data/spec/fixtures/subscription_change_status/fail.xml +7 -0
  195. data/spec/fixtures/subscription_discount/fail.xml +6 -0
  196. data/spec/fixtures/subscription_payment_order/success.xml +18 -0
  197. data/spec/fixtures/subscription_plan/fail.xml +6 -0
  198. data/spec/fixtures/subscription_plan/success.xml +4 -0
  199. data/spec/fixtures/subscription_retry/fail.xml +7 -0
  200. data/spec/fixtures/subscription_search_payment_orders/success.xml +43 -0
  201. data/spec/fixtures/transaction_cancellation/success.xml +2 -0
  202. data/spec/fixtures/transaction_request/success.xml +58 -0
  203. data/spec/fixtures/transactions/additional.xml +53 -0
  204. data/spec/fixtures/transactions/search.xml +40 -0
  205. data/spec/fixtures/transactions/success.xml +75 -0
  206. data/spec/fixtures/transactions/without_status_and_type.xml +71 -0
  207. data/spec/pagseguro/account_credentials_spec.rb +10 -0
  208. data/spec/pagseguro/account_spec.rb +27 -0
  209. data/spec/pagseguro/address_spec.rb +17 -0
  210. data/spec/pagseguro/application_credentials_spec.rb +11 -0
  211. data/spec/pagseguro/authorization/collection_spec.rb +49 -0
  212. data/spec/pagseguro/authorization/request_serializer_spec.rb +10 -0
  213. data/spec/pagseguro/authorization/response_serializer_spec.rb +19 -0
  214. data/spec/pagseguro/authorization/response_spec.rb +90 -0
  215. data/spec/pagseguro/authorization_request/request_serializer_spec.rb +323 -0
  216. data/spec/pagseguro/authorization_request/response_serializer_spec.rb +15 -0
  217. data/spec/pagseguro/authorization_request/response_spec.rb +36 -0
  218. data/spec/pagseguro/authorization_request_spec.rb +127 -0
  219. data/spec/pagseguro/authorization_spec.rb +111 -0
  220. data/spec/pagseguro/bank_spec.rb +5 -0
  221. data/spec/pagseguro/boleto_transaction_request_spec.rb +9 -0
  222. data/spec/pagseguro/company_spec.rb +12 -0
  223. data/spec/pagseguro/config_spec.rb +5 -0
  224. data/spec/pagseguro/credit_card_transaction_request_spec.rb +36 -0
  225. data/spec/pagseguro/creditor_fee_spec.rb +10 -0
  226. data/spec/pagseguro/document_spec.rb +21 -0
  227. data/spec/pagseguro/documents_spec.rb +37 -0
  228. data/spec/pagseguro/errors_spec.rb +145 -0
  229. data/spec/pagseguro/extensions/collection_object_spec.rb +77 -0
  230. data/spec/pagseguro/features/create_session_spec.rb +52 -0
  231. data/spec/pagseguro/features/create_transaction_request_spec.rb +58 -0
  232. data/spec/pagseguro/holder_spec.rb +10 -0
  233. data/spec/pagseguro/installment/collection_spec.rb +43 -0
  234. data/spec/pagseguro/installment/request_serializer_spec.rb +16 -0
  235. data/spec/pagseguro/installment/response_serializer_spec.rb +33 -0
  236. data/spec/pagseguro/installment/response_spec.rb +56 -0
  237. data/spec/pagseguro/installment_spec.rb +50 -0
  238. data/spec/pagseguro/item_spec.rb +20 -0
  239. data/spec/pagseguro/items_spec.rb +148 -0
  240. data/spec/pagseguro/manual_subscription_charger/request_serializer_spec.rb +79 -0
  241. data/spec/pagseguro/manual_subscription_charger/response_serializer_spec.rb +10 -0
  242. data/spec/pagseguro/manual_subscription_charger/response_spec.rb +65 -0
  243. data/spec/pagseguro/manual_subscription_charger_spec.rb +68 -0
  244. data/spec/pagseguro/notification_spec.rb +6 -0
  245. data/spec/pagseguro/online_debit_transaction_request_spec.rb +18 -0
  246. data/spec/pagseguro/pagseguro_spec.rb +82 -0
  247. data/spec/pagseguro/partner_spec.rb +8 -0
  248. data/spec/pagseguro/payment_method_spec.rb +42 -0
  249. data/spec/pagseguro/payment_release_spec.rb +9 -0
  250. data/spec/pagseguro/payment_releases_spec.rb +34 -0
  251. data/spec/pagseguro/payment_request/request_serializer_spec.rb +283 -0
  252. data/spec/pagseguro/payment_request/response_spec.rb +13 -0
  253. data/spec/pagseguro/payment_request_spec.rb +148 -0
  254. data/spec/pagseguro/payment_status_spec.rb +33 -0
  255. data/spec/pagseguro/permission_spec.rb +7 -0
  256. data/spec/pagseguro/person_spec.rb +10 -0
  257. data/spec/pagseguro/phone_spec.rb +6 -0
  258. data/spec/pagseguro/phones_spec.rb +38 -0
  259. data/spec/pagseguro/receiver_spec.rb +7 -0
  260. data/spec/pagseguro/receiver_split_spec.rb +7 -0
  261. data/spec/pagseguro/request_spec.rb +114 -0
  262. data/spec/pagseguro/sender_spec.rb +25 -0
  263. data/spec/pagseguro/session/response_serializer_spec.rb +12 -0
  264. data/spec/pagseguro/session/response_spec.rb +57 -0
  265. data/spec/pagseguro/session_spec.rb +45 -0
  266. data/spec/pagseguro/shipping_spec.rb +40 -0
  267. data/spec/pagseguro/subscription/request_serializer_spec.rb +233 -0
  268. data/spec/pagseguro/subscription/response_serializer_spec.rb +46 -0
  269. data/spec/pagseguro/subscription/response_spec.rb +79 -0
  270. data/spec/pagseguro/subscription/subscription_search_spec.rb +154 -0
  271. data/spec/pagseguro/subscription_canceller/response_spec.rb +58 -0
  272. data/spec/pagseguro/subscription_canceller_spec.rb +57 -0
  273. data/spec/pagseguro/subscription_change_payment/request_serializer_spec.rb +150 -0
  274. data/spec/pagseguro/subscription_change_payment/response_spec.rb +41 -0
  275. data/spec/pagseguro/subscription_change_payment_spec.rb +60 -0
  276. data/spec/pagseguro/subscription_change_status/request_serializer_spec.rb +19 -0
  277. data/spec/pagseguro/subscription_change_status/response_spec.rb +41 -0
  278. data/spec/pagseguro/subscription_change_status_spec.rb +53 -0
  279. data/spec/pagseguro/subscription_discount/request_serializer_spec.rb +27 -0
  280. data/spec/pagseguro/subscription_discount/response_spec.rb +58 -0
  281. data/spec/pagseguro/subscription_discount_spec.rb +60 -0
  282. data/spec/pagseguro/subscription_payment_method_spec.rb +10 -0
  283. data/spec/pagseguro/subscription_payment_order/response_serializer_spec.rb +24 -0
  284. data/spec/pagseguro/subscription_payment_order/response_spec.rb +55 -0
  285. data/spec/pagseguro/subscription_payment_order_spec.rb +27 -0
  286. data/spec/pagseguro/subscription_plan/request_serializer_spec.rb +253 -0
  287. data/spec/pagseguro/subscription_plan/response_serializer_spec.rb +10 -0
  288. data/spec/pagseguro/subscription_plan/response_spec.rb +65 -0
  289. data/spec/pagseguro/subscription_plan_spec.rb +118 -0
  290. data/spec/pagseguro/subscription_retry/response_spec.rb +58 -0
  291. data/spec/pagseguro/subscription_retry_spec.rb +62 -0
  292. data/spec/pagseguro/subscription_search_payment_order_spec.rb +129 -0
  293. data/spec/pagseguro/subscription_spec.rb +137 -0
  294. data/spec/pagseguro/subscription_transaction_spec.rb +24 -0
  295. data/spec/pagseguro/subscription_transactions_spec.rb +37 -0
  296. data/spec/pagseguro/transaction/collection_spec.rb +43 -0
  297. data/spec/pagseguro/transaction/response_spec.rb +60 -0
  298. data/spec/pagseguro/transaction/search/search_abandoned_spec.rb +55 -0
  299. data/spec/pagseguro/transaction/search/search_by_date_spec.rb +28 -0
  300. data/spec/pagseguro/transaction/search/search_by_reference_spec.rb +21 -0
  301. data/spec/pagseguro/transaction/search_spec.rb +133 -0
  302. data/spec/pagseguro/transaction/serializer_spec.rb +86 -0
  303. data/spec/pagseguro/transaction_cancellation/request_serializer_spec.rb +13 -0
  304. data/spec/pagseguro/transaction_cancellation/response_serializer_spec.rb +9 -0
  305. data/spec/pagseguro/transaction_cancellation/response_spec.rb +45 -0
  306. data/spec/pagseguro/transaction_cancellation_spec.rb +60 -0
  307. data/spec/pagseguro/transaction_installment_spec.rb +6 -0
  308. data/spec/pagseguro/transaction_refund/request_serializer_spec.rb +15 -0
  309. data/spec/pagseguro/transaction_refund/response_serializer_spec.rb +12 -0
  310. data/spec/pagseguro/transaction_refund/response_spec.rb +39 -0
  311. data/spec/pagseguro/transaction_refund_spec.rb +71 -0
  312. data/spec/pagseguro/transaction_request/request_serializer_spec.rb +677 -0
  313. data/spec/pagseguro/transaction_request/response_serializer_spec.rb +52 -0
  314. data/spec/pagseguro/transaction_request/response_spec.rb +63 -0
  315. data/spec/pagseguro/transaction_request_spec.rb +156 -0
  316. data/spec/pagseguro/transaction_spec.rb +265 -0
  317. data/spec/pagseguro/transaction_status_spec.rb +7 -0
  318. data/spec/spec_helper.rb +35 -0
  319. data/spec/support/ensure_type_macro.rb +35 -0
  320. data/spec/support/helpers.rb +14 -0
  321. data/spec/support/mass_assignment_macro.rb +11 -0
  322. data/spec/support/shared_examples_for_configuration.rb +10 -0
  323. data/transaction/transaction_refund.rb +25 -0
  324. metadata +641 -0
@@ -0,0 +1,33 @@
1
+ module PagSeguro
2
+ class TransactionRequest
3
+ class Response
4
+ def initialize(response, object)
5
+ @response = response
6
+ @object = object
7
+ end
8
+
9
+ def serialize
10
+ if success?
11
+ xml = Nokogiri::XML(response.body).css("transaction").first
12
+ serializer = ResponseSerializer.new(xml).serialize
13
+ object.update_attributes(serializer)
14
+ else
15
+ object.errors.add(response)
16
+ end
17
+
18
+ object
19
+ end
20
+
21
+ def success?
22
+ response.success? && response.xml?
23
+ end
24
+
25
+ private
26
+ # The request response.
27
+ attr_reader :response
28
+
29
+ # The PagSeguro::TransactionRequest instance.
30
+ attr_reader :object
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,117 @@
1
+ module PagSeguro
2
+ class TransactionRequest
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
+ serialize_general(data)
13
+ serialize_amounts(data)
14
+ serialize_dates(data)
15
+ serialize_items(data)
16
+ serialize_sender(data)
17
+ serialize_shipping(data) if xml.css("shipping").any?
18
+ end
19
+ end
20
+
21
+ private
22
+ def serialize_general(data)
23
+ data[:code] = xml.css("> code").text
24
+ data[:reference] = xml.css("reference").text
25
+ data[:type_id] = xml.css("> type").text
26
+ data[:payment_link] = xml.css("paymentLink").text
27
+ data[:status] = xml.css("> status").text
28
+
29
+ data[:payment_method] = {
30
+ type_id: xml.css("paymentMethod > type").text,
31
+ code: xml.css("paymentMethod > code").text
32
+ }
33
+ end
34
+
35
+ def serialize_dates(data)
36
+ data[:created_at] = Time.parse(xml.css("date").text)
37
+
38
+ updated_at = xml.css("lastEventDate").text
39
+ data[:updated_at] = Time.parse(updated_at) unless updated_at.empty?
40
+ end
41
+
42
+ def serialize_amounts(data)
43
+ data[:gross_amount] = BigDecimal(xml.css("grossAmount").text.to_f.to_s)
44
+ data[:discount_amount] = BigDecimal(xml.css("discountAmount").text.to_f.to_s)
45
+ data[:net_amount] = BigDecimal(xml.css("netAmount").text.to_f.to_s)
46
+ data[:extra_amount] = BigDecimal(xml.css("extraAmount").text.to_f.to_s)
47
+ data[:installment_count] = xml.css("installmentCount").text.to_i
48
+ end
49
+
50
+ def serialize_items(data)
51
+ data[:items] = []
52
+
53
+ xml.css("items > item").each do |node|
54
+ item = {}
55
+ item[:id] = node.css("id").text
56
+ item[:description] = node.css("description").text
57
+ item[:quantity] = node.css("quantity").text.to_i
58
+ item[:amount] = BigDecimal(node.css("amount").text.to_f.to_s)
59
+
60
+ data[:items] << item
61
+ end
62
+ end
63
+
64
+ def serialize_sender(data)
65
+ sender = {
66
+ name: xml.css("sender > name").text,
67
+ email: xml.css("sender > email").text
68
+ }
69
+
70
+ serialize_phone(sender)
71
+ serialize_document(sender)
72
+ data[:sender] = sender
73
+ end
74
+
75
+ def serialize_document(data)
76
+ data[:document] = {
77
+ type: xml.css("sender > documents > document > type").text,
78
+ value: xml.css("sender > documents > document > value").text
79
+ }
80
+ end
81
+
82
+ def serialize_phone(data)
83
+ data[:phone] = {
84
+ area_code: xml.css("sender > phone > areaCode").text,
85
+ number: xml.css("sender > phone > number").text
86
+ }
87
+ end
88
+
89
+ def serialize_shipping(data)
90
+ shipping = {
91
+ type_id: xml.css("shipping > type").text,
92
+ cost: BigDecimal(xml.css("shipping > cost").text.to_f.to_s),
93
+ }
94
+
95
+ serialize_address(shipping)
96
+ data[:shipping] = shipping
97
+ end
98
+
99
+ def serialize_address(data)
100
+ data[:address] = {
101
+ street: address_node.css("> street").text,
102
+ number: address_node.css("> number").text,
103
+ complement: address_node.css("> complement").text,
104
+ district: address_node.css("> district").text,
105
+ city: address_node.css("> city").text,
106
+ state: address_node.css("> state").text,
107
+ country: address_node.css("> country").text,
108
+ postal_code: address_node.css("> postalCode").text,
109
+ }
110
+ end
111
+
112
+ def address_node
113
+ @address_node ||= xml.css("shipping > address")
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,14 @@
1
+ module PagSeguro
2
+ class TransactionStatus
3
+ include Extensions::MassAssignment
4
+
5
+ # The transaction status code
6
+ attr_accessor :code
7
+
8
+ # The date of the status change
9
+ attr_accessor :date
10
+
11
+ # The code of the notification sent when the status changed
12
+ attr_accessor :notification_code
13
+ end
14
+ end
@@ -0,0 +1,3 @@
1
+ module PagSeguro
2
+ VERSION = "2.6.2"
3
+ end
@@ -0,0 +1,130 @@
1
+ pt-BR:
2
+ pagseguro:
3
+ errors:
4
+ unauthorized: "Não autorizado."
5
+ forbidden: "Proibido."
6
+ not_found: "Não encontrado."
7
+ "10001": "O parâmetro email deve ser informado."
8
+ "10002": "O parâmetro token deve ser informado."
9
+ "10003": "O valor informado no parâmetro email é inválido."
10
+ "11001": "O parâmetro receiverEmail deve ser informado."
11
+ "11002": "O tamanho do valor informado no parâmetro receiverEmail é inválido."
12
+ "11003": "O valor informado no parâmetro receiverEmail é inválido."
13
+ "11004": "O parâmetro currency deve ser informado."
14
+ "11005": "O valor informado no parâmetro currency é inválido."
15
+ "11006": "O tamanho do valor informado no parâmetro redirectURL é inválido."
16
+ "11007": "O valor informado no parâmetro redirectURL é inválido."
17
+ "11008": "O tamanho do valor informado no parâmetro reference é inválido."
18
+ "11009": "O tamanho do valor informado no parâmetro senderEmail é inválido."
19
+ "11010": "O valor informado no parâmetro senderEmail é inválido."
20
+ "11011": "O tamanho do valor informado no parâmetro senderName é inválido."
21
+ "11012": "O valor informado no parâmetro senderName é inválido."
22
+ "11013": "O valor informado no parâmetro senderAreaCode é inválido."
23
+ "11014": "O valor informado no parâmetro senderPhone é inválido."
24
+ "11015": "O parâmetro shippingType deve ser informado."
25
+ "11016": "O tipo definido no parâmetro shippingType é inválido."
26
+ "11017": "O valor informado no parâmetro shippingPostalCode é inválido."
27
+ "11018": "O tamanho do valor informado no parâmetro shippingAddressStreet é inválido."
28
+ "11019": "O tamanho do valor informado no parâmetro shippingAddressNumber é inválido."
29
+ "11020": "O tamanho do valor informado no parâmetro shippingAddressComplement é inválido."
30
+ "11021": "O tamanho do valor informado no parâmetro shippingAddressDistrict é inválido."
31
+ "11022": "O tamanho do valor informado no parâmetro shippingAddressCity é inválido."
32
+ "11023": "O formato do valor informado no parâmetro shippingAddressState é inválido."
33
+ "11024": "O valor informado no parâmetro itemQuantity é inválido."
34
+ "11025": "O parâmetro itemId deve ser informado."
35
+ "11026": "O parâmetro itemQuantity deve ser informado."
36
+ "11027": "O valor informado no parâmetro itemQuantity é inválido."
37
+ "11028": "O parâmetro itemAmount deve ser informado."
38
+ "11029": "O formato do valor informado no parâmetro itemAmount é inválido."
39
+ "11030": "O valor informado no parâmetro itemAmount é inválido."
40
+ "11031": "O formato do valor informado no parâmetro itemShippingCost é inválido."
41
+ "11032": "O valor informado no parâmetro itemShippingCost é inválido."
42
+ "11033": "O parâmetro itemDescription deve ser informado."
43
+ "11034": "O tamanho do valor informado no parâmetro itemDescription é inválido."
44
+ "11035": "O valor informado no parâmetro itemWeight é inválido."
45
+ "11036": "O formato do valor informado no parâmetro extraAmount é inválido."
46
+ "11037": "O valor informado no parâmetro extraAmount é inválido."
47
+ "11038": "Valor não autorizado para receiverEmail."
48
+ "11039": "A estrutura do xml está incorreta."
49
+ "11040": "O formato do valor informado no parâmetro maxAge é inválido."
50
+ "11041": "O valor informado no parâmetro maxAge é inválido."
51
+ "11042": "O formato do valor informado no parâmetro maxUses é inválido."
52
+ "11043": "O valor informado no parâmetro maxUses é inválido."
53
+ "11044": "O parâmetro initialDate deve ser informado."
54
+ "11045": "O valor informado no parâmetro initialDate deve ser inferior ou igual a data atual."
55
+ "11046": "O valor informado no parâmetro initialDate não pode ser anterior a 180 dias contados da data atual."
56
+ "11047": "O valor informado no parâmetro initialDate deve ser menor ou igual ao valor informado no parâmetro finalDate."
57
+ "11048": "O intervalo entre os parâmetros initialDate e finalDate deve ser inferior ou igual a 30 dias."
58
+ "11049": "O valor informado no parâmetro finalDate deve ser inferior ou igual a data atual."
59
+ "11050": "O valor informado no parâmetro initialDate é inválido. O formato correto é yyyy-MM-ddTHH:mm."
60
+ "11051": "O valor informado no parâmetro finalDate é inválido. O formato correto é yyyy-MM-ddTHH:mm."
61
+ "11052": "O valor informado no parâmetro page é inválido. Utilize um inteiro maior que 0."
62
+ "11053": "O valor informado no parâmetro maxPageResults deve ser entre 1 e 1000."
63
+ "11105": "O valor total do checkout é inválido."
64
+ "11111": "O valor informado no parâmetro shippingCost é inválido."
65
+ "11112": "O formato do valor informado no parâmetro shippingCost é inválido."
66
+ "11164": "O valor informado no parâmetro senderCPF é inválido."
67
+ "13001": "O código de notificação informado é inválido."
68
+ "13002": "O código da transação deve ser informado."
69
+ "13003": "O código de transação informado é inválido."
70
+ "13004": "O parâmetro initialDate deve ser informado"
71
+ "13005": "O valor informado no parâmetro initialDate deve ser inferior ou igual a data atual."
72
+ "13006": "O valor informado no parâmetro initialDate não pode ser anterior a 180 dias contados da data atual."
73
+ "13007": "O valor informado no parâmetro initialDate deve ser menor ou igual ao valor informado no parâmetro finalDate."
74
+ "13008": "O intervalo entre os parâmetros initialDate e finalDate deve ser inferior ou igual a 30 dias."
75
+ "13009": "O valor informado no parâmetro finalDate deve ser inferior ou igual a data atual."
76
+ "13010": "O valor informado no parâmetro initialDate é inválido. O formato correto é yyyy-MM-ddTHH:mm."
77
+ "13011": "O valor informado no parâmetro finalDate é inválido. O formato correto é yyyy-MM-ddTHH:mm."
78
+ "13012": "O valor informado no parâmetro initialDate deve ser inferior a."
79
+ "13013": "O valor informado no parâmetro page é inválido. Utilize um inteiro maior que 0."
80
+ "13014": "O valor informado no parâmetro maxPageResults deve ser entre 1 e 1000."
81
+ "13015": "Transação não encontrada."
82
+ "13020": "O valor informado no parâmetro page é superior a quantidade de páginas retornadas."
83
+ "13021": "Esta consulta não pode ser realizada pois o status da transação requisitada é inválido."
84
+
85
+ payment_methods:
86
+ "101": "Cartão de crédito Visa"
87
+ "102": "Cartão de crédito MasterCard"
88
+ "103": "Cartão de crédito American Express"
89
+ "104": "Cartão de crédito Diners"
90
+ "105": "Cartão de crédito Hipercard"
91
+ "106": "Cartão de crédito Aura"
92
+ "107": "Cartão de crédito Elo"
93
+ "108": "Cartão de crédito PLENOCard"
94
+ "109": "Cartão de crédito PersonalCard"
95
+ "110": "Cartão de crédito JCB"
96
+ "111": "Cartão de crédito Discover"
97
+ "112": "Cartão de crédito BrasilCard"
98
+ "113": "Cartão de crédito FORTBRASIL"
99
+ "114": "Cartão de crédito CARDBAN"
100
+ "115": "Cartão de crédito VALECARD"
101
+ "116": "Cartão de crédito Cabal"
102
+ "117": "Cartão de crédito Mais!"
103
+ "118": "Cartão de crédito Avista"
104
+ "119": "Cartão de crédito GRANDCARD"
105
+ "120": "Cartão de crédito SOROCRED"
106
+ "201": "Boleto Bradesco"
107
+ "202": "Boleto Santander"
108
+ "301": "Débito online Bradesco"
109
+ "302": "Débito online Itaú"
110
+ "303": "Débito online Unibanco"
111
+ "304": "Débito online Banco do Brasil"
112
+ "305": "Débito online Banco Real"
113
+ "306": "Débito online Banrisul"
114
+ "307": "Débito online HSBC"
115
+ "401": "Saldo PagSeguro"
116
+ "501": "Oi Paggo"
117
+ "701": "Depósito em conta Banco do Brasil"
118
+
119
+ payment_status:
120
+ "0": "Iniciada"
121
+ "1": "Aguardando pagamento"
122
+ "2": "Em análise"
123
+ "3": "Paga"
124
+ "4": "Disponível"
125
+ "5": "Em disputa"
126
+ "6": "Devolvida"
127
+ "7": "Cancelada"
128
+ "8": "Chargeback debitado"
129
+ "9": "Em contestação"
130
+
@@ -0,0 +1,31 @@
1
+ # coding: utf-8
2
+ require "./lib/pagseguro/version"
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "pagseguro-sdk"
6
+ spec.version = PagSeguro::VERSION
7
+ spec.authors = ["Nando Vieira", "Henrique Jonas"]
8
+ spec.email = ["fnando.vieira@gmail.com"]
9
+ spec.summary = "Biblioteca de integração com o PagSeguro"
10
+ spec.description = "Biblioteca oficial de integração via API com o PagSeguro"
11
+ spec.homepage = "http://www.pagseguro.com.br"
12
+ spec.license = "AAL"
13
+
14
+ spec.files = `git ls-files`.split($/)
15
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
+ spec.require_paths = ["lib"]
18
+
19
+ spec.required_ruby_version = ">= 1.9.3"
20
+
21
+ spec.add_runtime_dependency "aitch", "~> 0.2"
22
+ spec.add_runtime_dependency "nokogiri", "~> 1.6"
23
+ spec.add_runtime_dependency "i18n", "~> 0.7"
24
+ spec.add_runtime_dependency "json", "~> 2.3"
25
+
26
+ spec.add_development_dependency "bundler", "~> 1.7"
27
+ spec.add_development_dependency "rake", ">= 12.3.3"
28
+ spec.add_development_dependency "rspec", "~> 3.0"
29
+ spec.add_development_dependency "fakeweb", "~> 1.3"
30
+ spec.add_development_dependency "activesupport", "~> 4.0"
31
+ end
@@ -0,0 +1,17 @@
1
+ <authorization>
2
+ <code>9D7FF2E921216F1334EE9FBEB7B4EBBC</code>
3
+ <creationDate>2011-03-30T14:20:13.000-03:00</creationDate>
4
+ <reference>ref1234</reference>
5
+ <permissions>
6
+ <permission>
7
+ <code>CREATE_CHECKOUTS</code>
8
+ <status>APPROVED</status>
9
+ <lastUpdate>2011-03-30T15:35:44.000-03:00</lastUpdate>
10
+ </permission>
11
+ <permission>
12
+ <code>SEARCH_TRANSACTIONS</code>
13
+ <status>APPROVED</status>
14
+ <lastUpdate>2011-03-30T14:20:13.000-03:00</lastUpdate>
15
+ </permission>
16
+ </permissions>
17
+ </authorization>
@@ -0,0 +1,47 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
2
+ <authorizationSearchResult>
3
+ <date>2015-12-03T15:58:33.000-02:00</date>
4
+ <authorizations>
5
+ <authorization>
6
+ <code>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</code>
7
+ <creationDate>2015-10-28T17:23:05.000-02:00</creationDate>
8
+ <account>
9
+ <publicKey>PUB11111111111111111111111111111111</publicKey>
10
+ </account>
11
+ <permissions>
12
+ <permission>
13
+ <code>SEARCH_TRANSACTIONS</code>
14
+ <status>APPROVED</status>
15
+ <lastUpdate>2015-10-28T17:23:08.000-02:00</lastUpdate>
16
+ </permission>
17
+ <permission>
18
+ <code>RECEIVE_TRANSACTION_NOTIFICATIONS</code>
19
+ <status>APPROVED</status>
20
+ <lastUpdate>2015-10-28T17:23:08.000-02:00</lastUpdate>
21
+ </permission>
22
+ </permissions>
23
+ </authorization>
24
+ <authorization>
25
+ <code>bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</code>
26
+ <creationDate>2015-10-27T17:54:01.000-02:00</creationDate>
27
+ <account>
28
+ <publicKey>PUBC2222222222222222222222222222222</publicKey>
29
+ </account>
30
+ <permissions>
31
+ <permission>
32
+ <code>SEARCH_TRANSACTIONS</code>
33
+ <status>APPROVED</status>
34
+ <lastUpdate>2015-10-27T17:54:04.000-02:00</lastUpdate>
35
+ </permission>
36
+ <permission>
37
+ <code>RECEIVE_TRANSACTION_NOTIFICATIONS</code>
38
+ <status>APPROVED</status>
39
+ <lastUpdate>2015-10-27T17:54:04.000-02:00</lastUpdate>
40
+ </permission>
41
+ </permissions>
42
+ </authorization>
43
+ </authorizations>
44
+ <resultsInThisPage>2</resultsInThisPage>
45
+ <currentPage>1</currentPage>
46
+ <totalPages>1</totalPages>
47
+ </authorizationSearchResult>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <authorizationRequest>
3
+ <reference>123</reference>
4
+ <redirectURL>http://seusite.com.br/redirect</redirectURL>
5
+ <notificationURL>http://seusite.com.br/notification</notificationURL>
6
+ <permissions>
7
+ <code>CREATE_CHECKOUTS</code>
8
+ <code>SEARCH_TRANSACTIONS</code>
9
+ <code>RECEIVE_TRANSACTION_NOTIFICATIONS</code>
10
+ </permissions>
11
+ </authorizationRequest>
@@ -0,0 +1,47 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <authorizationRequest>
3
+ <reference>123</reference>
4
+ <redirectURL>http://seusite.com.br/redirect</redirectURL>
5
+ <notificationURL>http://seusite.com.br/notification</notificationURL>
6
+ <permissions>
7
+ <code>CREATE_CHECKOUTS</code>
8
+ <code>SEARCH_TRANSACTIONS</code>
9
+ <code>RECEIVE_TRANSACTION_NOTIFICATIONS</code>
10
+ </permissions>
11
+ <account>
12
+ <email>usuario@seusite.com.br</email>
13
+ <type>SELLER</type>
14
+ <person>
15
+ <name>Antonio Carlos</name>
16
+ <birthDate>05/02/1982</birthDate>
17
+ <address>
18
+ <postalCode>414722</postalCode>
19
+ <street>Av. Brig. Faria Lima</street>
20
+ <number>1384</number>
21
+ <complement>5o andar</complement>
22
+ <district>Jardim Paulistano</district>
23
+ <city>Sao Paulo</city>
24
+ <state>SP</state>
25
+ <country>BRA</country>
26
+ </address>
27
+ <documents>
28
+ <document>
29
+ <type>CPF</type>
30
+ <value>99988877766</value>
31
+ </document>
32
+ </documents>
33
+ <phones>
34
+ <phone>
35
+ <type>HOME</type>
36
+ <areaCode>11</areaCode>
37
+ <number>30302323</number>
38
+ </phone>
39
+ <phone>
40
+ <type>MOBILE</type>
41
+ <areaCode>11</areaCode>
42
+ <number>976302323</number>
43
+ </phone>
44
+ </phones>
45
+ </person>
46
+ </account>
47
+ </authorizationRequest>