rock_fintech 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,46 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Api
4
+ module Account
5
+ module UnbindBankCard
6
+ # 解绑银行卡
7
+ #
8
+ # @return [ Hash ] 结果集
9
+ # * :result [String] "S"/"F"/"P"
10
+ # * :request_params [Hash] 请求参数
11
+ # * :response [Object] 请求返回对象
12
+ # * :code [String] 结果代码
13
+ # * :msg [String] 结果信息
14
+ # * :data: 具体业务返回信息
15
+ # * :card_no [String] 电子账号
16
+ # * :name [String] 持卡人姓名
17
+ # * :sign_flag [String] 签约状态 0:未签约 1:已签约
18
+ # * :sign_date [String] 签约日期
19
+ # * :sign_time [String] 签约时间
20
+ # * :states [String] 解绑状态
21
+ # * :revoke_sign_date [String] 签约取消日期
22
+ # * :revoke_sign_time [String] 签约取消时间
23
+ #
24
+ def unbind_bank_card(card_no, bank_card_no, customer_no, flow_id, card_type,
25
+ devise='000001', remark='')
26
+ service = 'unbind_bank_card'
27
+
28
+ params = {
29
+ serial_no: flow_id,
30
+ customer_no: customer_no,
31
+ card_no: card_no,
32
+ bank_card_no: bank_card_no,
33
+ card_type: card_type,
34
+ client: devise,
35
+ custom: remark,
36
+ }
37
+
38
+ res = operate_post(:operate, service, params, Http::ErrorCode.set_password_p, ['RD000000'])
39
+
40
+ res
41
+ end
42
+
43
+ end # module
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,53 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Api
4
+ module CommunicateResultHelper
5
+
6
+ # 操作类的 api,统一返回处理
7
+ #
8
+ # @param request_type [Symbole] 操作类(:operate)/查询类(:query)
9
+ # @param service [ String ] 上饶的服务
10
+ # @param params [ Hash ] 参数
11
+ # @param fail_codes [ Array ] 错误返回码
12
+ # @param success_codes [ String ] 【业务】【明确的】正确返回码(而不是申请成功这类)
13
+ #
14
+ # @return [ Hash ] 结果集(见通用返回)
15
+ #
16
+ def operate_post(request_type, service, params, fail_codes, success_codes, version=Http::Request::VERSION)
17
+ request = Http::Request.new(params, @config, service, version)
18
+ response = request.post
19
+
20
+ res = RockFintech::Utils.api_result(params, response)
21
+
22
+ if :operate == request_type
23
+ # 向服务器发送操作,超时类的都应该当 pending 处理
24
+ return res if response.http_pending?
25
+ elsif :query == request_type
26
+ # 查询类 api,http 没成功都返回 pending
27
+ return res unless response.http_success?
28
+ else
29
+ raise '未知的请求类型,请选择设置:操作类(:operate)/查询类(:query)'
30
+ end
31
+
32
+ # 确定的错误
33
+ if fail_codes.include?(response.data[:code])
34
+ res[:result] = 'F'
35
+ return res
36
+ end
37
+
38
+ # 其余 api 错误不知道
39
+ return res unless response.data[:code].nil?
40
+
41
+ # 确定的成功返回码
42
+ if success_codes.include?(response.data[:code])
43
+ res[:result] = 'S'
44
+ end
45
+
46
+ RockFintech.logger.info "#{request.identifier} 最终返回的数据为:\n#{res}\n"
47
+
48
+ res
49
+ end
50
+
51
+ end # CommunicateResultHelper
52
+ end
53
+ end
File without changes
@@ -0,0 +1,48 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Api
4
+ module Asset
5
+ module AssetsEnroll
6
+
7
+ # 标的单笔查询
8
+ #
9
+ # @return [ Hash ] 结果集
10
+ # * :result [String] "S"/"F"/"P"
11
+ # * :request_params [Hash] 请求参数
12
+ # * :response [Object] 请求返回对象
13
+ # * :code [String] 结果代码
14
+ # * :msg [String] 结果信息
15
+ # * :data: 具体业务返回信息
16
+ # * :asset_no [String] 标的编号
17
+ # * :asset_brief [String] 产品描述
18
+ # * :card_no [String] 借款人电子账号
19
+ # * :name [String] 借款金额
20
+ # * :loan_term [String] 项目期限
21
+ # * :issue_date [String] 发标日期
22
+ # * :state [String] 记录状态: (0: 空标, 1: 投标, 2: 流标, 3: 满标, 4: 已撤销)
23
+ # * :warrant_card_no [String] 担保人人电子账号
24
+ # * :warrant_name [String] 担保人姓名
25
+ # * :borrow_card_no [String] 名义借款人电子账户
26
+ # * :third_custom [String] 第三方平台保留域
27
+ #
28
+ def asset_query(asset_no, third_custom='',
29
+ devise='000001', remark='')
30
+
31
+ service = 'asset_query'
32
+
33
+ params = {
34
+ asset_no: asset_no,
35
+ third_custom: third_custom,
36
+ client: devise,
37
+ custom: remark,
38
+ }
39
+
40
+ res = operate_post(:query, service, params, Http::ErrorCode.asset_query, ['RD000000'])
41
+
42
+ res
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,62 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Api
4
+ module Asset
5
+ module AssetsEnroll
6
+
7
+ # 发标
8
+ #
9
+ # @return [ Hash ] 结果集
10
+ # * :result [String] "S"/"F"/"P"
11
+ # * :request_params [Hash] 请求参数
12
+ # * :response [Object] 请求返回对象
13
+ # * :code [String] 结果代码
14
+ # * :msg [String] 结果信息
15
+ # * :data: 具体业务返回信息
16
+ # * :asset_no [String] 标的编号
17
+ # * :asset_brief [String] 产品描述
18
+ # * :card_no [String] 借款人电子账号
19
+ # * :name [String] 借款金额
20
+ # * :loan_term [String] 项目期限
21
+ # * :issue_date [String] 发标日期
22
+ # * :state [String] 记录状态: (0: 空标, 1: 投标, 2: 流标, 3: 满标, 4: 已撤销)
23
+ # * :warrant_card_no [String] 担保人人电子账号
24
+ # * :warrant_name [String] 担保人姓名
25
+ # * :borrow_card_no [String] 名义借款人电子账户
26
+ # * :debtor_card_no [String] 收款人电子账号
27
+ # * :third_custom [String] 第三方平台保留域
28
+ #
29
+ def assets_enroll(asset_no, asset_brief, card_no,
30
+ amount, interest_type, loan_term,
31
+ interest_rate, trustee_pay_flag, warrant_card_no="",
32
+ debtor_card_no="", borrow_card_no="", third_custom="",
33
+ devise='000001', remark='')
34
+
35
+ service = 'assets_enroll'
36
+
37
+ params = {
38
+ asset_no: asset_no,
39
+ asset_brief: asset_brief,
40
+ card_no: card_no,
41
+ amount: amount,
42
+ interest_type: interest_type,
43
+ loan_term: loan_term,
44
+ interest_rate: interest_rate,
45
+ warrant_card_no: warrant_card_no,
46
+ borrow_card_no: borrow_card_no,
47
+ debtor_card_no: debtor_card_no,
48
+ trustee_pay_flag: trustee_pay_flag,
49
+ third_custom: third_custom,
50
+ client: devise,
51
+ custom: remark,
52
+ }
53
+
54
+ res = operate_post(:operate, service, params, Http::ErrorCode.assets_enroll, ['RD000000'])
55
+
56
+ res
57
+ end
58
+
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,48 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Api
4
+ module Asset
5
+ module AssetsRevoke
6
+
7
+ # 撤标
8
+ #
9
+ # @return [ Hash ] 结果集
10
+ # * :result [String] "S"/"F"/"P"
11
+ # * :request_params [Hash] 请求参数
12
+ # * :response [Object] 请求返回对象
13
+ # * :code [String] 结果代码
14
+ # * :msg [String] 结果信息
15
+ # * :data: 具体业务返回信息
16
+ # * :asset_no [String] 标的编号
17
+ # * :card_no [String] 借款人电子账号
18
+ # * :name [String] 借款人姓名
19
+ # * :amount [String] 借款金额
20
+ # * :issue_date [String] 发表日期
21
+ # * :state [String] 记录状态: (0: 空标, 1: 投标, 2: 流标, 3: 满标, 4: 已撤销)
22
+ # * :warrant_card_no [String] 担保人人电子账号
23
+ # * :warrant_name [String] 担保人姓名
24
+ # * :third_custom [String] 第三方平台保留域
25
+ #
26
+ def assets_revoke(asset_no, card_no, amount, third_custom="",
27
+ devise='000001', remark='')
28
+
29
+ service = 'assets_revoke'
30
+
31
+ params = {
32
+ asset_no: asset_no,
33
+ card_no: card_no,
34
+ amount: amount,
35
+ third_custom: third_custom,
36
+ client: devise,
37
+ custom: remark,
38
+ }
39
+
40
+ res = operate_post(:operate, service, params, Http::ErrorCode.assets_revoke, ['RD000000'])
41
+
42
+ res
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
File without changes
@@ -0,0 +1,59 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Api
4
+ module Batch
5
+ module BatchEndCreditB
6
+
7
+ # 批量结束债权
8
+ # @param items [ Array ] 还款信息
9
+ # * :out_card_no
10
+ # * :in_card_no
11
+ # * :assets_no
12
+ # * :auth_code
13
+ # * :serial_no
14
+ # * :third_reserved
15
+ #
16
+ # @return [ Hash ] 结果集
17
+ # * :result [String] "S"/"F"/"P"
18
+ # * :request_params [Hash] 请求参数
19
+ # * :response [Object] 请求返回对象
20
+ # * :code [String] 结果代码
21
+ # * :msg [String] 结果信息
22
+ # * :data: 具体业务返回信息
23
+ # * :batch_no [String] 批次号
24
+ # * :batch_count [String] 数量
25
+ # * :batch_date [String] 日期
26
+ # * :items [Array]
27
+ # * :result [String] 处理相应码('00': 成功, 其他为失败)
28
+ # * :message [String] 应答描述
29
+ # * :out_card_no [String] 扣款电子账号
30
+ # * :in_card_no [String] 转入电子账号
31
+ # * :assets_no [String] 标的编号
32
+ # * :serial_no [String] 投标申请流水号
33
+ # * :third_reserved [String] 第三方流水号
34
+ #
35
+ def batch_end_credit_b(batch_count, batch_no, batch_type,
36
+ batch_date, items,
37
+ devise='000001', remark='')
38
+
39
+ service = 'batch_end_credit_b'
40
+
41
+ params = {
42
+ batch_count: batch_count,
43
+ batch_no: batch_no,
44
+ batch_type: batch_type,
45
+ batch_date: batch_date,
46
+ items: items,
47
+ client: devise,
48
+ custom: remark,
49
+ }
50
+
51
+ res = operate_post(:operate, service, params, Http::ErrorCode.batch_end_credit_b, ['RD000000'])
52
+
53
+ res
54
+ end
55
+
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,76 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Api
4
+ module Batch
5
+ module BatchPaymentB
6
+
7
+ # 批量放款
8
+ # @param items [ Array ] 放款信息
9
+ # * :out_card_no
10
+ # * :amount
11
+ # * :interest_amount
12
+ # * :in_card_no
13
+ # * :currency
14
+ # * :out_fee_mode
15
+ # * :out_fee_amount
16
+ # * :in_fee_mode
17
+ # * :in_fee_amount
18
+ # * :assets_no
19
+ # * :auth_code
20
+ # * :third_reserved
21
+ # * :serial_no
22
+ # * :notify_url
23
+ # * :reserved
24
+ #
25
+ # @return [ Hash ] 结果集
26
+ # * :result [String] "S"/"F"/"P"
27
+ # * :request_params [Hash] 请求参数
28
+ # * :response [Object] 请求返回对象
29
+ # * :code [String] 结果代码
30
+ # * :msg [String] 结果信息
31
+ # * :data: 具体业务返回信息
32
+ # * :batch_no [String] 批次号
33
+ # * :batch_count [String] 数量
34
+ # * :batch_date [String] 日期
35
+ # * :items [Array]
36
+ # * :result [String] 处理相应码('00': 成功, 其他为失败)
37
+ # * :message [String] 应答描述
38
+ # * :amount [String] 扣账(本金)金额
39
+ # * :out_card_no [String] 扣款电子账号
40
+ # * :in_card_no [String] 转入电子账号
41
+ # * :out_fee_mode [String] 转出方手续费扣款方式 (0: 指定金额; 1: 同产品设置)
42
+ # * :out_fee_amount [String] 转出方手续费扣款金额
43
+ # * :real_out_fee_amount [String] 转出方手续费实际扣款金额
44
+ # * :in_fee_mode [String] 转入方手续费扣款方式 (0: 指定金额; 1: 同产品设置)
45
+ # * :in_fee_amount [String] 转入方手续费扣款金额
46
+ # * :real_in_fee_amount [String] 转入方手续费实际扣款金额
47
+ # * :assets_no [String] 标的编号
48
+ # * :auth_code [String] 投标神奇授权码
49
+ # * :serial_no [String] 投标申请流水号
50
+ # * :third_reserved [String] 第三方流水号
51
+ #
52
+ def batch_payment_b(batch_count, batch_no, batch_type,
53
+ batch_date, items,
54
+ devise='000001', remark='')
55
+
56
+ service = 'batch_payment_b'
57
+
58
+ params = {
59
+ batch_count: batch_count,
60
+ batch_no: batch_no,
61
+ batch_type: batch_type,
62
+ batch_date: batch_date,
63
+ items: items,
64
+ client: devise,
65
+ custom: remark,
66
+ }
67
+
68
+ res = operate_post(:operate, service, params, Http::ErrorCode.batch_payment_b, ['RD000000'])
69
+
70
+ res
71
+ end
72
+
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,78 @@
1
+ # coding: utf-8
2
+ module RockFintech
3
+ module Api
4
+ module Batch
5
+ module BatchRepaymentB
6
+
7
+ # 批量还款
8
+ # @param items [ Array ] 还款信息
9
+ # * :out_card_no
10
+ # * :amount
11
+ # * :interest_amount
12
+ # * :in_card_no
13
+ # * :currency
14
+ # * :out_fee_mode
15
+ # * :out_fee_amount
16
+ # * :in_fee_mode
17
+ # * :in_fee_amount
18
+ # * :assets_no
19
+ # * :auth_code
20
+ # * :third_reserved
21
+ # * :serial_no
22
+ # * :notify_url
23
+ # * :reserved
24
+ #
25
+ # @return [ Hash ] 结果集
26
+ # * :result [String] "S"/"F"/"P"
27
+ # * :request_params [Hash] 请求参数
28
+ # * :response [Object] 请求返回对象
29
+ # * :code [String] 结果代码
30
+ # * :msg [String] 结果信息
31
+ # * :data: 具体业务返回信息
32
+ # * :batch_no [String] 批次号
33
+ # * :batch_type [String] 业务类别
34
+ # * :batch_count [String] 数量
35
+ # * :batch_date [String] 日期
36
+ # * :items [Array]
37
+ # * :result [String] 处理相应码('00': 成功, 其他为失败)
38
+ # * :message [String] 应答描述
39
+ # * :amount [String] 扣账(本金)金额
40
+ # * :out_card_no [String] 扣款电子账号
41
+ # * :interest_amount [String] 扣账利息金额
42
+ # * :real_amount [String] 实际扣账金额
43
+ # * :in_card_no [String] 转入电子账号
44
+ # * :currency [String] 币种
45
+ # * :out_fee_mode [String] 转出方手续费扣款方式 (0: 指定金额; 1: 同产品设置)
46
+ # * :out_fee_amount [String] 转出方手续费扣款金额
47
+ # * :in_fee_mode [String] 转入方手续费扣款方式 (0: 指定金额; 1: 同产品设置)
48
+ # * :in_fee_amount [String] 转入方手续费扣款金额
49
+ # * :assets_no [String] 标的编号
50
+ # * :serial_no [String] 投标申请流水号
51
+ # * :third_reserved [String] 第三方流水号
52
+ # * :reserved [String] 保留域
53
+ #
54
+ def batch_repayment_b(batch_count, batch_no, batch_type,
55
+ batch_date, items,
56
+ devise='000001', remark='')
57
+
58
+ service = 'batch_payment_b'
59
+
60
+ params = {
61
+ batch_count: batch_count,
62
+ batch_no: batch_no,
63
+ batch_type: batch_type,
64
+ batch_date: batch_date,
65
+ items: items,
66
+ client: devise,
67
+ custom: remark,
68
+ }
69
+
70
+ res = operate_post(:operate, service, params, Http::ErrorCode.batch_repayment_b, ['RD000000'])
71
+
72
+ res
73
+ end
74
+
75
+ end
76
+ end
77
+ end
78
+ end