rock_fintech 0.1.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.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +55 -0
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/Gemfile +6 -0
  5. data/Gemfile.lock +63 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +43 -0
  8. data/Rakefile +12 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/lib/rock_fintech/api/account/account_balance.rb +40 -0
  12. data/lib/rock_fintech/api/account/find_account_by_id.rb +42 -0
  13. data/lib/rock_fintech/api/account/find_account_by_mobile.rb +41 -0
  14. data/lib/rock_fintech/api/account/unbind_bank_card.rb +46 -0
  15. data/lib/rock_fintech/api/api_helper.rb +53 -0
  16. data/lib/rock_fintech/api/asset/.gitkeep +0 -0
  17. data/lib/rock_fintech/api/asset/asset_query.rb +48 -0
  18. data/lib/rock_fintech/api/asset/assets_enroll.rb +62 -0
  19. data/lib/rock_fintech/api/asset/assets_revoke.rb +48 -0
  20. data/lib/rock_fintech/api/batch/.gitkeep +0 -0
  21. data/lib/rock_fintech/api/batch/batch_end_credit_b.rb +59 -0
  22. data/lib/rock_fintech/api/batch/batch_payment_b.rb +76 -0
  23. data/lib/rock_fintech/api/batch/batch_repayment_b.rb +78 -0
  24. data/lib/rock_fintech/api/enterprise/.gitkeep +0 -0
  25. data/lib/rock_fintech/api/money/bank_recharge.rb +50 -0
  26. data/lib/rock_fintech/api/money/coupon_recharge.rb +40 -0
  27. data/lib/rock_fintech/api/money/coupon_withdraw.rb +40 -0
  28. data/lib/rock_fintech/api/platform/.gitkeep +0 -0
  29. data/lib/rock_fintech/api/query/.gitkeep +0 -0
  30. data/lib/rock_fintech/api/trade/.gitkeep +0 -0
  31. data/lib/rock_fintech/api/trade/auto_bid_apply.rb +61 -0
  32. data/lib/rock_fintech/api/trade/revoke_auto_bid.rb +44 -0
  33. data/lib/rock_fintech/client.rb +45 -0
  34. data/lib/rock_fintech/encrypt/rsa.rb +29 -0
  35. data/lib/rock_fintech/extensions.rb +7 -0
  36. data/lib/rock_fintech/form/account/bind_bank_card_p.rb +43 -0
  37. data/lib/rock_fintech/form/account/create_account_p.rb +52 -0
  38. data/lib/rock_fintech/form/account/set_password_p.rb +52 -0
  39. data/lib/rock_fintech/form/asset/.gitkeep +0 -0
  40. data/lib/rock_fintech/form/batch/.gitkeep +0 -0
  41. data/lib/rock_fintech/form/enterprise/.gitkeep +0 -0
  42. data/lib/rock_fintech/form/money/recharge_p.rb +59 -0
  43. data/lib/rock_fintech/form/money/sign_borrower_p.rb +48 -0
  44. data/lib/rock_fintech/form/money/sign_transfer_p.rb +44 -0
  45. data/lib/rock_fintech/form/money/withdraw_p.rb +58 -0
  46. data/lib/rock_fintech/form/platform/.gitkeep +0 -0
  47. data/lib/rock_fintech/form/query/.gitkeep +0 -0
  48. data/lib/rock_fintech/form/trade/.gitkeep +0 -0
  49. data/lib/rock_fintech/form/trade/bid_apply_p.rb +58 -0
  50. data/lib/rock_fintech/form/trade/sign_auto_bid_p.rb +46 -0
  51. data/lib/rock_fintech/http/error_code/account.rb +34 -0
  52. data/lib/rock_fintech/http/error_code/asset.rb +20 -0
  53. data/lib/rock_fintech/http/error_code/batch.rb +20 -0
  54. data/lib/rock_fintech/http/error_code/money.rb +37 -0
  55. data/lib/rock_fintech/http/error_code/trade.rb +23 -0
  56. data/lib/rock_fintech/http/request.rb +103 -0
  57. data/lib/rock_fintech/http/response.rb +54 -0
  58. data/lib/rock_fintech/railtie.rb +7 -0
  59. data/lib/rock_fintech/sign/md5.rb +18 -0
  60. data/lib/rock_fintech/utils.rb +75 -0
  61. data/lib/rock_fintech/version.rb +3 -0
  62. data/lib/rock_fintech.rb +51 -0
  63. data/rock_fintech.gemspec +41 -0
  64. metadata +223 -0
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+
3
+ module RockFintech
4
+ module Http
5
+ module ErrorCode
6
+ def self.sign_auto_bid_p
7
+ @_sign_auto_bid ||= %w[]
8
+ end
9
+
10
+ def self.auto_bid_apply
11
+ @_auto_bid_apply ||= %w[]
12
+ end
13
+
14
+ def self.revoke_auto_bid
15
+ @_revoke_auto_bid ||= %w[]
16
+ end
17
+
18
+ def self.bid_apply_p
19
+ @_bid_apply_p ||= []
20
+ end
21
+ end # module ErrorCode
22
+ end # module http
23
+ end # module rockfintech
@@ -0,0 +1,103 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Http
4
+
5
+ class Request
6
+ SIGN_TYPE = 'MD5'
7
+ ENCODE = 'UTF-8'
8
+ VERSION = '2.0.0'
9
+
10
+ def initialize(params, config, service, version=VERSION)
11
+ @params = params
12
+ @config = config
13
+ @uri = @config[:uri]
14
+ @service = service
15
+ @version = version || VERSION
16
+ @response = nil
17
+ end
18
+
19
+ def post
20
+ RockFintech.logger.info "#{identifier} 请求内容为:\n#{@params}\n"
21
+ # 1. api params
22
+
23
+ # 2. sign
24
+ sign_body = {
25
+ service: @service,
26
+ timestamp: Time.now.to_i,
27
+ uuid: Utils.get_uuid,
28
+ sign_type: SIGN_TYPE,
29
+ encode: ENCODE,
30
+ version: @version,
31
+ }.merge(@params)
32
+ sign_str = sign(sign_body)
33
+
34
+ # 3. merge sign
35
+ post_body = sign_body.merge({sign: sign_str})
36
+
37
+ # 4. encrypt
38
+ request_data = Encrypt::RSA.encrypt(post_body.to_json, @config[:public_key])
39
+
40
+ # 5. send http request
41
+ header = {
42
+ 'rft-key' => @config[:rft_key],
43
+ 'rft-token' => @config[:rft_token],
44
+ 'rft-org' => @config[:rft_org],
45
+ }
46
+ RockFintech.logger.info "#{identifier} 发送的报文为:\n#{request_data}\n"
47
+ http_response = RestClient.post(@uri, request_data, header)
48
+ RockFintech.logger.info "#{identifier} 返回的报文为:\n#{http_response.body.force_encoding('utf-8')}\n"
49
+
50
+ res = decode_body(http_response.body)
51
+ RockFintech.logger.info "#{identifier} 返回的数据为:\n#{res}\n"
52
+
53
+ @response = RockFintech::Http::Response.new(service: @service,
54
+ flow_id: @params[:out_serial_no],
55
+ http_response: http_response,
56
+ raw_body: http_response.body,
57
+ data: res,
58
+ data_valid: verify_sign(res))
59
+ end
60
+
61
+ def identifier
62
+ "[#{@service} - #{@params[:out_serial_no]}] "
63
+ end
64
+
65
+ private
66
+
67
+ def sign(data)
68
+ serialize_str = serialize(data)
69
+ Sign::MD5.sign(serialize_str, Sign::MD5.sign(@config[:rft_key], @config[:rft_secret]))
70
+ end
71
+
72
+ def serialize(data)
73
+ data = Hash[data.sort] # key 按照 alphabet 排序
74
+
75
+ data.each{ |k, v|
76
+ if v.kind_of?(Hash)
77
+ data[k] = serialize(v)
78
+ elsif v.kind_of?(Array)
79
+ if v[0].kind_of?(Hash)
80
+ v.each_with_index{ |ele, index|
81
+ v[index] = sign(ele)
82
+ }
83
+ else
84
+ data[k] = v.join('&')
85
+ end
86
+ end
87
+ }
88
+
89
+ data.map{|k,v| "#{k}=#{v}"}.join('&')
90
+ end
91
+
92
+ def decode_body(body)
93
+ result_str = Encrypt::RSA.decrypt(body, @config[:private_key])
94
+ Utils.symbolize_keys(JSON.parse(result_str))
95
+ end
96
+
97
+ def verify_sign(body)
98
+ sign_str = body.delete(:sign)
99
+ sign(body) == sign_str
100
+ end
101
+ end # end of class
102
+ end
103
+ end
@@ -0,0 +1,54 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Http
4
+
5
+ class Response
6
+ attr_accessor :service, :flow_id
7
+ attr_accessor :http_response, :raw_body
8
+ attr_accessor :data, :data_valid
9
+
10
+ def initialize(params)
11
+ self.data_valid = true
12
+
13
+ params.each do |key, value|
14
+ instance_variable_set("@#{key}", value)
15
+ end
16
+
17
+ self.data = {} if self.data.nil? # 默认一定要有
18
+
19
+ unless self.data_valid
20
+ self.data[:errorCode] = 'sign_valid_fail'
21
+ self.data[:errorMsg] = '数据签名错误'
22
+ end
23
+ end
24
+
25
+ def [] key
26
+ instance_variable_get("#{key}")
27
+ end
28
+
29
+ def to_s
30
+ arr = ["{"]
31
+ self.instance_variables.map{ |value|
32
+ arr << "\t#{value.to_s} => #{self[value.to_sym]}"
33
+ }
34
+ arr << ["}"]
35
+ arr.join("\n")
36
+ end
37
+
38
+ def http_success?
39
+ http_response && http_response.is_a?(Net::HTTPSuccess)
40
+ end
41
+
42
+ def http_fail?
43
+ # 而 400 错误一般都是地址不存在或者没有权限,都当成错误处理
44
+ http_response && http_response.code.to_s == '404'
45
+ end
46
+
47
+ def http_pending?
48
+ # nil 的时候是超时,非 404 的其他错误都是 pending
49
+ http_response.nil? || (!http_success? && !http_fail?)
50
+ end
51
+ end
52
+
53
+ end
54
+ end
@@ -0,0 +1,7 @@
1
+ module RockFintech
2
+ class Railtie < ::Rails::Railtie
3
+ initializer "RockFintech.logger" do
4
+ RockFintech.logger = Rails.logger
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,18 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Sign
4
+ module MD5
5
+
6
+ def self.sign(content, key)
7
+ md5 = Digest::MD5.new
8
+ md5 << (content + key)
9
+ md5.hexdigest
10
+ end
11
+
12
+ def self.verify?(content, key, sign_str)
13
+ sign(content, key) == sign_str
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,75 @@
1
+ # coding: utf-8
2
+
3
+ # 通用工具类方法
4
+
5
+ module RockFintech
6
+ module Utils
7
+
8
+ # 把 hash 中的 key,都转化为 symbol 类型
9
+ #
10
+ # @param hash [Hash] 需要更改的 hash
11
+ # @return [Hash] 更改后的 hash
12
+ def self.symbolize_keys(hash)
13
+ new_hash = {}
14
+ hash.each do |key, value|
15
+ new_hash[(key.to_sym rescue key) || key] = value
16
+ end
17
+ new_hash
18
+ end
19
+
20
+ def self.get_uuid(time=Time.now.to_i)
21
+ machine_id = Digest::MD5.digest(::Mac.addr).unpack("N")[0]
22
+ process_id = Process.pid % 0xFFFF
23
+
24
+ @uuid_counter ||= 0
25
+ @uuid_counter += 1
26
+ count = (@uuid_counter) % 0xFFFFFF
27
+
28
+ uid = [ time, machine_id, process_id, count << 8 ].pack("N NX lXX NX").unpack("H*")[0].force_encoding('UTF-8')
29
+
30
+ return 'uuid' + uid
31
+ end
32
+
33
+ # 通过时间,返回唯一一个24位flow id(支持分布)
34
+ # 同一秒,同一台机器,同一个进程,最多可以产生 16777214 个不一样的订单号
35
+ #
36
+ # @example
37
+ # JytPay::Utils.gen_flow_id
38
+ #
39
+ # @param time [ Integer ] 时间(默认是 now)
40
+ # @return [ String ]
41
+ def self.gen_flow_id(time=Time.now.to_i)
42
+ machine_id = Digest::MD5.digest(::Mac.addr).unpack("N")[0]
43
+ process_id = Process.pid % 0xFFFF
44
+
45
+ @counter ||= 0
46
+ @counter += 1
47
+ count = (@counter) % 0xFFFFFF
48
+
49
+ return [ time, machine_id, process_id, count << 8 ].pack("N NX lXX NX").unpack("H*")[0].force_encoding('UTF-8')
50
+ end
51
+
52
+ # 随机产生 size 位字符串(大小写,数字组成)
53
+ # @param size [Int] 需要的位数,默认 16 位
54
+ # @return [String] 随机字符串
55
+ def self.random_key(size=16)
56
+ ((0..9).to_a + ('a'..'z').to_a + ('A'..'Z').to_a).sample(size).join()
57
+ end
58
+
59
+ # api 通用返回数据结构
60
+ # @param request_params [Object] 请求参数
61
+ # @param response [Object] 响应对象
62
+ # @return [Object]
63
+ def self.api_result(request_params, response)
64
+ {
65
+ result: 'P', # 默认
66
+ request_params: request_params,
67
+ response: response,
68
+ flow_id: response.nil? ? nil : response.flow_id,
69
+ code: response.nil? ? nil : response.data[:code],
70
+ msg: response.nil? ? nil : response.data[:msg],
71
+ data: response.nil? ? nil : response.data,
72
+ }
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,3 @@
1
+ module RockFintech
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,51 @@
1
+ # coding: utf-8
2
+ require "json"
3
+ require "openssl"
4
+ require "base64"
5
+ require 'macaddr'
6
+ require 'byebug'
7
+ require 'logger'
8
+ require 'bigdecimal'
9
+ require 'bigdecimal/util'
10
+ require 'rest-client'
11
+
12
+ require "rock_fintech/version"
13
+
14
+ require "rock_fintech/version"
15
+ require "rock_fintech/utils"
16
+ require "rock_fintech/extensions"
17
+ require "rock_fintech/sign/md5"
18
+ require "rock_fintech/encrypt/rsa"
19
+ require "rock_fintech/http/request"
20
+ require "rock_fintech/http/response"
21
+
22
+ # 自动加载所有 api
23
+ Dir["#{File.dirname(__FILE__)}/rock_fintech/api/**/*.rb"].each { |file| require file }
24
+ # 自动加载所有 form
25
+ Dir["#{File.dirname(__FILE__)}/rock_fintech/form/**/*.rb"].each { |file| require file }
26
+ # 自动加载所有 http error code
27
+ Dir["#{File.dirname(__FILE__)}/rock_fintech/http/error_code/**/*.rb"].each { |file| require file }
28
+
29
+ require "rock_fintech/client"
30
+
31
+ module RockFintech
32
+
33
+ class << self
34
+ def logger
35
+ @logger ||= default_logger
36
+ end
37
+
38
+ def default_logger
39
+ _logger = Logger.new(STDOUT)
40
+ _logger.level = Logger::INFO
41
+ _logger
42
+ end
43
+
44
+ def logger=(log)
45
+ @logger = (log ? log : Logger.new('/dev/null'))
46
+ end
47
+ end
48
+
49
+ end
50
+
51
+ require 'rock_fintech/railtie' if defined?(::Rails)
@@ -0,0 +1,41 @@
1
+ # coding: utf-8
2
+
3
+ lib = File.expand_path("../lib", __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require "rock_fintech/version"
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = "rock_fintech"
9
+ spec.version = RockFintech::VERSION
10
+ spec.authors = ["chenpengyu"]
11
+ spec.email = ["gandalf@omniaccount.com"]
12
+
13
+ spec.summary = %q{钜石存管平台的 SDK}
14
+ spec.description = %q{上饶银行的存管实现}
15
+ spec.homepage = "https://github.com/omniaccountcorp/rock-fintech"
16
+ spec.license = "MIT"
17
+
18
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
19
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
20
+ if spec.respond_to?(:metadata)
21
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
22
+ else
23
+ raise "RubyGems 2.0 or newer is required to protect against " \
24
+ "public gem pushes."
25
+ end
26
+
27
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
28
+ f.match(%r{^(test|spec|features)/})
29
+ end
30
+ spec.bindir = "exe"
31
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ["lib"]
33
+
34
+ spec.add_development_dependency "bundler", "~> 1.16"
35
+ spec.add_development_dependency "rake", "~> 10.0"
36
+ spec.add_development_dependency "rspec", "~> 3.0"
37
+ spec.add_development_dependency 'macaddr', '~> 1.7', '>= 1.7.1'
38
+ spec.add_development_dependency 'byebug', '~> 9.1'
39
+ spec.add_development_dependency 'faker', '~> 1.8', '>= 1.8.4'
40
+ spec.add_development_dependency 'rest-client', '~> 2.0', '>= 2.0.2'
41
+ end
metadata ADDED
@@ -0,0 +1,223 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rock_fintech
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - chenpengyu
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-05-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: macaddr
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.7'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 1.7.1
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '1.7'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.7.1
75
+ - !ruby/object:Gem::Dependency
76
+ name: byebug
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '9.1'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '9.1'
89
+ - !ruby/object:Gem::Dependency
90
+ name: faker
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.8'
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 1.8.4
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '1.8'
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 1.8.4
109
+ - !ruby/object:Gem::Dependency
110
+ name: rest-client
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '2.0'
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 2.0.2
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '2.0'
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: 2.0.2
129
+ description: 上饶银行的存管实现
130
+ email:
131
+ - gandalf@omniaccount.com
132
+ executables: []
133
+ extensions: []
134
+ extra_rdoc_files: []
135
+ files:
136
+ - ".gitignore"
137
+ - CODE_OF_CONDUCT.md
138
+ - Gemfile
139
+ - Gemfile.lock
140
+ - LICENSE.txt
141
+ - README.md
142
+ - Rakefile
143
+ - bin/console
144
+ - bin/setup
145
+ - lib/rock_fintech.rb
146
+ - lib/rock_fintech/api/account/account_balance.rb
147
+ - lib/rock_fintech/api/account/find_account_by_id.rb
148
+ - lib/rock_fintech/api/account/find_account_by_mobile.rb
149
+ - lib/rock_fintech/api/account/unbind_bank_card.rb
150
+ - lib/rock_fintech/api/api_helper.rb
151
+ - lib/rock_fintech/api/asset/.gitkeep
152
+ - lib/rock_fintech/api/asset/asset_query.rb
153
+ - lib/rock_fintech/api/asset/assets_enroll.rb
154
+ - lib/rock_fintech/api/asset/assets_revoke.rb
155
+ - lib/rock_fintech/api/batch/.gitkeep
156
+ - lib/rock_fintech/api/batch/batch_end_credit_b.rb
157
+ - lib/rock_fintech/api/batch/batch_payment_b.rb
158
+ - lib/rock_fintech/api/batch/batch_repayment_b.rb
159
+ - lib/rock_fintech/api/enterprise/.gitkeep
160
+ - lib/rock_fintech/api/money/bank_recharge.rb
161
+ - lib/rock_fintech/api/money/coupon_recharge.rb
162
+ - lib/rock_fintech/api/money/coupon_withdraw.rb
163
+ - lib/rock_fintech/api/platform/.gitkeep
164
+ - lib/rock_fintech/api/query/.gitkeep
165
+ - lib/rock_fintech/api/trade/.gitkeep
166
+ - lib/rock_fintech/api/trade/auto_bid_apply.rb
167
+ - lib/rock_fintech/api/trade/revoke_auto_bid.rb
168
+ - lib/rock_fintech/client.rb
169
+ - lib/rock_fintech/encrypt/rsa.rb
170
+ - lib/rock_fintech/extensions.rb
171
+ - lib/rock_fintech/form/account/bind_bank_card_p.rb
172
+ - lib/rock_fintech/form/account/create_account_p.rb
173
+ - lib/rock_fintech/form/account/set_password_p.rb
174
+ - lib/rock_fintech/form/asset/.gitkeep
175
+ - lib/rock_fintech/form/batch/.gitkeep
176
+ - lib/rock_fintech/form/enterprise/.gitkeep
177
+ - lib/rock_fintech/form/money/recharge_p.rb
178
+ - lib/rock_fintech/form/money/sign_borrower_p.rb
179
+ - lib/rock_fintech/form/money/sign_transfer_p.rb
180
+ - lib/rock_fintech/form/money/withdraw_p.rb
181
+ - lib/rock_fintech/form/platform/.gitkeep
182
+ - lib/rock_fintech/form/query/.gitkeep
183
+ - lib/rock_fintech/form/trade/.gitkeep
184
+ - lib/rock_fintech/form/trade/bid_apply_p.rb
185
+ - lib/rock_fintech/form/trade/sign_auto_bid_p.rb
186
+ - lib/rock_fintech/http/error_code/account.rb
187
+ - lib/rock_fintech/http/error_code/asset.rb
188
+ - lib/rock_fintech/http/error_code/batch.rb
189
+ - lib/rock_fintech/http/error_code/money.rb
190
+ - lib/rock_fintech/http/error_code/trade.rb
191
+ - lib/rock_fintech/http/request.rb
192
+ - lib/rock_fintech/http/response.rb
193
+ - lib/rock_fintech/railtie.rb
194
+ - lib/rock_fintech/sign/md5.rb
195
+ - lib/rock_fintech/utils.rb
196
+ - lib/rock_fintech/version.rb
197
+ - rock_fintech.gemspec
198
+ homepage: https://github.com/omniaccountcorp/rock-fintech
199
+ licenses:
200
+ - MIT
201
+ metadata:
202
+ allowed_push_host: https://rubygems.org
203
+ post_install_message:
204
+ rdoc_options: []
205
+ require_paths:
206
+ - lib
207
+ required_ruby_version: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ required_rubygems_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ requirements: []
218
+ rubyforge_project:
219
+ rubygems_version: 2.6.14
220
+ signing_key:
221
+ specification_version: 4
222
+ summary: 钜石存管平台的 SDK
223
+ test_files: []