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,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