tray-checkout 0.2.1 → 0.3.0

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 (33) hide show
  1. data/README.rdoc +123 -141
  2. data/lib/tray/checkout/base_transaction.rb +25 -0
  3. data/lib/tray/checkout/config.rb +10 -2
  4. data/lib/tray/checkout/response_parser.rb +22 -14
  5. data/lib/tray/checkout/temp_transaction.rb +22 -0
  6. data/lib/tray/checkout/transaction.rb +8 -18
  7. data/lib/tray/checkout/transaction_params_parser.rb +1 -0
  8. data/lib/tray/checkout/version.rb +1 -1
  9. data/lib/tray-checkout.rb +2 -0
  10. data/spec/spec_helper.rb +1 -2
  11. data/spec/support/mock_request.rb +2 -1
  12. data/spec/support/responses/create_failure_validation_errors.xml +10 -48
  13. data/spec/support/responses/create_success_boleto.xml +35 -75
  14. data/spec/support/responses/create_temp_transaction_with_token.xml +28 -0
  15. data/spec/support/responses/get_failure_not_found.xml +4 -4
  16. data/spec/support/responses/get_success_boleto.xml +36 -76
  17. data/spec/support/responses/get_success_boleto_without_contacts.xml +37 -67
  18. data/spec/support/responses/get_success_mastercard.xml +36 -76
  19. data/spec/support/vcr/model/create_cart.yml +59 -0
  20. data/spec/support/vcr/model/create_failure_validation_errors.yml +75 -0
  21. data/spec/support/vcr/model/create_success_boleto.yml +93 -0
  22. data/spec/support/vcr/model/create_success_mastercard.yml +90 -0
  23. data/spec/support/vcr/model/get_failure_not_found.yml +72 -0
  24. data/spec/support/vcr/model/get_success_boleto.yml +114 -0
  25. data/spec/support/vcr/model/update_cart.yml +59 -0
  26. data/spec/support/vcr_setup.rb +7 -0
  27. data/spec/tray/checkout/parser_spec.rb +1 -1
  28. data/spec/tray/checkout/response_parser_spec.rb +83 -67
  29. data/spec/tray/checkout/temp_transaction_spec.rb +94 -0
  30. data/spec/tray/checkout/transaction_spec.rb +146 -23
  31. data/spec/tray/checkout_spec.rb +2 -2
  32. data/tray-checkout.gemspec +1 -0
  33. metadata +77 -14
@@ -0,0 +1,75 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.sandbox.traycheckout.com.br//v2/transactions/pay_complete
6
+ body:
7
+ encoding: US-ASCII
8
+ string: affiliates%5B%5D%5Bemail%5D=affiliates%40test.com&affiliates%5B%5D%5Bpercentage%5D=1&customer%5Baddresses%5D%5B%5D%5Bcity%5D=S%C3%A3o+Paulo&customer%5Baddresses%5D%5B%5D%5Bcompletion%5D=apto+11&customer%5Baddresses%5D%5B%5D%5Bneighborhood%5D=Centro&customer%5Baddresses%5D%5B%5D%5Bnumber%5D=1001&customer%5Baddresses%5D%5B%5D%5Bpostal_code%5D=04001001&customer%5Baddresses%5D%5B%5D%5Bstate%5D=SP&customer%5Baddresses%5D%5B%5D%5Bstreet%5D=Av+Paulista&customer%5Baddresses%5D%5B%5D%5Btype%5D=billing&customer%5Baddresses%5D%5B%5D%5Btype_address%5D=B&customer%5Bbirth_date%5D=01%2F01%2F1900&customer%5Bcontacts%5D%5B%5D%5Bnumber_contact%5D=11998761234&customer%5Bcpf%5D=12312312312&customer%5Bemail%5D=emaildo%40cliente.com.br&customer%5Bname%5D=Nome+do+Cliente&payment%5Bcard_expdate_month%5D=01&payment%5Bcard_expdate_year%5D=2017&payment%5Bcard_name%5D=Nome+Impresso&payment%5Bcard_number%5D=4073020000000002&payment%5Bcvv%5D=123&payment%5Bmethod%5D=mastercard&payment%5Bpayment_method_id%5D=4&payment%5Bsplit%5D=12&token_account=8bfe5ddcb77207b&transaction%5Bavailable_payment_methods%5D=6&transaction%5Bfree%5D=Texto+Interno&transaction%5Border_number%5D=1234567&transaction%5Bprice_additional%5D=1.00&transaction%5Bprice_discount%5D=1.00&transaction%5Bshipping_price%5D=15.00&transaction%5Bshipping_type%5D=Sedex&transaction%5Bsub_store%5D=2&transaction%5Burl_notification%5D=http%3A%2F%2Fprodis.blog.br%2Ftray_notification&transaction_product%5B%5D%5Bcode%5D=123&transaction_product%5B%5D%5Bdescription%5D=Notebook+Branco&transaction_product%5B%5D%5Bextra%5D=Produto+novo&transaction_product%5B%5D%5Bprice_unit%5D=1999.99&transaction_product%5B%5D%5Bquantity%5D=1&transaction_product%5B%5D%5Bsku_code%5D=72628
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: !binary |-
18
+ T0s=
19
+ headers:
20
+ !binary "U2VydmVy":
21
+ - !binary |-
22
+ bmdpbngvMS40LjE=
23
+ !binary "RGF0ZQ==":
24
+ - !binary |-
25
+ TW9uLCAyMSBPY3QgMjAxMyAxOToxOToyOCBHTVQ=
26
+ !binary "Q29udGVudC1UeXBl":
27
+ - !binary |-
28
+ YXBwbGljYXRpb24veG1sOyBjaGFyc2V0PXV0Zi04
29
+ !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
30
+ - !binary |-
31
+ Y2h1bmtlZA==
32
+ !binary "Q29ubmVjdGlvbg==":
33
+ - !binary |-
34
+ a2VlcC1hbGl2ZQ==
35
+ !binary "U3RhdHVz":
36
+ - !binary |-
37
+ MjAwIE9L
38
+ !binary "WC1VYS1Db21wYXRpYmxl":
39
+ - !binary |-
40
+ SUU9RWRnZSxjaHJvbWU9MQ==
41
+ !binary "RXRhZw==":
42
+ - !binary |-
43
+ ImM0YTE5NWM2N2NlMWQ2ZWNhZTYxZjdhNjk3MDc0YTVmIg==
44
+ !binary "Q2FjaGUtQ29udHJvbA==":
45
+ - !binary |-
46
+ bWF4LWFnZT0wLCBwcml2YXRlLCBtdXN0LXJldmFsaWRhdGU=
47
+ !binary "WC1SZXF1ZXN0LUlk":
48
+ - !binary |-
49
+ NDZhYTUxZTEwZjE0YjJjYjcyNWNhNzMwNjBlZTA4MzU=
50
+ !binary "WC1SdW50aW1l":
51
+ - !binary |-
52
+ MC40MTQ1Nzk=
53
+ !binary "WC1SYWNrLUNhY2hl":
54
+ - !binary |-
55
+ aW52YWxpZGF0ZSwgcGFzcw==
56
+ !binary "WC1Qb3dlcmVkLUJ5":
57
+ - !binary |-
58
+ UGh1c2lvbiBQYXNzZW5nZXIgNC4wLjE0
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: !binary |-
62
+ PHJlc3BvbnNlPgogIDxtZXNzYWdlX3Jlc3BvbnNlPgogICAgPG1lc3NhZ2U+
63
+ ZXJyb3I8L21lc3NhZ2U+CiAgPC9tZXNzYWdlX3Jlc3BvbnNlPgogIDxlcnJv
64
+ cl9yZXNwb25zZT4KICAgIDx2YWxpZGF0aW9uX2Vycm9ycyB0eXBlPSJhcnJh
65
+ eSI+CiAgICAgIDx2YWxpZGF0aW9uX2Vycm9yPgogICAgICAgIDxjb2RlPjEz
66
+ PC9jb2RlPgogICAgICAgIDxtZXNzYWdlPm7Do28gZXN0w6EgaW5jbHXDrWRv
67
+ IG5hIGxpc3RhPC9tZXNzYWdlPgogICAgICAgIDxmaWVsZD5wZXJzb25fY29u
68
+ dGFjdHMudHlwZV9jb250YWN0PC9maWVsZD4KICAgICAgICA8bWVzc2FnZV9j
69
+ b21wbGV0ZT5UaXBvIGRlIENvbnRhdG8gbsOjbyBlc3TDoSBpbmNsdcOtZG8g
70
+ bmEgbGlzdGE8L21lc3NhZ2VfY29tcGxldGU+CiAgICAgIDwvdmFsaWRhdGlv
71
+ bl9lcnJvcj4KICAgIDwvdmFsaWRhdGlvbl9lcnJvcnM+CiAgPC9lcnJvcl9y
72
+ ZXNwb25zZT4KPC9yZXNwb25zZT4K
73
+ http_version:
74
+ recorded_at: Mon, 21 Oct 2013 19:19:28 GMT
75
+ recorded_with: VCR 2.6.0
@@ -0,0 +1,93 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.sandbox.traycheckout.com.br//v2/transactions/pay_complete
6
+ body:
7
+ encoding: US-ASCII
8
+ string: affiliates%5B%5D%5Bemail%5D=affiliates%40test.com&affiliates%5B%5D%5Bpercentage%5D=1&customer%5Baddresses%5D%5B%5D%5Bcity%5D=S%C3%A3o+Paulo&customer%5Baddresses%5D%5B%5D%5Bcompletion%5D=apto+11&customer%5Baddresses%5D%5B%5D%5Bneighborhood%5D=Centro&customer%5Baddresses%5D%5B%5D%5Bnumber%5D=1001&customer%5Baddresses%5D%5B%5D%5Bpostal_code%5D=04001001&customer%5Baddresses%5D%5B%5D%5Bstate%5D=SP&customer%5Baddresses%5D%5B%5D%5Bstreet%5D=Av+Paulista&customer%5Baddresses%5D%5B%5D%5Btype%5D=billing&customer%5Baddresses%5D%5B%5D%5Btype_address%5D=B&customer%5Bbirth_date%5D=01%2F01%2F1900&customer%5Bcontacts%5D%5B%5D%5Bnumber_contact%5D=11998761234&customer%5Bcontacts%5D%5B%5D%5Btype%5D=mobile&customer%5Bcontacts%5D%5B%5D%5Btype_contact%5D=M&customer%5Bcpf%5D=12312312312&customer%5Bemail%5D=emaildo%40cliente.com.br&customer%5Bgender%5D=M&customer%5Bmarital_status%5D=single&customer%5Bname%5D=Nome+do+Cliente&customer%5Brelationship%5D=S&customer%5Bsex%5D=male&payment%5Bmethod%5D=boleto&payment%5Bpayment_method_id%5D=6&token_account=8bfe5ddcb77207b&transaction%5Bavailable_payment_methods%5D=6&transaction%5Bfree%5D=Texto+Interno&transaction%5Border_number%5D=123456789&transaction%5Bprice_additional%5D=1.00&transaction%5Bprice_discount%5D=1.00&transaction%5Bshipping_price%5D=15.00&transaction%5Bshipping_type%5D=Sedex&transaction%5Bsub_store%5D=2&transaction%5Burl_notification%5D=http%3A%2F%2Fprodis.blog.br%2Ftray_notification&transaction_product%5B%5D%5Bcode%5D=123&transaction_product%5B%5D%5Bdescription%5D=Notebook+Branco&transaction_product%5B%5D%5Bextra%5D=Produto+novo&transaction_product%5B%5D%5Bprice_unit%5D=1999.99&transaction_product%5B%5D%5Bquantity%5D=1&transaction_product%5B%5D%5Bsku_code%5D=72628
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: !binary |-
18
+ T0s=
19
+ headers:
20
+ !binary "U2VydmVy":
21
+ - !binary |-
22
+ bmdpbngvMS40LjE=
23
+ !binary "RGF0ZQ==":
24
+ - !binary |-
25
+ TW9uLCAyMSBPY3QgMjAxMyAxOTo0Mjo0MyBHTVQ=
26
+ !binary "Q29udGVudC1UeXBl":
27
+ - !binary |-
28
+ YXBwbGljYXRpb24veG1sOyBjaGFyc2V0PXV0Zi04
29
+ !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
30
+ - !binary |-
31
+ Y2h1bmtlZA==
32
+ !binary "Q29ubmVjdGlvbg==":
33
+ - !binary |-
34
+ a2VlcC1hbGl2ZQ==
35
+ !binary "U3RhdHVz":
36
+ - !binary |-
37
+ MjAwIE9L
38
+ !binary "WC1VYS1Db21wYXRpYmxl":
39
+ - !binary |-
40
+ SUU9RWRnZSxjaHJvbWU9MQ==
41
+ !binary "RXRhZw==":
42
+ - !binary |-
43
+ IjE1MWVlYWM0ODI1YjM5N2U2NWQ1OWVkYjU0N2FhNzU5Ig==
44
+ !binary "Q2FjaGUtQ29udHJvbA==":
45
+ - !binary |-
46
+ bWF4LWFnZT0wLCBwcml2YXRlLCBtdXN0LXJldmFsaWRhdGU=
47
+ !binary "WC1SZXF1ZXN0LUlk":
48
+ - !binary |-
49
+ N2FlM2RlMzU3YjcxZjM3NDI3ODU2MDg4N2M0MGYzNGY=
50
+ !binary "WC1SdW50aW1l":
51
+ - !binary |-
52
+ My4yNjAyOTc=
53
+ !binary "WC1SYWNrLUNhY2hl":
54
+ - !binary |-
55
+ aW52YWxpZGF0ZSwgcGFzcw==
56
+ !binary "WC1Qb3dlcmVkLUJ5":
57
+ - !binary |-
58
+ UGh1c2lvbiBQYXNzZW5nZXIgNC4wLjE0
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: !binary |-
62
+ PHJlc3BvbnNlPgogIDxtZXNzYWdlX3Jlc3BvbnNlPgogICAgPG1lc3NhZ2U+
63
+ c3VjY2VzczwvbWVzc2FnZT4KICA8L21lc3NhZ2VfcmVzcG9uc2U+CiAgPGRh
64
+ dGFfcmVzcG9uc2U+CiAgICA8dHJhbnNhY3Rpb24+CiAgICAgIDxvcmRlcl9u
65
+ dW1iZXI+MTIzNDU2Nzg5PC9vcmRlcl9udW1iZXI+CiAgICAgIDxmcmVlPlRl
66
+ eHRvIEludGVybm88L2ZyZWU+CiAgICAgIDx0cmFuc2FjdGlvbl9pZCB0eXBl
67
+ PSJpbnRlZ2VyIj4zODc0PC90cmFuc2FjdGlvbl9pZD4KICAgICAgPHN0YXR1
68
+ c19uYW1lPkVtIFJlY3VwZXJhw6fDo288L3N0YXR1c19uYW1lPgogICAgICA8
69
+ c3RhdHVzX2lkIHR5cGU9ImludGVnZXIiPjg4PC9zdGF0dXNfaWQ+CiAgICAg
70
+ IDx0b2tlbl90cmFuc2FjdGlvbj43NTZjMGJiMzEzYjdlODZjYWY1OWNmOGYx
71
+ ZGRmYjI4MTwvdG9rZW5fdHJhbnNhY3Rpb24+CiAgICAgIDxwYXltZW50Pgog
72
+ ICAgICAgIDxwcmljZV9wYXltZW50IHR5cGU9ImRlY2ltYWwiPjIwMTQuOTk8
73
+ L3ByaWNlX3BheW1lbnQ+CiAgICAgICAgPHByaWNlX29yaWdpbmFsIHR5cGU9
74
+ ImRlY2ltYWwiPjIwMTQuOTk8L3ByaWNlX29yaWdpbmFsPgogICAgICAgIDxw
75
+ YXltZW50X3Jlc3BvbnNlPjwvcGF5bWVudF9yZXNwb25zZT4KICAgICAgICA8
76
+ dXJsX3BheW1lbnQ+aHR0cDovL2d0dy5zYW5kYm94LmNoZWNrb3V0LnRyYXku
77
+ Y29tLmJyL2FwaS9wcmludC9kNmNjZTJiMjEzYzAyOWNjYjgyNDMwZjA2N2Nm
78
+ ZmFmZTwvdXJsX3BheW1lbnQ+CiAgICAgICAgPHRpZCBuaWw9InRydWUiLz4K
79
+ ICAgICAgICA8c3BsaXQgdHlwZT0iaW50ZWdlciI+MTwvc3BsaXQ+CiAgICAg
80
+ ICAgPHBheW1lbnRfbWV0aG9kX2lkIHR5cGU9ImludGVnZXIiPjY8L3BheW1l
81
+ bnRfbWV0aG9kX2lkPgogICAgICAgIDxwYXltZW50X21ldGhvZF9uYW1lPkJv
82
+ bGV0byBCYW5jYXJpbzwvcGF5bWVudF9tZXRob2RfbmFtZT4KICAgICAgICA8
83
+ bGluaGFfZGlnaXRhdmVsPjM0MTkxLjc2MDA3IDAwNTM3LjA5MDE0NCA1MDU2
84
+ NS42MDAwMDkgNiA1ODYzMDAwMDIwMTQ5OTwvbGluaGFfZGlnaXRhdmVsPgog
85
+ ICAgICA8L3BheW1lbnQ+CiAgICAgIDxjdXN0b21lcj4KICAgICAgICA8bmFt
86
+ ZT5Ob21lIGRvIENsaWVudGU8L25hbWU+CiAgICAgICAgPGNvbXBhbnlfbmFt
87
+ ZT48L2NvbXBhbnlfbmFtZT4KICAgICAgICA8dHJhZGVfbmFtZT48L3RyYWRl
88
+ X25hbWU+CiAgICAgICAgPGNucGo+PC9jbnBqPgogICAgICA8L2N1c3RvbWVy
89
+ PgogICAgPC90cmFuc2FjdGlvbj4KICA8L2RhdGFfcmVzcG9uc2U+CjwvcmVz
90
+ cG9uc2U+Cg==
91
+ http_version:
92
+ recorded_at: Mon, 21 Oct 2013 19:42:43 GMT
93
+ recorded_with: VCR 2.6.0
@@ -0,0 +1,90 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.sandbox.traycheckout.com.br//v2/transactions/pay_complete
6
+ body:
7
+ encoding: US-ASCII
8
+ string: affiliates%5B%5D%5Bemail%5D=affiliates%40test.com&affiliates%5B%5D%5Bpercentage%5D=1&customer%5Baddresses%5D%5B%5D%5Bcity%5D=S%C3%A3o+Paulo&customer%5Baddresses%5D%5B%5D%5Bcompletion%5D=apto+11&customer%5Baddresses%5D%5B%5D%5Bneighborhood%5D=Centro&customer%5Baddresses%5D%5B%5D%5Bnumber%5D=1001&customer%5Baddresses%5D%5B%5D%5Bpostal_code%5D=04001001&customer%5Baddresses%5D%5B%5D%5Bstate%5D=SP&customer%5Baddresses%5D%5B%5D%5Bstreet%5D=Av+Paulista&customer%5Baddresses%5D%5B%5D%5Btype%5D=billing&customer%5Baddresses%5D%5B%5D%5Btype_address%5D=B&customer%5Bbirth_date%5D=01%2F01%2F1900&customer%5Bcontacts%5D%5B%5D%5Bnumber_contact%5D=11998761234&customer%5Bcontacts%5D%5B%5D%5Btype%5D=mobile&customer%5Bcontacts%5D%5B%5D%5Btype_contact%5D=M&customer%5Bcpf%5D=12312312312&customer%5Bemail%5D=emaildo%40cliente.com.br&customer%5Bgender%5D=M&customer%5Bmarital_status%5D=single&customer%5Bname%5D=Nome+do+Cliente&customer%5Brelationship%5D=S&customer%5Bsex%5D=male&payment%5Bcard_expdate_month%5D=01&payment%5Bcard_expdate_year%5D=2017&payment%5Bcard_name%5D=Nome+Impresso&payment%5Bcard_number%5D=4073020000000002&payment%5Bcvv%5D=123&payment%5Bmethod%5D=mastercard&payment%5Bpayment_method_id%5D=4&payment%5Bsplit%5D=12&token_account=8bfe5ddcb77207b&transaction%5Bavailable_payment_methods%5D=6&transaction%5Bfree%5D=Texto+Interno&transaction%5Border_number%5D=123456789&transaction%5Bprice_additional%5D=1.00&transaction%5Bprice_discount%5D=1.00&transaction%5Bshipping_price%5D=15.00&transaction%5Bshipping_type%5D=Sedex&transaction%5Bsub_store%5D=2&transaction%5Burl_notification%5D=http%3A%2F%2Fprodis.blog.br%2Ftray_notification&transaction_product%5B%5D%5Bcode%5D=123&transaction_product%5B%5D%5Bdescription%5D=Notebook+Branco&transaction_product%5B%5D%5Bextra%5D=Produto+novo&transaction_product%5B%5D%5Bprice_unit%5D=1999.99&transaction_product%5B%5D%5Bquantity%5D=1&transaction_product%5B%5D%5Bsku_code%5D=72628
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: !binary |-
18
+ T0s=
19
+ headers:
20
+ !binary "U2VydmVy":
21
+ - !binary |-
22
+ bmdpbngvMS40LjE=
23
+ !binary "RGF0ZQ==":
24
+ - !binary |-
25
+ TW9uLCAyMSBPY3QgMjAxMyAxOTozMDo1MCBHTVQ=
26
+ !binary "Q29udGVudC1UeXBl":
27
+ - !binary |-
28
+ YXBwbGljYXRpb24veG1sOyBjaGFyc2V0PXV0Zi04
29
+ !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
30
+ - !binary |-
31
+ Y2h1bmtlZA==
32
+ !binary "Q29ubmVjdGlvbg==":
33
+ - !binary |-
34
+ a2VlcC1hbGl2ZQ==
35
+ !binary "U3RhdHVz":
36
+ - !binary |-
37
+ MjAwIE9L
38
+ !binary "WC1VYS1Db21wYXRpYmxl":
39
+ - !binary |-
40
+ SUU9RWRnZSxjaHJvbWU9MQ==
41
+ !binary "RXRhZw==":
42
+ - !binary |-
43
+ IjNhYWRjYWZjMzFhODcxZTUzMWU2M2QxNzVlNTJiZTAwIg==
44
+ !binary "Q2FjaGUtQ29udHJvbA==":
45
+ - !binary |-
46
+ bWF4LWFnZT0wLCBwcml2YXRlLCBtdXN0LXJldmFsaWRhdGU=
47
+ !binary "WC1SZXF1ZXN0LUlk":
48
+ - !binary |-
49
+ NWFlNDY4MTU0NjM5ZTM3YWI4NDdiZGY5ODVkOGE0NDI=
50
+ !binary "WC1SdW50aW1l":
51
+ - !binary |-
52
+ MS4xNjQ0MDc=
53
+ !binary "WC1SYWNrLUNhY2hl":
54
+ - !binary |-
55
+ aW52YWxpZGF0ZSwgcGFzcw==
56
+ !binary "WC1Qb3dlcmVkLUJ5":
57
+ - !binary |-
58
+ UGh1c2lvbiBQYXNzZW5nZXIgNC4wLjE0
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: !binary |-
62
+ PHJlc3BvbnNlPgogIDxtZXNzYWdlX3Jlc3BvbnNlPgogICAgPG1lc3NhZ2U+
63
+ c3VjY2VzczwvbWVzc2FnZT4KICA8L21lc3NhZ2VfcmVzcG9uc2U+CiAgPGRh
64
+ dGFfcmVzcG9uc2U+CiAgICA8dHJhbnNhY3Rpb24+CiAgICAgIDxvcmRlcl9u
65
+ dW1iZXI+MTIzNDU2Nzg5PC9vcmRlcl9udW1iZXI+CiAgICAgIDxmcmVlPlRl
66
+ eHRvIEludGVybm88L2ZyZWU+CiAgICAgIDx0cmFuc2FjdGlvbl9pZCB0eXBl
67
+ PSJpbnRlZ2VyIj4zODc0PC90cmFuc2FjdGlvbl9pZD4KICAgICAgPHN0YXR1
68
+ c19uYW1lPkVtIFJlY3VwZXJhw6fDo288L3N0YXR1c19uYW1lPgogICAgICA8
69
+ c3RhdHVzX2lkIHR5cGU9ImludGVnZXIiPjg4PC9zdGF0dXNfaWQ+CiAgICAg
70
+ IDx0b2tlbl90cmFuc2FjdGlvbj43NTZjMGJiMzEzYjdlODZjYWY1OWNmOGYx
71
+ ZGRmYjI4MTwvdG9rZW5fdHJhbnNhY3Rpb24+CiAgICAgIDxwYXltZW50Pgog
72
+ ICAgICAgIDxwcmljZV9wYXltZW50IHR5cGU9ImRlY2ltYWwiPjI1NTIuNDk8
73
+ L3ByaWNlX3BheW1lbnQ+CiAgICAgICAgPHByaWNlX29yaWdpbmFsIHR5cGU9
74
+ ImRlY2ltYWwiPjIwMTQuOTk8L3ByaWNlX29yaWdpbmFsPgogICAgICAgIDxw
75
+ YXltZW50X3Jlc3BvbnNlPk1lbnNhZ2VtIGRlIHZlbmRhIGZha2U8L3BheW1l
76
+ bnRfcmVzcG9uc2U+CiAgICAgICAgPHVybF9wYXltZW50PjwvdXJsX3BheW1l
77
+ bnQ+CiAgICAgICAgPHRpZD4xMjMzPC90aWQ+CiAgICAgICAgPHNwbGl0IHR5
78
+ cGU9ImludGVnZXIiPjEyPC9zcGxpdD4KICAgICAgICA8cGF5bWVudF9tZXRo
79
+ b2RfaWQgdHlwZT0iaW50ZWdlciI+NDwvcGF5bWVudF9tZXRob2RfaWQ+CiAg
80
+ ICAgICAgPHBheW1lbnRfbWV0aG9kX25hbWU+TWFzdGVyY2FyZDwvcGF5bWVu
81
+ dF9tZXRob2RfbmFtZT4KICAgICAgICA8bGluaGFfZGlnaXRhdmVsIG5pbD0i
82
+ dHJ1ZSIvPgogICAgICA8L3BheW1lbnQ+CiAgICAgIDxjdXN0b21lcj4KICAg
83
+ ICAgICA8bmFtZT5Ob21lIGRvIENsaWVudGU8L25hbWU+CiAgICAgICAgPGNv
84
+ bXBhbnlfbmFtZT48L2NvbXBhbnlfbmFtZT4KICAgICAgICA8dHJhZGVfbmFt
85
+ ZT48L3RyYWRlX25hbWU+CiAgICAgICAgPGNucGo+PC9jbnBqPgogICAgICA8
86
+ L2N1c3RvbWVyPgogICAgPC90cmFuc2FjdGlvbj4KICA8L2RhdGFfcmVzcG9u
87
+ c2U+CjwvcmVzcG9uc2U+Cg==
88
+ http_version:
89
+ recorded_at: Mon, 21 Oct 2013 19:30:50 GMT
90
+ recorded_with: VCR 2.6.0
@@ -0,0 +1,72 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.sandbox.traycheckout.com.br//v2/transactions/get_by_token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: token_account=8bfe5ddcb77207b&token_transaction=987asd654lkj321qwe098poi
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: !binary |-
18
+ T0s=
19
+ headers:
20
+ !binary "U2VydmVy":
21
+ - !binary |-
22
+ bmdpbngvMS40LjE=
23
+ !binary "RGF0ZQ==":
24
+ - !binary |-
25
+ TW9uLCAyMSBPY3QgMjAxMyAxOToxOToyNyBHTVQ=
26
+ !binary "Q29udGVudC1UeXBl":
27
+ - !binary |-
28
+ YXBwbGljYXRpb24veG1sOyBjaGFyc2V0PXV0Zi04
29
+ !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
30
+ - !binary |-
31
+ Y2h1bmtlZA==
32
+ !binary "Q29ubmVjdGlvbg==":
33
+ - !binary |-
34
+ a2VlcC1hbGl2ZQ==
35
+ !binary "U3RhdHVz":
36
+ - !binary |-
37
+ MjAwIE9L
38
+ !binary "WC1VYS1Db21wYXRpYmxl":
39
+ - !binary |-
40
+ SUU9RWRnZSxjaHJvbWU9MQ==
41
+ !binary "RXRhZw==":
42
+ - !binary |-
43
+ IjAyM2RkZjJlYTQ3OTQ3MzQzMjdiYjY5YjE3MDU2YWYzIg==
44
+ !binary "Q2FjaGUtQ29udHJvbA==":
45
+ - !binary |-
46
+ bWF4LWFnZT0wLCBwcml2YXRlLCBtdXN0LXJldmFsaWRhdGU=
47
+ !binary "WC1SZXF1ZXN0LUlk":
48
+ - !binary |-
49
+ ZmMyYWJjN2RiMGUxNzc5YjM4MTY2NzQzZjg4ZTQ5NmU=
50
+ !binary "WC1SdW50aW1l":
51
+ - !binary |-
52
+ MC4wMjY4NTc=
53
+ !binary "WC1SYWNrLUNhY2hl":
54
+ - !binary |-
55
+ aW52YWxpZGF0ZSwgcGFzcw==
56
+ !binary "WC1Qb3dlcmVkLUJ5":
57
+ - !binary |-
58
+ UGh1c2lvbiBQYXNzZW5nZXIgNC4wLjE0
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: !binary |-
62
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc3Bv
63
+ bnNlPgogIDxlcnJvcl9yZXNwb25zZT4KICAgIDxlcnJvcnMgdHlwZT0iYXJy
64
+ YXkiPgogICAgICA8ZXJyb3I+CiAgICAgICAgPG1lc3NhZ2U+VHJhbnNhw6fD
65
+ o28gbsOjbyBlbmNvbnRyYWRhPC9tZXNzYWdlPgogICAgICAgIDxjb2RlPjAw
66
+ MzA0MjwvY29kZT4KICAgICAgPC9lcnJvcj4KICAgIDwvZXJyb3JzPgogIDwv
67
+ ZXJyb3JfcmVzcG9uc2U+CiAgPG1lc3NhZ2VfcmVzcG9uc2U+CiAgICA8bWVz
68
+ c2FnZT5lcnJvcjwvbWVzc2FnZT4KICA8L21lc3NhZ2VfcmVzcG9uc2U+Cjwv
69
+ cmVzcG9uc2U+Cg==
70
+ http_version:
71
+ recorded_at: Mon, 21 Oct 2013 19:19:27 GMT
72
+ recorded_with: VCR 2.6.0
@@ -0,0 +1,114 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.sandbox.traycheckout.com.br//v2/transactions/get_by_token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: token_account=8bfe5ddcb77207b&token_transaction=4761d2e198ba6b60b45900a4d95482d5
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: !binary |-
18
+ T0s=
19
+ headers:
20
+ !binary "U2VydmVy":
21
+ - !binary |-
22
+ bmdpbngvMS40LjE=
23
+ !binary "RGF0ZQ==":
24
+ - !binary |-
25
+ TW9uLCAyMSBPY3QgMjAxMyAxOTo0MTo1NCBHTVQ=
26
+ !binary "Q29udGVudC1UeXBl":
27
+ - !binary |-
28
+ YXBwbGljYXRpb24veG1sOyBjaGFyc2V0PXV0Zi04
29
+ !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
30
+ - !binary |-
31
+ Y2h1bmtlZA==
32
+ !binary "Q29ubmVjdGlvbg==":
33
+ - !binary |-
34
+ a2VlcC1hbGl2ZQ==
35
+ !binary "U3RhdHVz":
36
+ - !binary |-
37
+ MjAwIE9L
38
+ !binary "WC1VYS1Db21wYXRpYmxl":
39
+ - !binary |-
40
+ SUU9RWRnZSxjaHJvbWU9MQ==
41
+ !binary "RXRhZw==":
42
+ - !binary |-
43
+ IjlhNGVhYTA5NTMzNDA2ODA2MDhhODE0NDk1NzkyY2ZiIg==
44
+ !binary "Q2FjaGUtQ29udHJvbA==":
45
+ - !binary |-
46
+ bWF4LWFnZT0wLCBwcml2YXRlLCBtdXN0LXJldmFsaWRhdGU=
47
+ !binary "WC1SZXF1ZXN0LUlk":
48
+ - !binary |-
49
+ Nzg5ZmUwMzIyNTE0MmRmYzA0ODZkMjNiMDdkZTcyZjA=
50
+ !binary "WC1SdW50aW1l":
51
+ - !binary |-
52
+ MC4yMTE3OTE=
53
+ !binary "WC1SYWNrLUNhY2hl":
54
+ - !binary |-
55
+ aW52YWxpZGF0ZSwgcGFzcw==
56
+ !binary "WC1Qb3dlcmVkLUJ5":
57
+ - !binary |-
58
+ UGh1c2lvbiBQYXNzZW5nZXIgNC4wLjE0
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: !binary |-
62
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc3Bv
63
+ bnNlPgogIDxkYXRhX3Jlc3BvbnNlPgogICAgPHRyYW5zYWN0aW9uPgogICAg
64
+ ICA8b3JkZXJfbnVtYmVyPjEyMzQ1Njc8L29yZGVyX251bWJlcj4KICAgICAg
65
+ PGZyZWU+VGV4dG8gSW50ZXJubzwvZnJlZT4KICAgICAgPHRyYW5zYWN0aW9u
66
+ X2lkIHR5cGU9ImludGVnZXIiPjM4NTY8L3RyYW5zYWN0aW9uX2lkPgogICAg
67
+ ICA8c3RhdHVzX25hbWU+RW0gUmVjdXBlcmHDp8Ojbzwvc3RhdHVzX25hbWU+
68
+ CiAgICAgIDxzdGF0dXNfaWQgdHlwZT0iaW50ZWdlciI+ODg8L3N0YXR1c19p
69
+ ZD4KICAgICAgPHRva2VuX3RyYW5zYWN0aW9uPjQ3NjFkMmUxOThiYTZiNjBi
70
+ NDU5MDBhNGQ5NTQ4MmQ1PC90b2tlbl90cmFuc2FjdGlvbj4KICAgICAgPHBh
71
+ eW1lbnQ+CiAgICAgICAgPHByaWNlX29yaWdpbmFsIHR5cGU9ImRlY2ltYWwi
72
+ PjIxOTkuOTk8L3ByaWNlX29yaWdpbmFsPgogICAgICAgIDxwcmljZV9wYXlt
73
+ ZW50IHR5cGU9ImRlY2ltYWwiPjIxOTkuOTk8L3ByaWNlX3BheW1lbnQ+CiAg
74
+ ICAgICAgPHBheW1lbnRfcmVzcG9uc2U+PC9wYXltZW50X3Jlc3BvbnNlPgog
75
+ ICAgICAgIDx1cmxfcGF5bWVudD5odHRwOi8vZ3R3LnNhbmRib3guY2hlY2tv
76
+ dXQudHJheS5jb20uYnIvYXBpL3ByaW50LzBiNTI1ZTlkYmVmNTU4NjkwNDc3
77
+ YjgxNTExOGFhMDMzPC91cmxfcGF5bWVudD4KICAgICAgICA8dGlkIG5pbD0i
78
+ dHJ1ZSIvPgogICAgICAgIDxzcGxpdCB0eXBlPSJpbnRlZ2VyIj4xPC9zcGxp
79
+ dD4KICAgICAgICA8cGF5bWVudF9tZXRob2RfaWQgdHlwZT0iaW50ZWdlciI+
80
+ NjwvcGF5bWVudF9tZXRob2RfaWQ+CiAgICAgICAgPHBheW1lbnRfbWV0aG9k
81
+ X25hbWU+Qm9sZXRvIEJhbmNhcmlvPC9wYXltZW50X21ldGhvZF9uYW1lPgog
82
+ ICAgICAgIDxsaW5oYV9kaWdpdGF2ZWw+MzQxOTEuNzYwMDcgMDA1MzYuMjYw
83
+ MTQ0IDUwNTY1LjYwMDAwOSA2IDU4NjMwMDAwMjE5OTk5PC9saW5oYV9kaWdp
84
+ dGF2ZWw+CiAgICAgIDwvcGF5bWVudD4KICAgICAgPGN1c3RvbWVyPgogICAg
85
+ ICAgIDxuYW1lPk5vbWUgZG8gQ2xpZW50ZTwvbmFtZT4KICAgICAgICA8Y3Bm
86
+ Pjk4NDg5ODgyMzgwPC9jcGY+CiAgICAgICAgPGVtYWlsPmVtYWlsZG9AY2xp
87
+ ZW50ZS5jb20uYnI8L2VtYWlsPgogICAgICAgIDxjb21wYW55X25hbWU+PC9j
88
+ b21wYW55X25hbWU+CiAgICAgICAgPHRyYWRlX25hbWU+PC90cmFkZV9uYW1l
89
+ PgogICAgICAgIDxjbnBqPjwvY25waj4KICAgICAgICA8YWRkcmVzc2VzIHR5
90
+ cGU9ImFycmF5Ij4KICAgICAgICAgIDxhZGRyZXNzPgogICAgICAgICAgICA8
91
+ c3RyZWV0PkF2IFBhdWxpc3RhPC9zdHJlZXQ+CiAgICAgICAgICAgIDxudW1i
92
+ ZXI+MTAwMTwvbnVtYmVyPgogICAgICAgICAgICA8bmVpZ2hib3Job29kPkNl
93
+ bnRybzwvbmVpZ2hib3Job29kPgogICAgICAgICAgICA8cG9zdGFsX2NvZGU+
94
+ MDQwMDEwMDE8L3Bvc3RhbF9jb2RlPgogICAgICAgICAgICA8Y29tcGxldGlv
95
+ bj48L2NvbXBsZXRpb24+CiAgICAgICAgICAgIDxjaXR5PlPDo28gUGF1bG88
96
+ L2NpdHk+CiAgICAgICAgICAgIDxzdGF0ZT5TUDwvc3RhdGU+CiAgICAgICAg
97
+ ICA8L2FkZHJlc3M+CiAgICAgICAgICA8YWRkcmVzcz4KICAgICAgICAgICAg
98
+ PHN0cmVldD5BdiBQYXVsaXN0YTwvc3RyZWV0PgogICAgICAgICAgICA8bnVt
99
+ YmVyPjEwMDE8L251bWJlcj4KICAgICAgICAgICAgPG5laWdoYm9yaG9vZD5D
100
+ ZW50cm88L25laWdoYm9yaG9vZD4KICAgICAgICAgICAgPHBvc3RhbF9jb2Rl
101
+ PjA0MDAxMDAxPC9wb3N0YWxfY29kZT4KICAgICAgICAgICAgPGNvbXBsZXRp
102
+ b24+PC9jb21wbGV0aW9uPgogICAgICAgICAgICA8Y2l0eT5Tw6NvIFBhdWxv
103
+ PC9jaXR5PgogICAgICAgICAgICA8c3RhdGU+U1A8L3N0YXRlPgogICAgICAg
104
+ ICAgPC9hZGRyZXNzPgogICAgICAgIDwvYWRkcmVzc2VzPgogICAgICAgIDxj
105
+ b250YWN0cyB0eXBlPSJhcnJheSI+CiAgICAgICAgICA8Y29udGFjdD4KICAg
106
+ ICAgICAgICAgPHZhbHVlPjExOTk4NzYxMjM0PC92YWx1ZT4KICAgICAgICAg
107
+ ICAgPHR5cGVfY29udGFjdD5NPC90eXBlX2NvbnRhY3Q+CiAgICAgICAgICA8
108
+ L2NvbnRhY3Q+CiAgICAgICAgPC9jb250YWN0cz4KICAgICAgPC9jdXN0b21l
109
+ cj4KICAgIDwvdHJhbnNhY3Rpb24+CiAgPC9kYXRhX3Jlc3BvbnNlPgogIDxt
110
+ ZXNzYWdlX3Jlc3BvbnNlPgogICAgPG1lc3NhZ2U+c3VjY2VzczwvbWVzc2Fn
111
+ ZT4KICA8L21lc3NhZ2VfcmVzcG9uc2U+CjwvcmVzcG9uc2U+Cg==
112
+ http_version:
113
+ recorded_at: Mon, 21 Oct 2013 19:41:54 GMT
114
+ recorded_with: VCR 2.6.0
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.sandbox.traycheckout.com.br//v1/tmp_transactions/create
6
+ body:
7
+ encoding: US-ASCII
8
+ string: postal_code_seller=18523698&token_account=8bfe5ddcb77207b&token_transaction=a906bf32cb59060dfc90769524f99d5a&transaction%5Bfree%5D=Texto+Interno&transaction%5Border_number%5D=1234567&transaction%5Burl_notification%5D=http%3A%2F%2Fprodis.blog.br%2Ftray_notification&transaction_product%5B%5D%5Bcode%5D=teste&transaction_product%5B%5D%5Bdescription%5D=Notebook+Branco&transaction_product%5B%5D%5Bprice_unit%5D=2199.99&transaction_product%5B%5D%5Bquantity%5D=1&transaction_product%5B%5D%5Burl_img%5D=http%3A%2F%2Fcatnross.com%2Fwp-content%2Fuploads%2F2011%2F08%2Fproduct1.jpg&transaction_product%5B%5D%5Bweight%5D=300
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx/1.4.1
21
+ Date:
22
+ - Mon, 21 Oct 2013 19:19:29 GMT
23
+ Content-Type:
24
+ - application/xml; charset=utf-8
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ Status:
30
+ - 200 OK
31
+ X-Ua-Compatible:
32
+ - IE=Edge,chrome=1
33
+ Etag:
34
+ - ! '"14c104773dde992f06a38ac086d698e0"'
35
+ Cache-Control:
36
+ - max-age=0, private, must-revalidate
37
+ X-Request-Id:
38
+ - 8b870841119f2e333a63b5e7535cd1ce
39
+ X-Runtime:
40
+ - '0.421474'
41
+ X-Rack-Cache:
42
+ - invalidate, pass
43
+ X-Powered-By:
44
+ - Phusion Passenger 4.0.14
45
+ body:
46
+ encoding: US-ASCII
47
+ string: ! "<tmp_transaction>\n <message_response>\n <message>success</message>\n
48
+ \ </message_response>\n <data_response>\n <token_transaction>a906bf32cb59060dfc90769524f99d5a</token_transaction>\n
49
+ \ <url_car>http://checkout.sandbox.tray.com.br/payment/car/v1/</url_car>\n
50
+ \ <transaction_products type=\"array\">\n <transaction_product>\n <code>teste</code>\n
51
+ \ <img>http://catnross.com/wp-content/uploads/2011/08/product1.jpg</img>\n
52
+ \ <sku_code nil=\"true\"/>\n <description>Notebook Branco</description>\n
53
+ \ <extra nil=\"true\"/>\n <price_unit type=\"decimal\">2199.99</price_unit>\n
54
+ \ <quantity type=\"decimal\">26.0</quantity>\n <weight type=\"decimal\">300.0</weight>\n
55
+ \ <id type=\"integer\">4502</id>\n <type_product nil=\"true\"/>\n
56
+ \ </transaction_product>\n </transaction_products>\n </data_response>\n</tmp_transaction>\n"
57
+ http_version:
58
+ recorded_at: Mon, 21 Oct 2013 19:19:29 GMT
59
+ recorded_with: VCR 2.6.0
@@ -0,0 +1,7 @@
1
+ # spec/support/vcr_setup.rb
2
+ VCR.configure do |c|
3
+ #the directory where your cassettes will be saved
4
+ c.cassette_library_dir = 'spec/support/vcr'
5
+ # your HTTP request service. You can also use fakeweb, webmock, and more
6
+ c.hook_into :webmock
7
+ end
@@ -6,7 +6,7 @@ describe Tray::Checkout::Parser do
6
6
 
7
7
  describe "#response" do
8
8
  before :each do
9
- @xml = body_for(:get_success_boleto)
9
+ @xml = body_for(:get_success_mastercard)
10
10
  @response_parser = Tray::Checkout::ResponseParser.new(@xml)
11
11
  @response = Tray::Checkout::Response.new
12
12
  Tray::Checkout::ResponseParser.stub(:new).and_return(@response_parser)