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 +4 -4
- data/README.md +97 -1
- data/lib/ccb_connect_client/models/base_response.rb +2 -2
- data/lib/ccb_connect_client/models/payment_details_query_request.rb +0 -4
- data/lib/ccb_connect_client/models/payment_details_query_response.rb +2 -10
- data/lib/ccb_connect_client/models/refund_request.rb +0 -4
- data/lib/ccb_connect_client/models/refund_response.rb +2 -6
- data/lib/ccb_connect_client/service.rb +7 -0
- data/lib/ccb_connect_client/version.rb +1 -1
- data/spec/ccb_connect_client_service_spec.rb +13 -16
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67e77e2c3648af2da24320c1622b623913d8edbd
|
4
|
+
data.tar.gz: 0d259c41a5803e84d973c053a3f1cf62cb419f54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7359a9523a0d2331a96e54e4cbb9968a9bbbc2536ac820729eb1dbb2b07bc6c2ae00bf535e884aed680aeffc1dc93f300e6c8689dbadf14e2a3ce7b81ebd1d9e
|
7
|
+
data.tar.gz: '095549392561eb2a53b80302b432868b31e3dc908193d6db84fc7b8a50d2133e25d2b4fda24b3e1c85aa389852cc8265ff46607ef96a0faf71aaf48bc05f18d7'
|
data/README.md
CHANGED
@@ -1 +1,97 @@
|
|
1
|
-
ccb
|
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
|
-
|
16
|
+
if CcbConnectClient.debug_mode && CcbConnectClient.logger
|
17
|
+
CcbConnectClient.logger.debug("BaseResponse response : #{response.inspect}")
|
18
18
|
end
|
19
19
|
response
|
20
20
|
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
|
-
|
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
|
@@ -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
|
-
|
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,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
|