veritrans 1.2.2 → 1.2.4

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.
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