pagseguro 0.1.6 → 0.1.7.beta.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/README.markdown +17 -0
- data/lib/pagseguro.rb +1 -0
- data/lib/pagseguro/notification.rb +2 -2
- data/lib/pagseguro/order.rb +20 -0
- data/lib/pagseguro/utils.rb +13 -0
- data/lib/pagseguro/version.rb +2 -2
- data/lib/pagseguro/views/_form.html.erb +7 -3
- data/spec/helpers/helper_spec.rb +33 -2
- data/spec/pagseguro/order_spec.rb +8 -0
- metadata +7 -6
data/Gemfile.lock
CHANGED
data/README.markdown
CHANGED
@@ -84,6 +84,23 @@ Se você precisar, pode definir o tipo de frete com o método `shipping_type`.
|
|
84
84
|
@order.shipping_type = "EN" # PAC
|
85
85
|
@order.shipping_type = "FR" # Frete Próprio
|
86
86
|
|
87
|
+
Se você precisar, pode definir os dados de cobrança com o método `billing`.
|
88
|
+
|
89
|
+
@order.billing = {
|
90
|
+
:name => "John Doe",
|
91
|
+
:email => "john@doe.com",
|
92
|
+
:address_zipcode => "01234-567",
|
93
|
+
:address_street => "Rua Orobó",
|
94
|
+
:address_number => 72,
|
95
|
+
:address_complement => "Casa do fundo",
|
96
|
+
:address_neighbourhood => "Tenório",
|
97
|
+
:address_city => "Pantano Grande",
|
98
|
+
:address_state => "AC",
|
99
|
+
:address_country => "Brasil",
|
100
|
+
:phone_area_code => "22",
|
101
|
+
:phone_number => "1234-5678"
|
102
|
+
}
|
103
|
+
|
87
104
|
Depois que você definiu os produtos do pedido, você pode exibir o formulário.
|
88
105
|
|
89
106
|
<!-- app/views/cart/checkout.html.erb -->
|
data/lib/pagseguro.rb
CHANGED
@@ -45,14 +45,14 @@ module PagSeguro
|
|
45
45
|
# Normalize the specified hash converting all data to UTF-8
|
46
46
|
def normalize(hash)
|
47
47
|
each_value(hash) do |value|
|
48
|
-
|
48
|
+
Utils.to_utf8(value)
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
# Denormalize the specified hash converting all data to ISO-8859-1
|
53
53
|
def denormalize(hash)
|
54
54
|
each_value(hash) do |value|
|
55
|
-
|
55
|
+
Utils.to_iso8859(value)
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
data/lib/pagseguro/order.rb
CHANGED
@@ -1,8 +1,27 @@
|
|
1
1
|
module PagSeguro
|
2
2
|
class Order
|
3
|
+
# Map all billing attributes that will be added as form inputs.
|
4
|
+
BILLING_MAPPING = {
|
5
|
+
:name => "cliente_nome",
|
6
|
+
:address_zipcode => "cliente_cep",
|
7
|
+
:address_street => "cliente_end",
|
8
|
+
:address_number => "cliente_num",
|
9
|
+
:address_complement => "cliente_compl",
|
10
|
+
:address_neighbourhood => "cliente_bairro",
|
11
|
+
:address_city => "cliente_cidade",
|
12
|
+
:address_state => "cliente_uf",
|
13
|
+
:address_country => "cliente_pais",
|
14
|
+
:phone_area_code => "cliente_ddd",
|
15
|
+
:phone_number => "cliente_tel",
|
16
|
+
:email => "cliente_email"
|
17
|
+
}
|
18
|
+
|
3
19
|
# The list of products added to the order
|
4
20
|
attr_accessor :products
|
5
21
|
|
22
|
+
# The billing info that will be sent to PagSeguro.
|
23
|
+
attr_accessor :billing
|
24
|
+
|
6
25
|
# Define the shipping type.
|
7
26
|
# Can be EN (PAC) or SD (Sedex)
|
8
27
|
attr_accessor :shipping_type
|
@@ -10,6 +29,7 @@ module PagSeguro
|
|
10
29
|
def initialize(order_id = nil)
|
11
30
|
reset!
|
12
31
|
self.id = order_id
|
32
|
+
self.billing = {}
|
13
33
|
end
|
14
34
|
|
15
35
|
# Set the order identifier. Should be a unique
|
data/lib/pagseguro/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
<form accept-charset="ISO-8859-1" action="<%= PagSeguro.gateway_url %>"
|
1
|
+
<form accept-charset="ISO-8859-1" action="<%= PagSeguro.gateway_url %>" class="pagseguro" method="post">
|
2
2
|
<div>
|
3
|
-
<%= hidden_field_tag "email_cobranca", options
|
3
|
+
<%= hidden_field_tag "email_cobranca", options.fetch(:email, PagSeguro.config["email"]) %>
|
4
4
|
<%= hidden_field_tag "tipo", "CP" %>
|
5
5
|
<%= hidden_field_tag "moeda", "BRL" %>
|
6
6
|
<%= hidden_field_tag "ref_transacao", order.id %>
|
@@ -10,12 +10,16 @@
|
|
10
10
|
<% i += 1 %>
|
11
11
|
<%= hidden_field_tag "item_quant_#{i}", product[:quantity] %>
|
12
12
|
<%= hidden_field_tag "item_id_#{i}", product[:id] %>
|
13
|
-
<%= hidden_field_tag "item_descr_#{i}", product[:description] %>
|
13
|
+
<%= hidden_field_tag "item_descr_#{i}", PagSeguro::Utils.to_iso8859(product[:description]) %>
|
14
14
|
<%= hidden_field_tag "item_valor_#{i}", product[:price] %>
|
15
15
|
<%= hidden_field_tag "item_peso_#{i}", product[:weight].to_i if product[:weight] %>
|
16
16
|
<%= hidden_field_tag "item_frete_#{i}", product[:shipping].to_i if product[:shipping] %>
|
17
17
|
<% end %>
|
18
18
|
|
19
|
+
<% order.billing.each do |name, value| %>
|
20
|
+
<%= hidden_field_tag PagSeguro::Order::BILLING_MAPPING[name.to_sym], PagSeguro::Utils.to_iso8859(value) %>
|
21
|
+
<% end %>
|
22
|
+
|
19
23
|
<%= submit_tag options[:submit] %>
|
20
24
|
</div>
|
21
25
|
</form>
|
data/spec/helpers/helper_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# encoding: utf-8
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
2
|
require "spec_helper"
|
3
3
|
|
4
4
|
describe PagSeguro::Helper do
|
@@ -14,7 +14,6 @@ describe PagSeguro::Helper do
|
|
14
14
|
context "with default attributes" do
|
15
15
|
it { should have_attr("accept-charset", "ISO-8859-1") }
|
16
16
|
it { should have_attr("action", PagSeguro::GATEWAY_URL) }
|
17
|
-
it { should have_attr("id", "pagseguro") }
|
18
17
|
it { should have_attr("class", "pagseguro") }
|
19
18
|
it { should have_input(:name => "tipo", :value => "CP") }
|
20
19
|
it { should have_input(:name => "moeda", :value => "BRL") }
|
@@ -77,4 +76,36 @@ describe PagSeguro::Helper do
|
|
77
76
|
it { should have_input(:name => "item_valor_2", :value => "1900") }
|
78
77
|
it { should have_input(:name => "item_descr_2", :value => "Rails 3 e-Book + Screencast") }
|
79
78
|
end
|
79
|
+
|
80
|
+
context "with billing info" do
|
81
|
+
before do
|
82
|
+
@order.billing = {
|
83
|
+
:name => "John Doe",
|
84
|
+
:email => "john@doe.com",
|
85
|
+
:address_zipcode => "01234-567",
|
86
|
+
:address_street => "Rua Orobó",
|
87
|
+
:address_number => 72,
|
88
|
+
:address_complement => "Casa do fundo",
|
89
|
+
:address_neighbourhood => "Tenório",
|
90
|
+
:address_city => "Pantano Grande",
|
91
|
+
:address_state => "AC",
|
92
|
+
:address_country => "Brasil",
|
93
|
+
:phone_area_code => "22",
|
94
|
+
:phone_number => "1234-5678"
|
95
|
+
}
|
96
|
+
end
|
97
|
+
|
98
|
+
it { should have_input(:name => "cliente_nome", :value => "John Doe") }
|
99
|
+
it { should have_input(:name => "cliente_email", :value => "john@doe.com") }
|
100
|
+
it { should have_input(:name => "cliente_cep", :value => "01234-567") }
|
101
|
+
it { should have_input(:name => "cliente_end", :value => "Rua Orobó") }
|
102
|
+
it { should have_input(:name => "cliente_num", :value => "72") }
|
103
|
+
it { should have_input(:name => "cliente_compl", :value => "Casa do fundo") }
|
104
|
+
it { should have_input(:name => "cliente_bairro", :value => "Tenório") }
|
105
|
+
it { should have_input(:name => "cliente_cidade", :value => "Pantano Grande") }
|
106
|
+
it { should have_input(:name => "cliente_uf", :value => "AC") }
|
107
|
+
it { should have_input(:name => "cliente_pais", :value => "Brasil") }
|
108
|
+
it { should have_input(:name => "cliente_ddd", :value => "22") }
|
109
|
+
it { should have_input(:name => "cliente_tel", :value => "1234-5678") }
|
110
|
+
end
|
80
111
|
end
|
@@ -83,4 +83,12 @@ describe PagSeguro::Order do
|
|
83
83
|
@order << @product.merge(:weight => 1.3)
|
84
84
|
@order.products.first[:weight].should == 1300
|
85
85
|
end
|
86
|
+
|
87
|
+
it "should respond to billing attribute" do
|
88
|
+
@order.should respond_to(:billing)
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should initialize billing attribute" do
|
92
|
+
@order.billing.should be_instance_of(Hash)
|
93
|
+
end
|
86
94
|
end
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pagseguro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
version: 0.1.
|
4
|
+
prerelease: 6
|
5
|
+
version: 0.1.7.beta.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Nando Vieira
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-03-03 00:00:00 -03:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -108,6 +108,7 @@ files:
|
|
108
108
|
- lib/pagseguro/railtie.rb
|
109
109
|
- lib/pagseguro/rake.rb
|
110
110
|
- lib/pagseguro/routes.rb
|
111
|
+
- lib/pagseguro/utils.rb
|
111
112
|
- lib/pagseguro/version.rb
|
112
113
|
- lib/pagseguro/views/_form.html.erb
|
113
114
|
- lib/tasks/pagseguro.rake
|
@@ -153,13 +154,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
153
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
155
|
none: false
|
155
156
|
requirements:
|
156
|
-
- - "
|
157
|
+
- - ">"
|
157
158
|
- !ruby/object:Gem::Version
|
158
|
-
version:
|
159
|
+
version: 1.3.1
|
159
160
|
requirements: []
|
160
161
|
|
161
162
|
rubyforge_project:
|
162
|
-
rubygems_version: 1.
|
163
|
+
rubygems_version: 1.6.0
|
163
164
|
signing_key:
|
164
165
|
specification_version: 3
|
165
166
|
summary: The official PagSeguro library
|