clt-sdk 2.0.0 → 3.0.0

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
2
  SHA1:
3
- metadata.gz: 6c1abca04bba99773ae3ec26193f14009553c099
4
- data.tar.gz: 5acbc8ac75b3ba2a02135abb5455be647301e817
3
+ metadata.gz: 9783259746bf6dbd1abefad0255bbeb13dd2e80a
4
+ data.tar.gz: 0a0db1c56394854aeb4fabb97fe94c156cea6c43
5
5
  SHA512:
6
- metadata.gz: d05873d9c4fe3eb930d430b4575f6f13e42ac5145d91d7af483c79399408d1f0457201f5b0440f5a4ab3817354ed54218b58819f280010ba615b0d84be8546e6
7
- data.tar.gz: 3450de500406f4e5a1ce83769cdc2aa994e6b8ee52606f93d115d398ff6c00c9a55219b38105a7ee78ebc8548d01e05c4fc74336527dab8880eafa2fff1e09fd
6
+ metadata.gz: 69070180caf3277c607259f0b8ae388aa9afbe35cbbdb71216310bdacbce589b7dc566833f9cc2bd375cb1d2a195d303aba5498432d89ec1d80d296dd8729544
7
+ data.tar.gz: d50d4d36f59a3f7657fa798fda690d697f5891f4bdf318b733915198faff5d72e10f87d1800133388ed5587a41a1ecba7e63d09fdfa901b633d4a82a40e79087
data/README.md CHANGED
@@ -35,7 +35,7 @@ require "clt-sdk"
35
35
  Clt.setup do |config|
36
36
  config.cvs_cust_id = "CVS_CUST_ID"
37
37
  config.cvs_cust_password = "CVS_CUST_PASSWORD"
38
- config.cvs_default_expire_day = 1
38
+ config.cvs_default_expire_day = 3
39
39
  config.cocs_link_id = "COCS_LINK_ID"
40
40
  config.cocs_hash_base = "COCS_HASH_BASE"
41
41
  end
@@ -55,15 +55,18 @@ end
55
55
 
56
56
  ```ruby
57
57
  result = cvs_client.order_create(
58
- service_url: "SERVICE_URL",
59
- cust_order_number: "TESTORDER000001",
58
+ service_url: 'SERVICE_URL',
59
+ cust_order_number: 'TESTORDER000001',
60
60
  order_amount: 100,
61
- payer_mobile: "0987654321",
62
- payer_email: "test@localhost.com"
61
+ payer_name: '測試',
62
+ payer_postcode: '100',
63
+ payer_address: '測試地址',
64
+ payer_mobile: '0987654321',
65
+ payer_email: 'test@localhost.com'
63
66
  )
64
67
  ```
65
68
 
66
- Optional parameters: `expire_date`, `payer_name`, `payer_postcode`, `payer_address`
69
+ Optional parameters: `expire_date`
67
70
 
68
71
  > `expired_date` will overwrite `cvs_default_expire_day` setting.
69
72
 
@@ -71,9 +74,9 @@ end
71
74
 
72
75
  ```ruby
73
76
  result = cvs_client.order_query(
74
- service_url: "SERVICE_URL",
75
- process_code_update_time_begin: "2016-08-08T00:00:00+08:00",
76
- process_code_update_time_end: "2016-08-08T23:59:59+08:00"
77
+ service_url: 'SERVICE_URL',
78
+ process_code_update_time_begin: '2017-01-01T00:00:00+08:00',
79
+ process_code_update_time_end: '2017-01-01T23:59:59+08:00'
77
80
  )
78
81
  ```
79
82
 
@@ -83,16 +86,16 @@ end
83
86
  cocs_client = Clt::CreditCard.new
84
87
  ```
85
88
 
86
- > `chk` will be automatically generated by default.
89
+ > `chk` will be automatically generated.
87
90
 
88
91
  #### Order Create
89
92
 
90
93
  ```ruby
91
94
  result = cocs_client.order_create(
92
- service_url: "SERVICE_URL",
93
- cust_order_no: "TESTORDER000001",
95
+ service_url: 'SERVICE_URL',
96
+ cust_order_no: 'TESTORDER000001',
94
97
  order_amount: 100,
95
- order_detail: "Order Test"
98
+ order_detail: 'Order Test'
96
99
  )
97
100
  ```
98
101
 
@@ -104,8 +107,8 @@ end
104
107
 
105
108
  ```ruby
106
109
  result = cocs_client.order_cancel(
107
- service_url: "SERVICE_URL",
108
- cust_order_no: "TESTORDER000001",
110
+ service_url: 'SERVICE_URL',
111
+ cust_order_no: 'TESTORDER000001',
109
112
  order_amount: 100
110
113
  )
111
114
  ```
@@ -116,8 +119,8 @@ end
116
119
 
117
120
  ```ruby
118
121
  result = cocs_client.order_refund(
119
- service_url: "SERVICE_URL",
120
- cust_order_no: "TESTORDER000001",
122
+ service_url: 'SERVICE_URL',
123
+ cust_order_no: 'TESTORDER000001',
121
124
  order_amount: 100,
122
125
  refund_amount: 100
123
126
  )
@@ -9,21 +9,23 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Calvert"]
10
10
  spec.email = [""]
11
11
 
12
- spec.summary = "Basic API client for President Collect Payment Service."
12
+ spec.summary = "Basic API client for President Collect Payment Service"
13
13
  spec.description = ""
14
14
  spec.homepage = "https://github.com/CalvertYang/clt-sdk"
15
15
  spec.license = "MIT"
16
16
 
17
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
18
20
  spec.bindir = "bin"
19
21
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
22
  spec.require_paths = ["lib"]
21
23
 
22
- spec.add_dependency "nokogiri", "~> 1.6"
24
+ spec.add_dependency "nokogiri", "~> 1.7"
23
25
  spec.add_dependency "nori", "~> 2.6"
24
26
 
25
- spec.add_development_dependency "bundler", "~> 1.12"
26
- spec.add_development_dependency "rake", "~> 11.1"
27
+ spec.add_development_dependency "bundler", "~> 1.13"
28
+ spec.add_development_dependency "rake", "~> 12.0"
27
29
 
28
30
  spec.required_ruby_version = ">= 2.1.5"
29
31
  end
@@ -3,160 +3,166 @@ module Clt
3
3
  include GeneralMethods
4
4
 
5
5
  def initialize
6
- raise ArgumentError, "Please setup cocs_link_id first" if Clt.cocs_link_id.nil?
7
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cocs_link_id, data: "String") unless Clt.cocs_link_id.is_a? String
8
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :cocs_link_id) if Clt.cocs_link_id.empty?
6
+ raise ArgumentError, 'Please setup cocs_link_id first' if Clt.cocs_link_id.nil?
7
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cocs_link_id, data: :String) unless Clt.cocs_link_id.is_a? String
8
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :cocs_link_id) if Clt.cocs_link_id.empty?
9
9
 
10
- raise ArgumentError, "Please setup cocs_hash_base first" if Clt.cocs_hash_base.nil?
11
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cocs_hash_base, data: "String") unless Clt.cocs_hash_base.is_a? String
12
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :cocs_hash_base) if Clt.cocs_hash_base.empty?
10
+ raise ArgumentError, 'Please setup cocs_hash_base first' if Clt.cocs_hash_base.nil?
11
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cocs_hash_base, data: :String) unless Clt.cocs_hash_base.is_a? String
12
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :cocs_hash_base) if Clt.cocs_hash_base.empty?
13
13
  end
14
14
 
15
15
  # Order Create
16
- def order_create params = {}
17
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: "Parameter", data: "Hash") unless params.is_a? Hash
16
+ def order_create(params = {})
17
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :Parameter, data: :Hash) unless params.is_a? Hash
18
18
 
19
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
20
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :service_url, data: "String") unless params[:service_url].is_a? String
21
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
19
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
20
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :service_url, data: :String) unless params[:service_url].is_a? String
21
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
22
22
 
23
23
  if params.has_key? :cust_order_no
24
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cust_order_no, data: "String") unless params[:cust_order_no].is_a? String
25
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :cust_order_no) if params[:cust_order_no].empty?
26
- ErrorMessage.raise_argument_error(msg: :data_length_too_short, field: :cust_order_no) if params[:cust_order_no].size < 3
24
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cust_order_no, data: :String) unless params[:cust_order_no].is_a? String
25
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :cust_order_no) if params[:cust_order_no].empty?
26
+ ErrorMessage.raise_error(msg: :data_length_too_short, field: :cust_order_no) if params[:cust_order_no].size < 3
27
27
  end
28
28
 
29
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :order_amount) if params[:order_amount].nil?
30
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :order_amount, data: "Integer") unless params[:order_amount].is_a? Integer
31
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :order_amount, data: "greater than 0") if params[:order_amount] <= 0
29
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :order_amount) if params[:order_amount].nil?
30
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :order_amount, data: :Integer) unless params[:order_amount].is_a? Integer
31
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :order_amount, data: 'greater than 0') if params[:order_amount] <= 0
32
32
 
33
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :order_detail) if params[:order_detail].nil?
34
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :order_detail, data: "String") unless params[:order_detail].is_a? String
35
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :order_detail) if params[:order_detail].empty?
33
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :order_detail) if params[:order_detail].nil?
34
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :order_detail, data: :String) unless params[:order_detail].is_a? String
35
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :order_detail) if params[:order_detail].empty?
36
36
 
37
37
  if params.has_key? :limit_product_id
38
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :limit_product_id, data: "String") unless params[:limit_product_id].is_a? String
39
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :limit_product_id) if params[:limit_product_id].empty?
38
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :limit_product_id, data: :String) unless params[:limit_product_id].is_a? String
39
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :limit_product_id) if params[:limit_product_id].empty?
40
40
  end
41
41
 
42
42
  if params.has_key? :chk
43
- raise_argument_error(msg: :parameter_should_be, field: :chk, data: "String") unless params[:chk].is_a? String
44
- raise_argument_error(msg: :cannot_be_empty, field: :chk) if params[:chk].empty?
43
+ raise_error(msg: :parameter_should_be, field: :chk, data: :String) unless params[:chk].is_a? String
44
+ raise_error(msg: :cannot_be_empty, field: :chk) if params[:chk].empty?
45
45
  end
46
46
 
47
47
  service_url = params[:service_url]
48
48
  params.delete :service_url
49
49
 
50
+ # get and converts time to local time
51
+ current_time = Time.now.localtime('+08:00')
52
+
50
53
  data = {
51
54
  link_id: Clt.cocs_link_id,
52
- cust_order_no: "",
53
- limit_product_id: "esun.normal",
54
- send_time: Time.now.strftime("%F %T"),
55
- return_type: "json"
56
- }.merge(params)
55
+ cust_order_no: '',
56
+ limit_product_id: 'esun.normal',
57
+ send_time: current_time.strftime('%F %T')
58
+ }.merge(params).merge(return_type: 'json')
57
59
 
58
60
  unless params.has_key? :chk
59
61
  data[:chk] = generate_checksum "#{Clt.cocs_hash_base}$#{params[:order_amount]}$#{data[:send_time]}"
60
62
  end
61
63
 
62
- request(method: "POST", service_url: service_url, data: data)
64
+ post_request(service_url: service_url, data: data)
63
65
  end
64
66
 
65
67
  # Order Cancel
66
- def order_cancel params = {}
67
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: "Parameter", data: "Hash") unless params.is_a? Hash
68
+ def order_cancel(params = {})
69
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :Parameter, data: :Hash) unless params.is_a? Hash
68
70
 
69
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
70
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :service_url, data: "String") unless params[:service_url].is_a? String
71
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
71
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
72
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :service_url, data: :String) unless params[:service_url].is_a? String
73
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
72
74
 
73
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cust_order_no, data: "String") unless params[:cust_order_no].is_a? String
74
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :cust_order_no) if params[:cust_order_no].empty?
75
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cust_order_no, data: :String) unless params[:cust_order_no].is_a? String
76
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :cust_order_no) if params[:cust_order_no].empty?
75
77
 
76
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :order_amount) if params[:order_amount].nil?
77
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :order_amount, data: "Integer") unless params[:order_amount].is_a? Integer
78
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :order_amount, data: "greater than 0") if params[:order_amount] <= 0
78
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :order_amount) if params[:order_amount].nil?
79
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :order_amount, data: :Integer) unless params[:order_amount].is_a? Integer
80
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :order_amount, data: 'greater than 0') if params[:order_amount] <= 0
79
81
 
80
82
  if params.has_key? :chk
81
- raise_argument_error(msg: :parameter_should_be, field: :chk, data: "String") unless params[:chk].is_a? String
82
- raise_argument_error(msg: :cannot_be_empty, field: :chk) if params[:chk].empty?
83
+ raise_error(msg: :parameter_should_be, field: :chk, data: :String) unless params[:chk].is_a? String
84
+ raise_error(msg: :cannot_be_empty, field: :chk) if params[:chk].empty?
83
85
  end
84
86
 
87
+ # get and converts time to local time
88
+ current_time = Time.now.localtime('+08:00')
89
+
85
90
  data = {
86
91
  link_id: Clt.cocs_link_id,
87
- send_time: Time.now.strftime("%F %T"),
88
- return_type: "json"
89
- }.merge(params)
92
+ send_time: current_time.strftime('%F %T')
93
+ }.merge(params).merge(return_type: 'json')
90
94
 
91
95
  unless params.has_key? :chk
92
96
  data[:chk] = generate_checksum "#{Clt.cocs_hash_base}$#{params[:cust_order_no]}$#{params[:order_amount]}$#{data[:send_time]}"
93
97
  end
94
98
 
95
- request(method: "POST", service_url: params[:service_url], data: data)
99
+ post_request(service_url: params[:service_url], data: data)
96
100
  end
97
101
 
98
102
  # Order Refund
99
- def order_refund params = {}
100
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: "Parameter", data: "Hash") unless params.is_a? Hash
103
+ def order_refund(params = {})
104
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :Parameter, data: :Hash) unless params.is_a? Hash
101
105
 
102
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
103
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :service_url, data: "String") unless params[:service_url].is_a? String
104
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
106
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
107
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :service_url, data: :String) unless params[:service_url].is_a? String
108
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
105
109
 
106
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cust_order_no, data: "String") unless params[:cust_order_no].is_a? String
107
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :cust_order_no) if params[:cust_order_no].empty?
110
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cust_order_no, data: :String) unless params[:cust_order_no].is_a? String
111
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :cust_order_no) if params[:cust_order_no].empty?
108
112
 
109
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :order_amount) if params[:order_amount].nil?
110
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :order_amount, data: "Integer") unless params[:order_amount].is_a? Integer
111
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :order_amount, data: "greater than 0") if params[:order_amount] <= 0
113
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :order_amount) if params[:order_amount].nil?
114
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :order_amount, data: :Integer) unless params[:order_amount].is_a? Integer
115
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :order_amount, data: 'greater than 0') if params[:order_amount] <= 0
112
116
 
113
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :refund_amount) if params[:refund_amount].nil?
114
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :refund_amount, data: "Integer") unless params[:refund_amount].is_a? Integer
115
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :refund_amount, data: "greater than 0") if params[:refund_amount] <= 0
117
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :refund_amount) if params[:refund_amount].nil?
118
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :refund_amount, data: :Integer) unless params[:refund_amount].is_a? Integer
119
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :refund_amount, data: 'greater than 0') if params[:refund_amount] <= 0
116
120
 
117
121
  if params[:refund_amount] > params[:order_amount]
118
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :refund_amount, data: "less than or equal to order_amount")
122
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :refund_amount, data: 'less than or equal to order_amount')
119
123
  end
120
124
 
121
125
  if params.has_key? :chk
122
- raise_argument_error(msg: :parameter_should_be, field: :chk, data: "String") unless params[:chk].is_a? String
123
- raise_argument_error(msg: :cannot_be_empty, field: :chk) if params[:chk].empty?
126
+ raise_error(msg: :parameter_should_be, field: :chk, data: :String) unless params[:chk].is_a? String
127
+ raise_error(msg: :cannot_be_empty, field: :chk) if params[:chk].empty?
124
128
  end
125
129
 
130
+ # get and converts time to local time
131
+ current_time = Time.now.localtime('+08:00')
132
+
126
133
  data = {
127
134
  link_id: Clt.cocs_link_id,
128
- send_time: Time.now.strftime("%F %T"),
129
- return_type: "json"
130
- }.merge(params)
135
+ send_time: current_time.strftime('%F %T')
136
+ }.merge(params).merge(return_type: 'json')
131
137
 
132
138
  unless params.has_key? :chk
133
139
  data[:chk] = generate_checksum "#{Clt.cocs_hash_base}$#{params[:cust_order_no]}$#{params[:order_amount]}$#{params[:refund_amount]}$#{data[:send_time]}"
134
140
  end
135
141
 
136
- request(method: "POST", service_url: params[:service_url], data: data)
142
+ post_request(service_url: params[:service_url], data: data)
137
143
  end
138
144
 
139
- # Authorize success response validation
140
- def auth_success_response_valid? params
145
+ # Authorize success callback validation
146
+ def auth_success_callback_valid?(params)
141
147
  params = params.stringify_keys
142
- checksum = params["chk"]
143
- new_checksum = generate_checksum "#{Clt.cocs_hash_base}$#{params['order_amount']}$#{params['send_time']}$#{params['ret']}$#{params['acquire_time']}$#{params['auth_code']}$#{params['card_no']}$#{params['notify_time']}$#{params['cust_order_no']}"
148
+ checksum = params['chk']
149
+ checksum_generated = generate_checksum "#{Clt.cocs_hash_base}$#{params['order_amount']}$#{params['send_time']}$#{params['ret']}$#{params['acquire_time']}$#{params['auth_code']}$#{params['card_no']}$#{params['notify_time']}$#{params['cust_order_no']}"
144
150
 
145
- checksum == new_checksum
151
+ checksum == checksum_generated
146
152
  end
147
153
 
148
- # Authorize fail response validation
149
- def auth_fail_response_valid? params
154
+ # Authorize fail callback validation
155
+ def auth_fail_callback_valid?(params)
150
156
  params = params.stringify_keys
151
- checksum = params["chk"]
152
- new_checksum = generate_checksum "#{Clt.cocs_hash_base}$#{params['order_amount']}$#{params['send_time']}$#{params['ret']}$#{params['notify_time']}$#{params['cust_order_no']}"
157
+ checksum = params['chk']
158
+ checksum_generated = generate_checksum "#{Clt.cocs_hash_base}$#{params['order_amount']}$#{params['send_time']}$#{params['ret']}$#{params['notify_time']}$#{params['cust_order_no']}"
153
159
 
154
- checksum == new_checksum
160
+ checksum == checksum_generated
155
161
  end
156
162
 
157
163
  private
158
164
 
159
- def request method:, service_url:, data:
165
+ def post_request(service_url:, data:)
160
166
  api_url = URI.parse(service_url)
161
167
  response = Net::HTTP.post_form api_url, data
162
168
 
@@ -165,14 +171,14 @@ module Clt
165
171
  begin
166
172
  result = JSON.parse(response.body)
167
173
  rescue
168
- result = { "status" => "ERROR", "msg" => "Response parsing failed", "response" => response.body }
174
+ result = { 'status' => 'ERROR', 'msg' => 'Response parsing failed', 'response' => response.body }
169
175
  end
170
176
 
171
177
  result
172
178
  when Net::HTTPClientError, Net::HTTPInternalServerError
173
179
  raise Net::HTTPError, response.message
174
180
  else
175
- raise Net::HTTPError, "Unexpected HTTP response"
181
+ raise Net::HTTPError, 'Unexpected HTTP response'
176
182
  end
177
183
  end
178
184
  end
@@ -3,68 +3,65 @@ module Clt
3
3
  include GeneralMethods
4
4
 
5
5
  def initialize
6
- raise ArgumentError, "Please setup cvs_cust_id first" if Clt.cvs_cust_id.nil?
7
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cvs_cust_id, data: "String") unless Clt.cvs_cust_id.is_a? String
8
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :cvs_cust_id) if Clt.cvs_cust_id.empty?
6
+ raise ArgumentError, 'Please setup cvs_cust_id first' if Clt.cvs_cust_id.nil?
7
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cvs_cust_id, data: :String) unless Clt.cvs_cust_id.is_a? String
8
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :cvs_cust_id) if Clt.cvs_cust_id.empty?
9
9
 
10
- raise ArgumentError, "Please setup cvs_cust_password first" if Clt.cvs_cust_password.nil?
11
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cvs_cust_password, data: "String") unless Clt.cvs_cust_password.is_a? String
12
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :cvs_cust_password) if Clt.cvs_cust_password.empty?
10
+ raise ArgumentError, 'Please setup cvs_cust_password first' if Clt.cvs_cust_password.nil?
11
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cvs_cust_password, data: :String) unless Clt.cvs_cust_password.is_a? String
12
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :cvs_cust_password) if Clt.cvs_cust_password.empty?
13
13
 
14
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cvs_default_expire_day, data: "Integer") unless Clt.cvs_default_expire_day.is_a? Integer
15
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cvs_default_expire_day, data: "greater than 0") if Clt.cvs_default_expire_day <= 0
14
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cvs_default_expire_day, data: :Integer) unless Clt.cvs_default_expire_day.is_a? Integer
15
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cvs_default_expire_day, data: 'greater than 0') if Clt.cvs_default_expire_day <= 0
16
16
  end
17
17
 
18
- def order_create params = {}
19
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: "Parameter", data: "Hash") unless params.is_a? Hash
18
+ def order_create(params = {})
19
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :Parameter, data: :Hash) unless params.is_a? Hash
20
20
 
21
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
22
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :service_url, data: "String") unless params[:service_url].is_a? String
23
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
21
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
22
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :service_url, data: :String) unless params[:service_url].is_a? String
23
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
24
24
 
25
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :cust_order_number) if params[:cust_order_number].nil?
26
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :cust_order_number, data: "String") unless params[:cust_order_number].is_a? String
27
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :cust_order_number) if params[:cust_order_number].empty?
25
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :cust_order_number) if params[:cust_order_number].nil?
26
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :cust_order_number, data: :String) unless params[:cust_order_number].is_a? String
27
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :cust_order_number) if params[:cust_order_number].empty?
28
28
 
29
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :order_amount) if params[:order_amount].nil?
30
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :order_amount, data: "Integer") unless params[:order_amount].is_a? Integer
29
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :order_amount) if params[:order_amount].nil?
30
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :order_amount, data: :Integer) unless params[:order_amount].is_a? Integer
31
31
 
32
32
  if params.has_key? :expire_date
33
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :expire_date, data: "String") unless params[:expire_date].is_a? String
34
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :expire_date) if params[:expire_date].empty?
35
- ErrorMessage.raise_argument_error(msg: :wrong_data_format, field: :expire_date) unless /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}\z/.match(params[:expire_date])
33
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :expire_date, data: :String) unless params[:expire_date].is_a? String
34
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :expire_date) if params[:expire_date].empty?
35
+ ErrorMessage.raise_error(msg: :wrong_data_format, field: :expire_date) unless /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}\z/.match(params[:expire_date])
36
36
  end
37
37
 
38
38
  if params.has_key? :payer_name
39
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :payer_name, data: "String") unless params[:payer_name].is_a? String
40
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :payer_name) if params[:payer_name].empty?
39
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :payer_name, data: :String) unless params[:payer_name].is_a? String
41
40
  end
42
41
 
43
42
  if params.has_key? :payer_postcode
44
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :payer_postcode, data: "String") unless params[:payer_postcode].is_a? String
45
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :payer_postcode) if params[:payer_postcode].empty?
43
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :payer_postcode, data: :String) unless params[:payer_postcode].is_a? String
46
44
  end
47
45
 
48
46
  if params.has_key? :payer_address
49
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :payer_address, data: "String") unless params[:payer_address].is_a? String
50
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :payer_address) if params[:payer_address].empty?
47
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :payer_address, data: :String) unless params[:payer_address].is_a? String
51
48
  end
52
49
 
53
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :payer_mobile) if params[:payer_mobile].nil?
54
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :payer_mobile, data: "String") unless params[:payer_mobile].is_a? String
55
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :payer_mobile) if params[:payer_mobile].empty?
50
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :payer_mobile) if params[:payer_mobile].nil?
51
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :payer_mobile, data: :String) unless params[:payer_mobile].is_a? String
52
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :payer_mobile) if params[:payer_mobile].empty?
56
53
 
57
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :payer_email) if params[:payer_email].nil?
58
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :payer_email, data: "String") unless params[:payer_email].is_a? String
59
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :payer_email) if params[:payer_email].empty?
54
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :payer_email) if params[:payer_email].nil?
55
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :payer_email, data: :String) unless params[:payer_email].is_a? String
56
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :payer_email) if params[:payer_email].empty?
60
57
 
61
- expire_date = params.has_key?(:expire_date) ? params[:expire_date] : cvs_default_expire_date
58
+ expire_date = params.has_key?(:expire_date) ? params[:expire_date] : get_cvs_default_expire_date
62
59
 
63
60
  # build xml data
64
- builder = Nokogiri::XML::Builder.new(:encoding => "UTF-8") do
61
+ builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do
65
62
  request {
66
63
  header {
67
- cmd "cvs_order_regiater"
64
+ cmd 'cvs_order_regiater'
68
65
  cust_id Clt.cvs_cust_id
69
66
  cust_password Clt.cvs_cust_password
70
67
  }
@@ -72,39 +69,39 @@ module Clt
72
69
  cust_order_number params[:cust_order_number]
73
70
  order_amount params[:order_amount]
74
71
  expire_date expire_date
75
- payer_name params[:payer_name] if params.has_key? :payer_name
76
- payer_postcode params[:payer_postcode] if params.has_key? :payer_postcode
77
- payer_address params[:payer_address] if params.has_key? :payer_address
72
+ payer_name params[:payer_name]
73
+ payer_postcode params[:payer_postcode]
74
+ payer_address params[:payer_address]
78
75
  payer_mobile params[:payer_mobile]
79
76
  payer_email params[:payer_email]
80
77
  }
81
78
  }
82
79
  end
83
80
 
84
- request(method: "POST", service_url: params[:service_url], data: builder.to_xml)
81
+ post_request(service_url: params[:service_url], data: builder.to_xml)
85
82
  end
86
83
 
87
- def order_query params = {}
88
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: "Parameter", data: "Hash") unless params.is_a? Hash
84
+ def order_query(params = {})
85
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :Parameter, data: :Hash) unless params.is_a? Hash
89
86
 
90
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
91
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :service_url, data: "String") unless params[:service_url].is_a? String
92
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
87
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :service_url) if params[:service_url].nil?
88
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :service_url, data: :String) unless params[:service_url].is_a? String
89
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :service_url) if params[:service_url].empty?
93
90
 
94
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :process_code_update_time_begin) if params[:process_code_update_time_begin].nil?
95
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :process_code_update_time_begin, data: "String") unless params[:process_code_update_time_begin].is_a? String
96
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :process_code_update_time_begin) if params[:process_code_update_time_begin].empty?
97
- ErrorMessage.raise_argument_error(msg: :wrong_data_format, field: :process_code_update_time_begin) unless /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}\z/.match(params[:process_code_update_time_begin])
91
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :process_code_update_time_begin) if params[:process_code_update_time_begin].nil?
92
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :process_code_update_time_begin, data: :String) unless params[:process_code_update_time_begin].is_a? String
93
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :process_code_update_time_begin) if params[:process_code_update_time_begin].empty?
94
+ ErrorMessage.raise_error(msg: :wrong_data_format, field: :process_code_update_time_begin) unless /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}\z/.match(params[:process_code_update_time_begin])
98
95
 
99
- ErrorMessage.raise_argument_error(msg: :missing_parameter, field: :process_code_update_time_end) if params[:process_code_update_time_end].nil?
100
- ErrorMessage.raise_argument_error(msg: :parameter_should_be, field: :process_code_update_time_end, data: "String") unless params[:process_code_update_time_end].is_a? String
101
- ErrorMessage.raise_argument_error(msg: :cannot_be_empty, field: :process_code_update_time_end) if params[:process_code_update_time_end].empty?
102
- ErrorMessage.raise_argument_error(msg: :wrong_data_format, field: :process_code_update_time_end) unless /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}\z/.match(params[:process_code_update_time_end])
96
+ ErrorMessage.raise_error(msg: :missing_parameter, field: :process_code_update_time_end) if params[:process_code_update_time_end].nil?
97
+ ErrorMessage.raise_error(msg: :parameter_should_be, field: :process_code_update_time_end, data: :String) unless params[:process_code_update_time_end].is_a? String
98
+ ErrorMessage.raise_error(msg: :cannot_be_empty, field: :process_code_update_time_end) if params[:process_code_update_time_end].empty?
99
+ ErrorMessage.raise_error(msg: :wrong_data_format, field: :process_code_update_time_end) unless /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}\z/.match(params[:process_code_update_time_end])
103
100
 
104
- builder = Nokogiri::XML::Builder.new(:encoding => "UTF-8") do
101
+ builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do
105
102
  request {
106
103
  header {
107
- cmd "cvs_order_query"
104
+ cmd 'cvs_order_query'
108
105
  cust_id Clt.cvs_cust_id
109
106
  cust_password Clt.cvs_cust_password
110
107
  }
@@ -115,7 +112,7 @@ module Clt
115
112
  }
116
113
  end
117
114
 
118
- request(method: "POST", service_url: params[:service_url], data: builder.to_xml)
115
+ post_request(service_url: params[:service_url], data: builder.to_xml)
119
116
  end
120
117
 
121
118
  private
@@ -124,35 +121,35 @@ module Clt
124
121
  seconds_in_a_day = 60 * 60 * 24
125
122
  offset = seconds_in_a_day * Clt.cvs_default_expire_day
126
123
 
127
- (Time.now + offset).iso8601
124
+ # get and converts time to local time
125
+ current_time = Time.now.localtime('+08:00')
126
+
127
+ (current_time + offset).iso8601
128
128
  end
129
129
 
130
- def request method: "POST", service_url:, data:
130
+ def post_request(service_url:, data:)
131
131
  api_url = URI.parse(service_url)
132
132
 
133
133
  http = Net::HTTP.new(api_url.host, api_url.port)
134
- http.use_ssl = true if api_url.scheme == "https"
135
-
136
- req = Net::HTTP::Post.new(api_url.request_uri, initheader = { "Content-Type" => "text/xml" })
137
- req.body = data
134
+ http.use_ssl = true if api_url.scheme == 'https'
138
135
 
139
- response = http.request(req)
136
+ response = http.post(api_url.request_uri, data, { 'Content-Type' => 'text/xml' })
140
137
 
141
138
  case response
142
139
  when Net::HTTPOK
143
- parser = Nori.new(:advanced_typecasting => false)
140
+ parser = Nori.new(advanced_typecasting: false)
144
141
 
145
142
  begin
146
- response_hash = parser.parse(response.body)["response"]
143
+ response_hash = parser.parse(response.body)['response']
147
144
  rescue
148
- response_hash = { "status" => "ERROR", "msg" => "Response parsing failed", "response" => response.body }
145
+ response_hash = { 'status' => 'ERROR', 'msg' => 'Response parsing failed', 'response' => response.body }
149
146
  end
150
147
 
151
148
  response_hash
152
149
  when Net::HTTPClientError, Net::HTTPInternalServerError
153
150
  raise Net::HTTPError, response.message
154
151
  else
155
- raise Net::HTTPError, "Unexpected HTTP response"
152
+ raise Net::HTTPError, 'Unexpected HTTP response'
156
153
  end
157
154
  end
158
155
  end
@@ -1,6 +1,6 @@
1
1
  module Clt
2
2
  class ErrorMessage
3
- def self.raise_argument_error params
3
+ def self.raise_error(params)
4
4
  message = nil
5
5
 
6
6
  case params[:msg]
@@ -11,7 +11,7 @@ module Clt
11
11
  when :data_length_too_short
12
12
  message = "The length of #{params[:field]} is too short"
13
13
  when :wrong_data_format
14
- message = "The format for #{params[:field]} is wrong"
14
+ message = "The format of #{params[:field]} is wrong"
15
15
  when :cannot_be_empty
16
16
  message = "#{params[:field]} cannot be empty"
17
17
  end
@@ -1,15 +1,15 @@
1
1
  module Clt
2
2
  module GeneralMethods
3
- # APN(Active Payment Notification) response validation
4
- def apn_response_valid? params
3
+ # APN(Active Payment Notification) notice validation
4
+ def apn_notice_valid?(params)
5
5
  params = params.stringify_keys
6
- checksum = params["checksum"]
7
- new_checksum = generate_checksum "#{params['api_id']}:#{params['trans_id']}:#{params['amount']}:#{params['status']}:#{params['nonce']}"
6
+ checksum = params['checksum']
7
+ checksum_generated = generate_checksum "#{params['api_id']}:#{params['trans_id']}:#{params['amount']}:#{params['status']}:#{params['nonce']}"
8
8
 
9
- checksum == new_checksum
9
+ checksum == checksum_generated
10
10
  end
11
11
 
12
- def generate_checksum data
12
+ def generate_checksum(data)
13
13
  Digest::MD5.hexdigest data
14
14
  end
15
15
  end
@@ -1,3 +1,3 @@
1
1
  module Clt
2
- VERSION = "2.0.0"
2
+ VERSION = "3.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clt-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Calvert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-08 00:00:00.000000000 Z
11
+ date: 2017-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '1.7'
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
- version: '1.6'
26
+ version: '1.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nori
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.12'
47
+ version: '1.13'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.12'
54
+ version: '1.13'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '11.1'
61
+ version: '12.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '11.1'
68
+ version: '12.0'
69
69
  description: ''
70
70
  email:
71
71
  - ''
@@ -111,8 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  version: '0'
112
112
  requirements: []
113
113
  rubyforge_project:
114
- rubygems_version: 2.5.1
114
+ rubygems_version: 2.5.2
115
115
  signing_key:
116
116
  specification_version: 4
117
- summary: Basic API client for President Collect Payment Service.
117
+ summary: Basic API client for President Collect Payment Service
118
118
  test_files: []