tray-checkout 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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)