ccb_connect_client 0.1.4 → 0.1.5

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: 31b10d941b84128279c3814498c820c7e326a64a
4
- data.tar.gz: 29281c41a38c4c3f80250b2427f704f73b628427
3
+ metadata.gz: 67e77e2c3648af2da24320c1622b623913d8edbd
4
+ data.tar.gz: 0d259c41a5803e84d973c053a3f1cf62cb419f54
5
5
  SHA512:
6
- metadata.gz: 13fc72d0b18b2f3e127f57e22588f53d7ac4778b39ca2e819c43a1b93f4c8615d05ef44fcb92f791402fbf2675aed368859b4013446ebb27b6d3dbf599fd72c9
7
- data.tar.gz: 7bfc9d379a36a6cf8f0035dd895c257bcbefff34993c9aa5b0a6421d87116910227f4339c2bd53576d92f82d5eaf23c06b14f5d3060d7f56aec89e365b0d44a5
6
+ metadata.gz: 7359a9523a0d2331a96e54e4cbb9968a9bbbc2536ac820729eb1dbb2b07bc6c2ae00bf535e884aed680aeffc1dc93f300e6c8689dbadf14e2a3ce7b81ebd1d9e
7
+ data.tar.gz: '095549392561eb2a53b80302b432868b31e3dc908193d6db84fc7b8a50d2133e25d2b4fda24b3e1c85aa389852cc8265ff46607ef96a0faf71aaf48bc05f18d7'
data/README.md CHANGED
@@ -1 +1,97 @@
1
- ccb payment connect client
1
+ ccb-connect-client
2
+ =========
3
+
4
+ 建行外联平台 Ruby Gem, 非官方,provided by 珠海小可乐科技。
5
+
6
+ Table of Contents
7
+ -----------------
8
+ * [Installation](#installation)
9
+ * [Quick Start](#quick-start)
10
+ * [Library Overview](#library-overview)
11
+ * [License](#license)
12
+ * [Contact](#contact)
13
+
14
+
15
+ Installation
16
+ ------------
17
+
18
+ You may get the latest stable version from [Rubygems]:
19
+
20
+ $ gem install ccb-connect-client
21
+
22
+ For bundler:
23
+
24
+ ~~~ ruby
25
+ gem 'ccb-connect-client'
26
+ ~~~
27
+
28
+
29
+ Quick Start
30
+ -----------
31
+
32
+ ~~~ ruby
33
+ require 'rubygems'
34
+ require 'ccb-connect-client'
35
+
36
+ # Basic setup, could be done in a rails initializer
37
+ CcbConnectClient.server = 'your CCB_EBSClient address'
38
+ CcbConnectClient.cust_id = 'your cust_id'
39
+ CcbConnectClient.user_id = 'your user_id'
40
+ CcbConnectClient.password = 'your password'
41
+ CcbConnectClient.language = 'your language, Chinese is CN '
42
+
43
+ # Refund example
44
+ request = CcbConnectClient::RefundRequest.new
45
+ request.money = 0.01
46
+ request.order = 'L238201903071717YKIHNW'
47
+ CcbConnectClient::Service.refund request
48
+
49
+ # PaymentDetailsQuery example
50
+ request = CcbConnectClient::PaymentDetailsQueryRequest.new
51
+ # When query by order, the time period does not work.
52
+ # request.order = 'L238201903071717YKIHNW'
53
+ request.start_day = '20190306'
54
+ request.start_hour = '00'
55
+ request.start_min = '00'
56
+ request.end_day = '20190312'
57
+ request.end_hour = '14'
58
+ request.end_min = '20'
59
+ request.kind = '1'
60
+ request.dexcel = '1'
61
+ request.norderby = '1'
62
+ request.page = '1'
63
+ request.status = '3'
64
+ response = CcbConnectClient::Service.payment_details_query request
65
+ ~~~
66
+
67
+
68
+ Library Overview
69
+ ----------------
70
+
71
+ ### Connecting ###
72
+
73
+ TLS/SSL is enabled by default:
74
+
75
+ ~~~ ruby
76
+ Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
77
+ ~~~
78
+
79
+ License
80
+ -------
81
+
82
+ The ccb-connect-client ruby gem is licensed under the terms of the MIT license.
83
+ See the file LICENSE for details.
84
+
85
+
86
+ Contact
87
+ -------
88
+
89
+ * Author: LCola
90
+ * Email: developer@lcola.cn
91
+ * Home Page: [LCola]
92
+
93
+
94
+
95
+ [LCola]: https://www.lcola.cn/
96
+ [Rubygems]: http://rubygems.org/
97
+ [Bundler]: http://bundler.io/
@@ -13,8 +13,8 @@ module CcbConnectClient
13
13
  response.return_code = doc.elements["TX/RETURN_CODE"].text
14
14
  response.return_msg = doc.elements["TX/RETURN_MSG"].text
15
15
 
16
- if CcbConnectClient.debug_mode
17
- puts "BaseResponse response : #{response.inspect}"
16
+ if CcbConnectClient.debug_mode && CcbConnectClient.logger
17
+ CcbConnectClient.logger.debug("BaseResponse response : #{response.inspect}")
18
18
  end
19
19
  response
20
20
  end
@@ -41,10 +41,6 @@ module CcbConnectClient
41
41
  }
42
42
  }
43
43
  target = xml.target!
44
- if CcbConnectClient.debug_mode
45
- puts "RefundRequest xml : #{target}"
46
- end
47
- target
48
44
  end
49
45
  end
50
46
  end
@@ -14,13 +14,6 @@ module CcbConnectClient
14
14
  def from_xml xml
15
15
  response = PaymentDetailsQueryResponse.new
16
16
  doc = Document.new(xml)
17
- # logger = Logger.new('foo.log', 'monthly')
18
- # logger.datetime_format = '%Y-%m-%d %H:%M:%S'
19
-
20
- if CcbConnectClient.debug_mode
21
- # logger.info("PaymentDetailsQueryResponse response xml: #{doc}")
22
- puts "PaymentDetailsQueryResponse response xml: #{doc}"
23
- end
24
17
 
25
18
  response.request_sn = doc.elements["TX/REQUEST_SN"].text
26
19
  response.cust_id = doc.elements["TX/CUST_ID"].text
@@ -65,9 +58,8 @@ module CcbConnectClient
65
58
  response.list.push(response_element)
66
59
  }
67
60
 
68
- if CcbConnectClient.debug_mode
69
- # logger.info("PaymentDetailsQueryResponse response xml: #{doc}")
70
- puts "PaymentDetailsQueryResponse response object: #{response.inspect}"
61
+ if CcbConnectClient.debug_mode && CcbConnectClient.logger
62
+ CcbConnectClient.logger.debug("PaymentDetailsQueryResponse response object : #{response.inspect}")
71
63
  end
72
64
  response
73
65
  end
@@ -28,10 +28,6 @@ module CcbConnectClient
28
28
  xml.SIGN_INFO "#{@sign_info}"
29
29
  }
30
30
  target = xml.target!
31
- if CcbConnectClient.debug_mode
32
- puts "RefundRequest xml : #{target}"
33
- end
34
- target
35
31
  end
36
32
  end
37
33
  end
@@ -14,10 +14,6 @@ module CcbConnectClient
14
14
  response = RefundResponse.new
15
15
  doc = Document.new(xml)
16
16
 
17
- if CcbConnectClient.debug_mode
18
- puts "RefundResponse response xml: #{doc}"
19
- end
20
-
21
17
  response.request_sn = doc.elements["TX/REQUEST_SN"].text
22
18
  response.cust_id = doc.elements["TX/CUST_ID"].text
23
19
  response.tx_code = doc.elements["TX/TX_CODE"].text
@@ -29,8 +25,8 @@ module CcbConnectClient
29
25
  response.pay_amount = doc.elements["TX/TX_INFO/PAY_AMOUNT"].text
30
26
  response.amount = doc.elements["TX/TX_INFO/AMOUNT"].text
31
27
 
32
- if CcbConnectClient.debug_mode
33
- puts "RefundResponse response object: #{response.inspect}"
28
+ if CcbConnectClient.debug_mode && CcbConnectClient.logger
29
+ CcbConnectClient.logger.debug("RefundResponse response object : #{response.inspect}")
34
30
  end
35
31
  response
36
32
  end
@@ -40,9 +40,16 @@ module CcbConnectClient
40
40
  # We don't accpet gzip encoding since the http.request method will raise the EOF error
41
41
  req["Accept-Encoding"] = "identity"
42
42
  res = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
43
+ if CcbConnectClient.debug_mode && CcbConnectClient.logger
44
+ CcbConnectClient.logger.debug("CCB Connect requset xml : #{xml}")
45
+ end
43
46
  req.set_form_data('requestXml' => xml)
44
47
  http.request req
45
48
  end
49
+ if CcbConnectClient.debug_mode && CcbConnectClient.logger
50
+ CcbConnectClient.logger.debug("CCB Connect response: #{res.body}")
51
+ end
52
+ res
46
53
  end
47
54
 
48
55
  end
@@ -1,3 +1,3 @@
1
1
  module CcbConnectClient
2
- VERSION = '0.1.4'.freeze
2
+ VERSION = '0.1.5'.freeze
3
3
  end
@@ -1,33 +1,31 @@
1
1
  require 'spec_helper'
2
+ require 'yaml'
3
+ require 'logger'
2
4
 
3
5
  describe CcbConnectClient::Service do
4
6
 
7
+ before do
8
+ server_info = YAML.load_file('./spec/fixtures/server_info.yml')
9
+ CcbConnectClient.server = server_info['server']
10
+ CcbConnectClient.cust_id = server_info['cust_id']
11
+ CcbConnectClient.user_id = server_info['user_id']
12
+ CcbConnectClient.password = server_info['password']
13
+ CcbConnectClient.language = server_info['language']
14
+ CcbConnectClient.logger = Logger.new STDOUT
15
+ end
16
+
17
+
5
18
  it 'RefundRequest should be successful' do
6
- file_lines = File.open("./spec/fixtures/Adminfile.txt","r").readlines
7
- CcbConnectClient.server = file_lines[0].gsub("\n", '').split(pattern='\'')[1]
8
- CcbConnectClient.cust_id = file_lines[1].gsub("\n", '').split(pattern='\'')[1]
9
- CcbConnectClient.user_id = file_lines[2].gsub("\n", '').split(pattern='\'')[1]
10
- CcbConnectClient.password = file_lines[3].gsub("\n", '').split(pattern='\'')[1]
11
- CcbConnectClient.language = file_lines[4].split(pattern='\'')[1]
12
19
  request = CcbConnectClient::RefundRequest.new
13
20
  request.money = 0.01
14
21
  request.order = 'L238201903071717YKIHNW'
15
22
  response = CcbConnectClient::Service.refund request
16
- p response
17
23
  expect(response).to be_instance_of(CcbConnectClient::RefundResponse)
18
24
  end
19
25
 
20
26
  it 'PaymentDetailsQueryRequest should be successful' do
21
- file_lines = File.open("./spec/fixtures/Adminfile.txt","r").readlines
22
- CcbConnectClient.server = file_lines[0].gsub("\n", '').split(pattern='\'')[1]
23
- CcbConnectClient.cust_id = file_lines[1].gsub("\n", '').split(pattern='\'')[1]
24
- CcbConnectClient.user_id = file_lines[2].gsub("\n", '').split(pattern='\'')[1]
25
- CcbConnectClient.password = file_lines[3].gsub("\n", '').split(pattern='\'')[1]
26
- CcbConnectClient.language = file_lines[4].split(pattern='\'')[1]
27
27
  request = CcbConnectClient::PaymentDetailsQueryRequest.new
28
28
  # request.money = 7.01
29
- # :start_day, :start_hour, :start_min, :end_day, :end_hour, :end_min, :kind,
30
- # :account, :dexcel, :money, :norderby, :page, :pos_code, :status, :mrch_no
31
29
  # request.order = 'L238201903071717YKIHNW'
32
30
  request.start_day = '20190306'
33
31
  request.start_hour = '00'
@@ -45,7 +43,6 @@ describe CcbConnectClient::Service do
45
43
  request.status = '3'
46
44
  # request.mrch_no = '20190306'
47
45
  response = CcbConnectClient::Service.payment_details_query request
48
- p response
49
46
  expect(response).to be_instance_of(CcbConnectClient::PaymentDetailsQueryResponse)
50
47
  end
51
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ccb_connect_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - LCola