clt-sdk 2.0.0 → 3.0.0

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
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: []