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,5 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+ task default: "spec"
@@ -0,0 +1,5 @@
1
+ script:
2
+ build: .
3
+ volumes:
4
+ - .:/app
5
+ - /usr/share/zoneinfo/America/Fortaleza:/etc/localtime:ro
@@ -0,0 +1,201 @@
1
+ # Checkout Transparente
2
+
3
+ Integrando seu sistema de comércio eletrônico com o Checkout Transparente você pode oferecer toda a segurança e comodidade do PagSeguro para os seus clientes no momento da compra, sem precisar sair do seu site ou e-commerce. Com ele é possível disponibilizar em seu site os meios de pagamento Cartão de Crédito, Débito Online e Boleto.
4
+
5
+ O Checkout Transparente está disponível para contas do tipo Vendedor e Empresarial. As seções seguintes indicarão como é possível integrar seu sistema de pagamentos ao Checkout Transparente do PagSeguro.
6
+
7
+ A API do Checkout Transparente oferece maior controle e flexibilidade sobre o processo de pagamento. Com essa integração o cliente fica no ambiente do seu e-commerce ou site durante todo o processo de compra, sem necessidade de cadastro ou páginas intermediárias de pagamento.
8
+ Para essa integração o PagSeguro criou alguns serviços que juntos possibilitam construir um checkout integrado, seguro e invisível para o comprador.
9
+
10
+ ## Integração
11
+
12
+ Para fazer a integração do Checkout Transparente, você precisa seguir os seguintes passos:
13
+
14
+ - Iniciar uma sessão de pagamento (Todos os meios de pagamento)
15
+ - Obter a bandeira do cartão de crédito (Apenas para Cartão de Crédito)
16
+ - Obter o token do cartão de crédito (Apenas para Cartão de Crédito)
17
+ - Verificar as opções de parcelamento (Apenas para Cartão de Crédito)
18
+ - Obter a identificação do comprador (Todos os meios de pagamento)
19
+ - Efetuar o pagamento utilizando a API do Checkout Transparente (Todos os meios de pagamento)
20
+
21
+ ### Iniciar Sessão de Pagamento
22
+
23
+ Para iniciar um Checkout Transparente é necessário ter um ID de sessão válido. Este serviço retorna o ID de sessão que será usado nas chamadas JavaScript.
24
+
25
+ ```ruby
26
+ session = PagSeguro::Session.create
27
+ @session_id = session.id
28
+ ```
29
+
30
+ ### Integrações no browser
31
+
32
+ A API do Checkout Transparente possui funções JavaScript para algumas operações que devem ser executadas no browser do cliente, funções que serão descritas mais adiante. Para essas funções uma API JavaScript deve ser importada no final da página dos meios de pagamento:
33
+
34
+ ```html
35
+ produção:
36
+ <script type="text/javascript" src="https://stc.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js"></script>
37
+
38
+ sandbox:
39
+ <script type="text/javascript" src="https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js"></script>
40
+ ```
41
+
42
+ Esse JavaScript possui um objeto chamado `PagSeguroDirectPayment`, que é a interface de acesso aos métodos. Após importar o arquivo, deve ser executado o método `setSessionId` com o ID de sessão gerado anteriormente.
43
+
44
+ ```javascript
45
+ PagSeguroDirectPayment.setSessionId('<%= @session_id %>');
46
+ ```
47
+
48
+ Nas funções, os eventos de sucesso e erro ocorrem em chamadas callback no JavaScript que são passadas via JSON. Para isso, basta passar três funções JavaScript com nome 'success', 'error' e 'complete' via JSON na chamada dos métodos. A função 'complete' será chamada independente do retorno e as funções 'success' e 'error' serão chamadas dependendo do retorno, ou seja, se o retorno não possuir erro a função chamada será a 'success' e se possuir erro a função chamada será a 'error'.
49
+
50
+ ### Obter identificação do comprador
51
+
52
+ Para realizar o Checkout Transparente á necessário enviar um identificador do comprador gerado pelo JavaScript. Para isso você deve utilizar o método `getSenderHash`. Esse método não possui parâmetros e retorna um identificador. O identificador é obrigatório para todos os meios de pagamento.
53
+
54
+ ```javascript
55
+ PagSeguroDirectPayment.getSenderHash();
56
+ ```
57
+
58
+ **Atenção:** Esse método possui algumas dependências e por isso recomendamos que o `getSenderHash` não seja executado no onLoad da página. Você pode executá-lo, por exemplo, quando o cliente clicar no botão de conclusão de pagamento.
59
+
60
+ ### Obter bandeira do cartão de crédito
61
+
62
+ Esse processo é necessário somente para o meio de pagamento **cartão de crédito**. O método `getBrand` é utilizado para verificar qual a bandeira do cartão que está sendo digitado. Esse método recebe por parâmetro o BIN do cartão (seis primeiros dígitos do cartão) e retorna dados como qual a bandeira, o tamanho do CVV, se possui data de expiração e qual algoritmo de validação. A chamada desse serviço não é obrigatória.
63
+
64
+ Exemplo:
65
+
66
+ ```javascript
67
+ PagSeguroDirectPayment.getBrand({
68
+ cardBin: $("input#cartao").val(),
69
+ success: function (response) {
70
+ //bandeira encontrada
71
+ },
72
+ error: function (response) {
73
+ //tratamento do erro
74
+ },
75
+ complete: function (response) {
76
+ //tratamento comum para todas chamadas
77
+ }
78
+ });
79
+ ```
80
+
81
+ Retorno:
82
+
83
+ ```javascript
84
+ {
85
+ "brand": {
86
+ "name":"visa",
87
+ "bin":411111,
88
+ "cvvSize":3,
89
+ "expirable":true,
90
+ "validationAlgorithm":"LUHN"
91
+ }
92
+ }
93
+ ```
94
+
95
+ ### Obter token do cartão de crédito
96
+
97
+ Esse processo é necessário somente para o meio de pagamento **cartão de crédito**. O método `createCardToken` é utilizado para gerar o token que representará o cartão de crédito na chamada para a API do Checkout Transparente. Este método recebe os seguintes dados: número do cartão (obrigatório), CVV (opcional para alguns cartões), data de expiração (opcional para alguns cartões) e a bandeira (opcional).
98
+
99
+ Exemplo:
100
+
101
+ ```javascript
102
+ var params = {
103
+ cardNumber: $("input#cartao").val(),
104
+ cvv: $("input#cvv").val(),
105
+ expirationMonth: $("input#validadeMes").val(),
106
+ expirationYear: $("input#validadeAno").val(),
107
+ success: function (response) {
108
+ //token gerado, esse deve ser usado na chamada da API do Checkout Transparente
109
+ },
110
+ error: function (response) {
111
+ //tratamento do erro
112
+ },
113
+ complete: function (response) {
114
+ //tratamento comum para todas chamadas
115
+ }
116
+ }
117
+
118
+ // parâmetro opcional para qualquer chamada
119
+ if($("input#bandeira").val() !== '') {
120
+ params.brand = $("input#bandeira").val();
121
+ }
122
+
123
+ PagSeguroDirectPayment.createCardToken(params);
124
+ ```
125
+
126
+ Retorno:
127
+
128
+ ```javascript
129
+ {
130
+ "card":{
131
+ "token":"653fe9044cf149f9b7db562431cb130d"
132
+ }
133
+ }
134
+ ```
135
+
136
+ ### Obter opções de parcelamento
137
+
138
+ Esse processo é necessário apenas para o meio de pagamento **cartão de crédito**. Caso queira mostrar as opções de parcelamento para o comprador, você deverá utilizar o método `getInstallments`. Esse método recebe o valor a ser parcelado (obrigatório) e a bandeira que se deseja obter o parcelamento, retornando as configurações de cada parcela sendo: valor total do pagamento (que deve ser enviado junto na API do Checkout Transparente), valor e quantidade da parcela (que também devem ser informados na API do Checkout Transparente) e um indicador se aquela parcela tem juros ou não (caso o vendedor tenha configurado uma promoção no PagSeguro).
139
+
140
+ Se não for informado uma bandeira como parâmetro na chamada, o método retornará os dados para todas bandeiras aceitas pelo PagSeguro.
141
+
142
+ Exemplo:
143
+
144
+ ```javascript
145
+ PagSeguroDirectPayment.getInstallments({
146
+ amount: $("input#valorPagto").val(),
147
+ brand: $("input#bandeira").val(),
148
+ success: function (response) {
149
+ //opções de parcelamento disponíveis
150
+ },
151
+ error: function (response) {
152
+ //tratamento do erro
153
+ },
154
+ complete: function (response) {
155
+ //tratamento comum para todas chamadas
156
+ }
157
+ });
158
+ ```
159
+
160
+ Retorno:
161
+
162
+ ```javascript
163
+ {
164
+ "error":false,
165
+ "installments":{
166
+ "visa":
167
+ [
168
+ {
169
+ "quantity":1,
170
+ "totalAmount":16,
171
+ "installmentAmount":16,
172
+ "interestFree":true
173
+ },
174
+ {
175
+ "quantity":2,
176
+ "totalAmount":16.48,
177
+ "installmentAmount":8.24,
178
+ "interestFree":false
179
+ },
180
+ {
181
+ "quantity":3,
182
+ "totalAmount":16.64,
183
+ "installmentAmount":5.55,
184
+ "interestFree":false
185
+ }
186
+ ]
187
+ }
188
+ }
189
+ ```
190
+
191
+ ## API do Checkout Transparente
192
+
193
+ Este serviço envia os dados do comprador e do pagamento para realizar a cobrança.
194
+
195
+ A criação das transações podem ser feitas utilizando três métodos de pagamento:
196
+
197
+ [Boleto Bancário](https://github.com/pagseguro/ruby/blob/master/examples/direct/create_transaction_using_boleto.rb)
198
+
199
+ [Cartão de Crédito](https://github.com/pagseguro/ruby/blob/master/examples/direct/create_transaction_using_credit_card.rb)
200
+
201
+ [Transferência Eletrônica](https://github.com/pagseguro/ruby/blob/master/examples/direct/create_transaction_using_online_debit.rb)
@@ -0,0 +1,32 @@
1
+ require_relative "../boot"
2
+
3
+ # Create Authorization
4
+ #
5
+ # You need to give:
6
+ # - notification_url
7
+ # - redirect_url
8
+ # - permissions defaults to all permissions
9
+ # - application credentials (APP_ID, APP_KEY)
10
+ #
11
+ # You can pass these parameters to PagSeguro::AuthorizationRequest#new
12
+ #
13
+ # PS: For more details take a look at the class PagSeguro::AuthorizationRequest
14
+
15
+ credentials = PagSeguro::ApplicationCredentials.new('APP_ID', 'APP_KEY')
16
+
17
+ options = {
18
+ credentials: credentials, # Unnecessary if you set in application config
19
+ permissions: [:searches, :notifications],
20
+ notification_url: 'http://example.com/',
21
+ redirect_url: 'http://example.com/',
22
+ reference: 'REF4321' # optional
23
+ }
24
+
25
+ authorization_request = PagSeguro::AuthorizationRequest.new(options)
26
+
27
+ if authorization_request.create
28
+ print "Use this link to confirm authorizations: "
29
+ puts authorization_request.url
30
+ else
31
+ puts authorization_request.errors.join("\n")
32
+ end
@@ -0,0 +1,56 @@
1
+ require_relative "../boot"
2
+
3
+ # Create Authorization with Account
4
+ #
5
+ # You need to give:
6
+ # - notification_url
7
+ # - redirect_url
8
+ # - permissions defaults to all permissions
9
+ # - application credentials (APP_ID, APP_KEY)
10
+ # - account params
11
+ #
12
+ # You can pass these parameters to PagSeguro::AuthorizationRequest#new
13
+ #
14
+ # PS: For more details take a look at the class PagSeguro::AuthorizationRequest
15
+
16
+ credentials = PagSeguro::ApplicationCredentials.new('APP_ID', 'APP_KEY')
17
+
18
+ options = {
19
+ credentials: credentials, # Unnecessary if you set in application config
20
+ permissions: [:checkouts, :searches, :notifications],
21
+ notification_url: 'http://seusite.com.br/redirect',
22
+ redirect_url: 'http://seusite.com.br/notification',
23
+ reference: '123',
24
+ account: {
25
+ email: 'usuario@seusite.com.br',
26
+ type: 'SELLER',
27
+ person: {
28
+ name: 'Antonio Carlos',
29
+ birth_date: Date.new(1982, 2, 5),
30
+ address: {
31
+ postal_code: '01452002',
32
+ street: 'Av. Brig. Faria Lima',
33
+ number: '1384',
34
+ complement: '5o andar',
35
+ district: 'Jardim Paulistano',
36
+ city: 'Sao Paulo',
37
+ state: 'SP',
38
+ country: 'BRA'
39
+ },
40
+ documents: [{type: 'CPF', value: '23606838450'}],
41
+ phones: [
42
+ {type: 'HOME', area_code: '11', number: '30302323'},
43
+ {type: 'MOBILE', area_code: '11', number: '976302323'},
44
+ ]
45
+ }
46
+ }
47
+ }
48
+
49
+ authorization_request = PagSeguro::AuthorizationRequest.new(options)
50
+
51
+ if authorization_request.create
52
+ print "Use this link to confirm authorizations: "
53
+ puts authorization_request.url
54
+ else
55
+ puts authorization_request.errors.join("\n")
56
+ end
@@ -0,0 +1,29 @@
1
+ require_relative "../../boot"
2
+
3
+ # Search Authorization by Code
4
+ #
5
+ # You need to give:
6
+ # - authorization code
7
+ # - application credentials (APP_ID, APP_KEY) OR account credentials (EMAIL, TOKEN)
8
+ #
9
+ # You can pass these parameters to PagSeguro::Authorization#find_by_code
10
+ #
11
+ # PS: For more details take a look at the class PagSeguro::Authorization#find_by_code
12
+
13
+ # credentials = PagSeguro::AccountCredentials.new("EMAIL", "TOKEN")
14
+ credentials = PagSeguro::ApplicationCredentials.new("APP_ID", "APP_KEY")
15
+
16
+ options = { credentials: credentials } # Unnecessary if you set in application config
17
+
18
+ authorization = PagSeguro::Authorization.find_by_code('AUTHORIZATION_CODE', options)
19
+
20
+ if authorization.errors.any?
21
+ puts authorization.errors.join("\n")
22
+ else
23
+ authorization.permissions.each do |permission, index|
24
+ puts "Permission #{index}: "
25
+ puts " code: #{permission.code}"
26
+ puts " status: #{permission.status}"
27
+ end
28
+ puts
29
+ end
@@ -0,0 +1,35 @@
1
+ require_relative "../../boot"
2
+
3
+ # Search Authorization by Code
4
+ #
5
+ # You need to give:
6
+ # - authorization code
7
+ # - application credentials (APP_ID, APP_KEY) OR account credentials (EMAIL, TOKEN)
8
+ #
9
+ # You can pass these parameters to PagSeguro::Authorization#find_by
10
+ #
11
+ # PS: For more details take a look at the class PagSeguro::Authorization#find_by
12
+
13
+ # credentials = PagSeguro::AccountCredentials.new("EMAIL", "TOKEN")
14
+ credentials = PagSeguro::ApplicationCredentials.new('APP_ID', 'APP_KEY')
15
+
16
+ options = {
17
+ initial_date: Time.new(2015, 10, 1, 0, 0),
18
+ final_date: Time.now,
19
+ credentials: credentials
20
+ }
21
+
22
+ collection = PagSeguro::Authorization.find_by(options)
23
+
24
+ if collection.errors.any?
25
+ puts collection.errors.join("\n")
26
+ else
27
+ collection.each do |authorization|
28
+ puts "# #{authorization.code}"
29
+ authorization.permissions.each do |permission|
30
+ puts "Permission: "
31
+ puts permission.code
32
+ puts permission.status
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,29 @@
1
+ require_relative "../../boot"
2
+
3
+ # Seach Authorization by Notification Code
4
+ #
5
+ # You need to give:
6
+ # - authorization code
7
+ # - application credentials (APP_ID, APP_KEY)
8
+ #
9
+ # You can pass these parameters to PagSeguro::Authorization#find_by_notification_code
10
+ #
11
+ # PS: For more details take a look at the class PagSeguro::Authorization#find_by_notification_code
12
+
13
+ credentials = PagSeguro::ApplicationCredentials.new('APP_ID', 'APP_KEY')
14
+
15
+ options = { credentials: credentials } # Unnecessary if you set in application config
16
+
17
+ authorization = PagSeguro::Authorization.find_by_notification_code('NOTIFICATION_CODE', options)
18
+
19
+ puts authorization.errors.inspect
20
+
21
+ if authorization.errors.any?
22
+ puts authorization.errors.join("\n")
23
+ else
24
+ authorization.permissions.each do |permission|
25
+ puts "Permission: "
26
+ puts permission.code
27
+ puts permission.status
28
+ end
29
+ end
@@ -0,0 +1,31 @@
1
+ require_relative "../../boot"
2
+
3
+ # Search Authorization by Reference
4
+ #
5
+ # You need to give:
6
+ # - reference
7
+ # - application credentials (APP_ID, APP_KEY)
8
+ #
9
+ # You can pass these parameters to PagSeguro::Authorization#find_by
10
+
11
+ credentials = PagSeguro::ApplicationCredentials.new("APP_ID", "APP_KEY")
12
+
13
+ options = {
14
+ reference: 'REF4321',
15
+ credentials: credentials
16
+ }
17
+
18
+ collection = PagSeguro::Authorization.find_by(options)
19
+
20
+ if collection.errors.any?
21
+ puts collection.errors.join("\n")
22
+ else
23
+ collection.each do |authorization|
24
+ puts "# #{authorization.code}"
25
+ authorization.permissions.each do |permission|
26
+ puts "Permission: "
27
+ puts permission.code
28
+ puts permission.status
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,26 @@
1
+ $:.unshift File.expand_path("../../lib", __FILE__)
2
+ require "pagseguro"
3
+
4
+ I18n.locale = "pt-BR"
5
+
6
+ PagSeguro.configure do |config|
7
+ # You can setup with Application Credentials trough TOKEN and EMAIL
8
+ # config.token = ENV.fetch("PAGSEGURO_TOKEN")
9
+ # config.email = ENV.fetch("PAGSEGURO_EMAIL")
10
+ #
11
+ # OR with Application Credentials through APP_ID and APP_KEY
12
+ # config.app_id = ENV.fetch("PAGSEGURO_APP_ID")
13
+ # config.app_key = ENV.fetch("PAGSEGURO_APP_KEY")
14
+ #
15
+ #
16
+ # Ps: You can set the credentials when you to call some service like:
17
+ # For Account credentials based on EMAIL and TOKEN
18
+ # - PagSeguro::ApplicationCredentials.new("appteste_1", "TESTE11111")
19
+ #
20
+ # OR
21
+ #
22
+ # For Application credentials based on APP_KEY and APP_ID
23
+ # - PagSeguro::AccountCredentials.new("user@example.com", "token")
24
+
25
+ config.environment = :sandbox
26
+ end