veritrans 1.2.2 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: e5ebbca8c23c65e29e3d7d5356a13589b4bfd1ea
4
- data.tar.gz: 531d9cd5b2f9a90c70f7998f09f3f2b2bcd5bdbd
5
- !binary "U0hBNTEy":
6
- metadata.gz: 863b6be4a4c40ce0b4d749ec8155ece442aacc225b5b2d1f3571c844e481ae52cf5c5f9234456c455153709facc979fd340be4c6b0d21cf0c7c2bcd1e9e75cd7
7
- data.tar.gz: 883773fef6e11186b33de36d56430979f5f27ec12300376258a4b04178896adf5d7502ef91aa2de508381e92bc088586e98c5fd1b2e431157ecbb229faba3725
2
+ SHA1:
3
+ metadata.gz: 8c361664f285ed648c2501265d0c371189f09f2e
4
+ data.tar.gz: ddbe29dd147e562e89a5a08912df441180cfa047
5
+ SHA512:
6
+ metadata.gz: 550ff7c4c46f486b1deafd836c52869981f05ff36fc3116f48ca0c65d08c5b8fdbbc221c82075052297088e8ff076230ea78a454147f6427ea5a183f5930ccd3
7
+ data.tar.gz: af5bd43147d2b256fbc13f4df7477d61f3920934a710dda66b07a8543eb8f8f3a607e39aabf4c7f4f518fe74b9eb9bbc6aa2a2181fee8f4a82184a5b8518e8a4
data/config/veritrans.yml CHANGED
@@ -1,9 +1,9 @@
1
1
  development:
2
2
  merchant_id: "test_id"
3
3
  merchant_hash_key: "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789012345678901"
4
- finish_payment_return_url: "http://localhost/finish"
5
- unfinish_payment_return_url: "http://localhost/cancel"
6
- error_payment_return_url: "http://localhost/error"
4
+ finish_payment_return_url: "http://localhost:3000/finish"
5
+ unfinish_payment_return_url: "http://localhost:3000/cancel"
6
+ error_payment_return_url: "http://localhost:3000/error"
7
7
  server_key: "c0b44171-d7fe-4cf5-8b15-06049fc9980c"
8
8
  # server_key: "2a8f3674-71cf-42af-aa56-b872b8924f72"
9
9
  server_host: "http://veritrans.dev"
@@ -17,10 +17,10 @@ module Veritrans
17
17
  self.customer_specification_flag = Config::CUSTOMER_SPECIFICATION_FLAG
18
18
  self.settlement_type = Config::SETTLEMENT_TYPE_CARD
19
19
 
20
- if block_given?
21
- yield(self) #self.instance_eval(&block)
22
- return self.get_keys
23
- end
20
+ # if block_given?
21
+ # yield(self) #self.instance_eval(&block)
22
+ # return self.get_keys
23
+ # end
24
24
  end
25
25
 
26
26
  #
@@ -40,40 +40,75 @@ module Veritrans
40
40
  #
41
41
  def get_keys
42
42
  init_instance
43
-
43
+
44
44
  if customer_specification_flag == "0" && shipping_flag == "0"
45
45
  raise "required_shipping_address must be '1'"
46
46
  end
47
47
 
48
48
  params = prepare_params(PostData::ServerParam,PostData::PostParam)
49
49
 
50
- if @commodity.class == Array
51
- commodity = @commodity.collect do |data|
52
- if data.keys.index "COMMODITY_QTY"
53
- data["COMMODITY_NUM"] = data["COMMODITY_QTY"]
54
- data.delete "COMMODITY_QTY"
50
+ if !params[:promo_bins].blank?
51
+ params.merge!({ "promo_bins[]" => params[:promo_bins]})
52
+ params.delete :promo_bins
53
+ end
54
+
55
+ if !params[:point_banks].blank?
56
+ params.merge!({ "point_banks[]" => params[:point_banks]})
57
+ params.delete :point_banks
58
+ end
59
+
60
+ if !params[:installment_banks].blank?
61
+ params.merge!({ "installment_banks[]" => params[:installment_banks]})
62
+ params.delete :installment_banks
63
+ end
64
+
65
+ if !params[:installment_terms].blank?
66
+ params.merge!({ "installment_terms" => params[:installment_terms].to_json })
67
+ params.delete :installment_terms
68
+ end
69
+
70
+ commodity = @commodity.collect do |data|
71
+ data.keys.map do |key|
72
+ if key.downcase == "commodity_id"
73
+ data["item_id[]"] = data[key]
74
+ end
75
+
76
+ if key.downcase == "commodity_unit"
77
+ data["price[]"] = data[key]
78
+ end
79
+
80
+ if key.downcase == "commodity_num"
81
+ data["quantity[]"] = data[key]
82
+ end
83
+
84
+ if key.downcase == "commodity_name1"
85
+ data["item_name1[]"] = data[key]
55
86
  end
56
- if data.keys.index "COMMODITY_PRICE"
57
- data["COMMODITY_UNIT"] = data["COMMODITY_PRICE"]
58
- data.delete "COMMODITY_PRICE"
87
+
88
+ if key.downcase == "commodity_name2"
89
+ data["item_name2[]"] = data[key]
59
90
  end
60
- uri = Addressable::URI.new
61
- uri.query_values = data
62
- uri.query
63
- end
91
+
92
+ data.delete key
93
+ end
94
+
95
+ # construct commodity
96
+ orders_uri = Addressable::URI.new
97
+ orders_uri.query_values = data
98
+ # return list of commodity as query string format
99
+ orders_uri.query
64
100
  end
65
101
 
66
102
  uri = Addressable::URI.new
67
103
  uri.query_values = params
68
- query_string = "#{uri.query}&REPEAT_LINE=#{@commodity.length}&#{commodity.join('&')}"
69
-
104
+ query_string = "#{uri.query}&repeat_line=#{commodity.length}&#{commodity.join('&')}"
105
+
70
106
  conn = Faraday.new(:url => server_host)
71
107
  @resp = conn.post do |req|
72
108
  req.url(Config::REQUEST_KEY_URL)
73
109
  req.body = query_string
74
110
  end.env
75
- # puts query_string
76
-
111
+
77
112
  delete_keys
78
113
  @resp[:url] = @resp[:url].to_s
79
114
 
@@ -149,11 +184,15 @@ module Veritrans
149
184
  @shipping_flag = flag
150
185
  end
151
186
 
187
+ def new_api
188
+ return true
189
+ end
190
+
152
191
  private
153
192
 
154
193
  def merchanthash
155
194
  # Generate merchant hash code
156
- return HashGenerator::generate(merchant_id, merchant_hash_key, settlement_type, order_id, gross_amount);
195
+ return HashGenerator::generate(merchant_id, merchant_hash_key, settlement_type, order_id);
157
196
  end
158
197
 
159
198
  def parse_body(body)
@@ -168,9 +207,11 @@ module Veritrans
168
207
 
169
208
  def prepare_params(*arg)
170
209
  params = {}
210
+ # extract keys from post data
171
211
  arg.flatten.each do |key|
212
+ # retrieve value from client configuration
172
213
  value = self.send(key)
173
- params[key.upcase] = value if value
214
+ params[key.downcase] = value if value
174
215
  end
175
216
  return params
176
217
  end
@@ -7,7 +7,7 @@ module Veritrans
7
7
  module Config
8
8
 
9
9
  # server Veritrans - defined in gem - no change!
10
- SERVER_HOST = 'https://payments.veritrans.co.id' #'http://192.168.10.250:80'
10
+ SERVER_HOST = "https://vtweb.veritrans.co.id"
11
11
 
12
12
  # Request Key Url - use in #get_keys - defined in gem - no change!
13
13
  REQUEST_KEY_URL = "/web1/commodityRegist.action"
@@ -12,8 +12,8 @@ module Veritrans
12
12
  # * <tt>[String]settlement_method</tt> - '01' Credit Card
13
13
  # * <tt>[String]order_id</tt>
14
14
  # * <tt>[String]amount</tt>
15
- def self.generate(merchant_id, merchant_hash_key, settlement_method, order_id, amount)
16
- Digest::SHA512.hexdigest("#{merchant_hash_key},#{merchant_id},#{settlement_method},#{order_id},#{amount}")
15
+ def self.generate(merchant_id, merchant_hash_key, settlement_method, order_id)
16
+ Digest::SHA512.hexdigest("#{merchant_hash_key},#{merchant_id},#{settlement_method},#{order_id}")
17
17
  end
18
18
  end
19
19
  end
@@ -26,13 +26,20 @@ module Veritrans
26
26
  # +:previous_customer_flag,+
27
27
  # +:customer_status,+
28
28
  Payment =[
29
- :settlement_type,
29
+ :settlement_type,
30
+ :payment_type,
30
31
  :gross_amount,
31
32
  :card_no,
32
33
  :card_exp_date, # mm/yy
33
34
  :customer_id,
34
35
  :previous_customer_flag,
35
36
  :customer_status,
37
+ # :installment,
38
+ :installment_type,
39
+ :installment_banks,
40
+ :installment_terms,
41
+ # :point,
42
+ :point_banks
36
43
  ]
37
44
 
38
45
  # +:first_name,+
@@ -78,7 +85,8 @@ module Veritrans
78
85
  :shipping_country_code,
79
86
  :shipping_postal_code,
80
87
  :shipping_phone,
81
- :shipping_method
88
+ :shipping_method,
89
+ :shipping_email
82
90
  ]
83
91
 
84
92
  # +:lang_enable_flag,+
@@ -122,7 +130,9 @@ module Veritrans
122
130
  :session_id,
123
131
  :merchanthash,
124
132
  :card_capture_flag,
125
- :promo_id
133
+ :promo_id,
134
+ :promo_bins,
135
+ :enable_3d_secure
126
136
  ]
127
137
 
128
138
  # +:merchant_id,+
@@ -135,7 +145,8 @@ module Veritrans
135
145
  :merchanthash,
136
146
  :finish_payment_return_url,
137
147
  :unfinish_payment_return_url,
138
- :error_payment_return_url
148
+ :error_payment_return_url,
149
+ :new_api
139
150
  ]
140
151
 
141
152
  # Params are the combination of this group:
@@ -24,7 +24,7 @@ module Veritrans
24
24
 
25
25
  # :nodoc:
26
26
  def patch
27
- 2
27
+ 4
28
28
  end
29
29
 
30
30
  # :nodoc:
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: veritrans
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Veritrans Dev Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-12 00:00:00.000000000 Z
11
+ date: 2013-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description:
@@ -89,17 +89,17 @@ require_paths:
89
89
  - lib
90
90
  required_ruby_version: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - ! '>='
92
+ - - '>='
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0'
95
95
  required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - ! '>='
97
+ - - '>='
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
100
  requirements: []
101
101
  rubyforge_project: veritrans
102
- rubygems_version: 2.0.3
102
+ rubygems_version: 2.0.0
103
103
  signing_key:
104
104
  specification_version: 4
105
105
  summary: Veritrans Webclient wrapper