reapal 0.2.2 → 0.3.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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +1 -5
  4. data/lib/reapal.rb +7 -0
  5. data/lib/reapal/api/api_helper.rb +51 -0
  6. data/lib/reapal/api/money/deposit_apply_api.rb +73 -0
  7. data/lib/reapal/api/money/deposit_confirm_api.rb +49 -0
  8. data/lib/reapal/api/money/deposit_query.rb +36 -0
  9. data/lib/reapal/api/money/deposit_sms_api.rb +48 -0
  10. data/lib/reapal/api/money/sub_account.rb +53 -0
  11. data/lib/reapal/api/money/sub_account_query.rb +45 -0
  12. data/lib/reapal/api/money/withdraw_query.rb +47 -0
  13. data/lib/reapal/api/order/query_by_flow_id.rb +64 -0
  14. data/lib/reapal/api/order/query_by_single_flow_id.rb +55 -0
  15. data/lib/reapal/api/order/tender_serial_no_query.rb +56 -0
  16. data/lib/reapal/api/{asset → tender}/tender_all_cancel.rb +5 -24
  17. data/lib/reapal/api/{asset → tender}/tender_apply.rb +6 -24
  18. data/lib/reapal/api/{asset → tender}/tender_auth_cancel.rb +2 -21
  19. data/lib/reapal/api/{asset → tender}/tender_auth_query.rb +3 -24
  20. data/lib/reapal/api/{asset → tender}/tender_finish.rb +7 -26
  21. data/lib/reapal/api/tender/tender_onkey_invest.rb +52 -0
  22. data/lib/reapal/api/tender/tender_onkey_refund.rb +71 -0
  23. data/lib/reapal/api/tender/tender_onkey_single_transfer.rb +73 -0
  24. data/lib/reapal/api/{asset → tender}/tender_repayment_complete.rb +3 -22
  25. data/lib/reapal/api/{asset → tender}/tender_repayment_project.rb +10 -29
  26. data/lib/reapal/api/user/balance_query.rb +11 -22
  27. data/lib/reapal/api/user/bank_card_add_sms.rb +16 -26
  28. data/lib/reapal/api/user/bank_card_add_sms_again.rb +5 -24
  29. data/lib/reapal/api/user/bank_card_add_sms_confirm.rb +5 -24
  30. data/lib/reapal/api/user/bind_card_query.rb +5 -16
  31. data/lib/reapal/api/user/contract_query.rb +32 -4
  32. data/lib/reapal/api/user/mobile_query.rb +1 -20
  33. data/lib/reapal/api/user/modify_bind_bank_card.rb +55 -0
  34. data/lib/reapal/api/user/onekey_batch_contract.rb +1 -15
  35. data/lib/reapal/api/user/onekey_com_contract.rb +78 -0
  36. data/lib/reapal/api/user/onekey_contract.rb +1 -14
  37. data/lib/reapal/api/user/undo_bind_bank_card.rb +5 -24
  38. data/lib/reapal/client.rb +2 -2
  39. data/lib/reapal/form/business_auth_form.rb +47 -57
  40. data/lib/reapal/form/certificate_form.rb +43 -0
  41. data/lib/reapal/form/find_trade_password_form.rb +2 -10
  42. data/lib/reapal/form/form_helper.rb +35 -0
  43. data/lib/reapal/form/mobile_modify_form.rb +2 -10
  44. data/lib/reapal/form/withdraw_apply_form.rb +2 -10
  45. data/lib/reapal/http/communicate.rb +5 -4
  46. data/lib/reapal/http/decode.rb +29 -0
  47. data/lib/reapal/http/error_code/common.rb +13 -0
  48. data/lib/reapal/http/error_code/money.rb +44 -0
  49. data/lib/reapal/http/error_code/order.rb +17 -0
  50. data/lib/reapal/http/error_code/tender.rb +69 -0
  51. data/lib/reapal/http/error_code/user.rb +45 -0
  52. data/lib/reapal/utils.rb +2 -2
  53. data/lib/reapal/version.rb +1 -1
  54. metadata +33 -15
  55. data/lib/reapal/api/error_codes.rb +0 -46
  56. data/lib/reapal/api/money/.keep +0 -0
  57. data/lib/reapal/api/order/.keep +0 -0
  58. data/lib/reapal/form/signle_tender_transfer_form.rb +0 -72
  59. data/lib/reapal/form/tender_invest_form.rb +0 -62
  60. data/lib/reapal/form/tender_refund_form.rb +0 -84
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dec4bffac163868bb8653e0a4a8c581805d972ee
4
- data.tar.gz: c78c514b8ffaa353fb25cc192f540332863a74e3
3
+ metadata.gz: 234567f57cee288220964fc4bf120ae802400e36
4
+ data.tar.gz: 6362601c991f78ca39ee6d3ab0f80048fe1de8f8
5
5
  SHA512:
6
- metadata.gz: 95d1285c4361aa039f080c5a743295c21563c127eef94411ed2702f46c564ac94025b70388bcddbbd6e4b80c24c4fddb6f603aa475a985d8cfffccf1255a5051
7
- data.tar.gz: f294e4e9588ed898361effef09cfea57b63a54bbe8c4b2b67a58e9872895763d18ff68d7e8248bf3820403c758b6d895a604ddf57721506b7e41ce55612b4567
6
+ metadata.gz: 75214217a309e67040291e008ed14f0dc5770fcc308b7a14b16d4913c2c3bf48fc65c3467d67dc955bbefb91051cbc4555536f5a29799fdf14bbc148770d7d62
7
+ data.tar.gz: 22dc9b134b5ef4a0fab39886be7b84cedc57ce5ef4987072caadc390b99a5b004accc714e1d8695048c521953781129ddb26404c449ee4016a2a2c7306095c4d
data/README.md CHANGED
@@ -76,7 +76,7 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
76
76
 
77
77
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
78
78
 
79
- ** 建议 **
79
+ **建议**
80
80
  1. 使用 [fasterer](https://github.com/DamirSvrtan/fasterer) 来优化写的代码,怎么修改可以查看[这里](https://github.com/JuanitoFatas/fast-ruby)
81
81
  2. 使用 [rubycritic](https://github.com/whitesmith/rubycritic) 来检测代码质量
82
82
 
data/Rakefile CHANGED
@@ -5,12 +5,8 @@ RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task :default => :spec
7
7
 
8
- task :build do
9
- puts `gem build reapal.gemspec`
10
- end
11
-
12
8
  task :push do
13
- puts `gem push reapal-#{Reapal::VERSION}.gem`
9
+ puts `gem push pkg/reapal-#{Reapal::VERSION}.gem`
14
10
  end
15
11
 
16
12
  task :publish => [:build, :push]
@@ -17,7 +17,14 @@ require "reapal/sign/md5"
17
17
  require "reapal/encrypt/rsa"
18
18
  require "reapal/encrypt/aes"
19
19
  require "reapal/http/communicate"
20
+ require "reapal/http/decode"
20
21
  require "reapal/http/response"
22
+ require "reapal/http/error_code/common"
23
+ require "reapal/http/error_code/user"
24
+ require "reapal/http/error_code/money"
25
+ require "reapal/http/error_code/tender"
26
+ require "reapal/http/error_code/order"
27
+
21
28
  # 自动加载所有 api
22
29
  Dir["#{File.dirname(__FILE__)}/reapal/api/**/*.rb"].each { |file| require file }
23
30
  # 自动加载所有 form
@@ -0,0 +1,51 @@
1
+ # coding: utf-8
2
+ module Reapal
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 post_path [ String ] post url
12
+ # @param fail_codes [ Array ] 错误返回码
13
+ # @param success_codes [ String ] 【业务】【明确的】正确返回码(而不是申请成功这类)
14
+ #
15
+ # @return [ Hash ] 结果集(见通用返回)
16
+ #
17
+ def operate_post(request_type, service, params, post_path, fail_codes, success_codes, version=nil)
18
+ response = Http.post(service, params, @config, post_path, version)
19
+
20
+ res = Reapal::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[:errorCode])
34
+ res[:result] = "F"
35
+ return res
36
+ end
37
+
38
+ # 其余 api 错误不知道
39
+ return res unless response.data[:errorCode].nil?
40
+
41
+ # 确定的成功返回码
42
+ if success_codes.include?(response.data[:resultCode])
43
+ res[:result] = "S"
44
+ end
45
+
46
+ res
47
+ end
48
+
49
+ end # CommunicateResultHelper
50
+ end
51
+ end
@@ -0,0 +1,73 @@
1
+ # coding: utf-8
2
+
3
+ module Reapal
4
+ module Api
5
+ module Money
6
+ module DepositApplyApi
7
+
8
+ # 2.2 快捷充值签约(API)
9
+ #
10
+ # @param flow_id [ String ] 订单号
11
+ # @param contracts [ String ] 用户协议号
12
+ # @param bank_card [ String ] 银行卡卡号
13
+ # @param true_name [ String ] 持卡人姓名
14
+ # @param identity_id [ String ] 身份证号
15
+ # @param phone [ String ] 用户手机(注意是银行卡预留手机号)
16
+ # @param amount [ BigDecimal ] 交易金额
17
+ # @param charge [ BigDecimal ] 手续费
18
+ # @param terminal_info [ String ] 终端信息(手机IMEI地址、MAC地址、UUID)
19
+ # @param member_ip [ String ] 用户IP
20
+ # @param notify_url [ String ] 通知URL
21
+ # @param cert_type [ String ] 证件类型 (暂时只支持身份证:01)
22
+ # @param currency [ String ] 交易币种(默认人民币(仅支持人民币cny))
23
+ # @param bus_way [ String ] 00:PC端;01:手机端;02:Pad端;03:其它
24
+ # @param remark [ String ] 备注
25
+ #
26
+ # @return [ Hash ] 结果集
27
+ # * :result [String] 业务结果:'S/F/P'
28
+ # * :request_params [Hash] 请求参数
29
+ # * :response [Object] 请求返回对象
30
+ # * :error_code [String] 错误代号
31
+ # * :error_msg [String] 错误信息
32
+ # * :data: 具体业务返回信息
33
+ # * :orderNO [String] 充值订单号
34
+ # * :bindId [String] 绑卡ID
35
+ # * :certificate [String] 招商银行标识(有此标识表示充值卡为招商银行,返回值为0,
36
+ # 则表示需要调用招商卡密接口,若返回值为1,
37
+ # 直接调用充值确认接口。若此字段不存在则表示非招行卡,可直接调用充值确认接口完成扣款)
38
+ # * :resultCode [String] 结果代码
39
+ # * :resultMsg [String] 结果描述
40
+ #
41
+ def deposit_apply_api(flow_id, contracts, bank_card, true_name, identity_id,
42
+ phone, amount, charge, terminal_info, member_ip,
43
+ notify_url, cert_type = '01', currency = 'cny', bus_way = '01', remark = '')
44
+
45
+ service = 'reapal.trust.depositApplyAPI'
46
+ post_path = '/reagw/service/depwit.htm'
47
+
48
+ params = {
49
+ orderNo: flow_id,
50
+ contracts: contracts,
51
+ bankCard: bank_card,
52
+ userName: true_name,
53
+ certType: cert_type,
54
+ userIdentity: identity_id,
55
+ userMobile: phone,
56
+ currency: currency,
57
+ amount: amount,
58
+ charge: charge,
59
+ busway: bus_way,
60
+ terminalInfo: terminal_info,
61
+ memberIp: member_ip,
62
+ notifyUrl: notify_url,
63
+ remark: remark,
64
+ applyTime: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
65
+ }
66
+
67
+ operate_post(:operate, service, params, post_path, Http::ErrorCode.deposit_apply_api, ['0000'], '2.0')
68
+ end
69
+
70
+ end # module
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,49 @@
1
+ # coding: utf-8
2
+
3
+ module Reapal
4
+ module Api
5
+ module Money
6
+ module DepositConfirmApi
7
+
8
+ # 2.3 快捷充值确认(API)
9
+ #
10
+ # @param flow_id [ String ] 商户订单号(非自动生成,与充值签约订单号一致)
11
+ # @param contracts [ String ] 用户协议号
12
+ # @param check_code [ String ] 短信验证码
13
+ # @param terminal_info [ String ] 终端信息(手机IMEI地址、MAC地址、UUID)
14
+ # @param member_ip [ String ] 用户IP
15
+ # @param busway [ String ] 设备通道 00:PC端;01:手机端;02:Pad端;03:其它
16
+ # @param remark [ String ] 业务备注信息
17
+ #
18
+ # @return [ Hash ] 结果集
19
+ # * :result [String] "S"/"F"/"P"
20
+ # * :request_params [Hash] 请求参数
21
+ # * :response [Object] 请求返回对象
22
+ # * :error_code [String] 错误代号
23
+ # * :error_msg [String] 错误信息
24
+ # * :data: 具体业务返回信息
25
+ # * :orderNo [String] 订单号
26
+ # * :resultCode [String] 结果代码 0000:充值成功
27
+ # * :resultMsg [String] 结果描述
28
+ #
29
+ def deposit_confirm_api(flow_id, contracts, check_code, terminal_info, member_ip, busway = '01', remark = '')
30
+ service = 'reapal.trust.depositConfirmAPI'
31
+ post_path = '/reagw/service/depwit.htm'
32
+
33
+ params = {
34
+ orderNo: flow_id,
35
+ contracts: contracts,
36
+ checkCode: check_code,
37
+ busway: busway,
38
+ terminalInfo: terminal_info,
39
+ memberIp: member_ip,
40
+ applyTime: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
41
+ }
42
+
43
+ operate_post(:operate, service, params, post_path, Http::ErrorCode.deposit_confirm_api, ['0000'])
44
+ end
45
+
46
+ end # module
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,36 @@
1
+ # coding: utf-8
2
+
3
+ module Reapal
4
+ module Api
5
+ module Money
6
+ module DepositQuery
7
+
8
+ # 2.6 充值查询(API)
9
+ #
10
+ # @param deposit_flow_id [ String ] 充值订单号
11
+ #
12
+ # @return [ Hash ] 结果集
13
+ # * :result [String] "S"/"F"/"P"
14
+ # * :error_msg [String] 错误提示
15
+ # * :data [Hash] 成功数据
16
+ # * :orderNo [String] 充值订单号
17
+ # * :amount [BigDecimal] 交易金额
18
+ # * :charge [BigDecimal] 手续费
19
+ # * :resultCode [String] 结果代码
20
+ #
21
+ def deposit_query(deposit_flow_id)
22
+ service = 'reapal.trust.depositQuery'
23
+ post_path = '/reagw/service/depwit.htm'
24
+
25
+ params = {
26
+ orderNo: deposit_flow_id,
27
+ queryTime: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
28
+ }
29
+
30
+ operate_post(:query, service, params, post_path, Http::ErrorCode.deposit_query, ['0000'])
31
+ end
32
+
33
+ end # module
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,48 @@
1
+ # coding: utf-8
2
+
3
+ module Reapal
4
+ module Api
5
+ module Money
6
+ module DepositSmsApi
7
+
8
+ # 2.4 快捷充值重发短信(API)
9
+ #
10
+ # @param flow_id [ String ] 订单号(非自动生成,与充值签约订单号保持一致)
11
+ # @param contracts [ String ] 用户协议号
12
+ # @param busway [ String ] 设备通道 00:PC端;01:手机端;02:Pad端;03:其它
13
+ # @param terminal_info [ String ] 终端信息(手机IMEI地址、MAC地址、UUID)
14
+ # @param member_ip [ String ] 用户IP
15
+ # @param remark [ String ] 业务备注信息
16
+ #
17
+ # @return [ Hash ] 结果集
18
+ # * :result [String] 业务结果:'S/F/P'
19
+ # * :request_params [Hash] 请求参数
20
+ # * :response [Object] 请求返回对象
21
+ # * :error_code [String] 错误代号
22
+ # * :error_msg [String] 错误信息
23
+ # * :data: 具体业务返回信息
24
+ # * :orderNo [String] 订单号
25
+ # * :resultCode [String] 结果代码 0000:发送成功
26
+ # * :resultMsg [String] 结果描述
27
+ #
28
+ def deposit_sms_api(flow_id, contracts, terminal_info, member_ip, busway = '01', remark = "")
29
+ service = 'reapal.trust.depositSmsAPI'
30
+ post_path = '/reagw/service/depwit.htm'
31
+
32
+ params = {
33
+ orderNo: flow_id,
34
+ contracts: contracts,
35
+ busway: busway,
36
+ terminalInfo: terminal_info,
37
+ memberIp: member_ip,
38
+ remark: remark,
39
+ applyTime: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
40
+ }
41
+
42
+ operate_post(:operate, service, params, post_path, Http::ErrorCode.deposit_sms_api, ['0000'])
43
+ end
44
+
45
+ end # module
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,53 @@
1
+ # coding: utf-8
2
+
3
+ module Reapal
4
+ module Api
5
+ module Money
6
+ module SubAccount
7
+
8
+ # 2.11 企业分账(API)
9
+ #
10
+ # @param flow_id [ String ] 完成订单号
11
+ # @param sub_type [ String ] 分账类型 1:代还款。2:分账。3:其它
12
+ # @param sub_details [ Array ] 分账明细
13
+ # * serial_no [String] 分账流水号
14
+ # * payee_contracts [String] 收款方协议号
15
+ # * amount [BigDecimal] 金额
16
+ # * mark [String] 备注
17
+ # @param remark [ String ] 业务备注信息
18
+ #
19
+ # @return [ Hash ] 结果集
20
+ # * :result [String] 业务结果:'S/F/P'
21
+ # * :request_params [Hash] 请求参数
22
+ # * :response [Object] 请求返回对象
23
+ # * :error_code [String] 错误代号
24
+ # * :error_msg [String] 错误信息
25
+ # * :data: 具体业务返回信息
26
+ # * :flow_id [String] 完成订单号
27
+ # * :result_code [String] 结果代码 0000:分账成功 0001:失败
28
+ #
29
+ def sub_account(flow_id, sub_type, sub_details, remark ='')
30
+ service = 'reapal.trust.subAccount'
31
+ post_path = '/reagw/service/depwit.htm'
32
+
33
+ params = {
34
+ orderNo: flow_id,
35
+ subType: sub_type,
36
+ subDetails: sub_details,
37
+ remark: remark,
38
+ applyTime: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
39
+ }
40
+
41
+ res = operate_post(:operate, service, params, post_path, Http::ErrorCode.sub_account, ['0000'])
42
+
43
+ if 'S' == res[:result] && '0001' == res[:data][:resultCode]
44
+ res[:result] = 'F'
45
+ end
46
+
47
+ res
48
+ end
49
+
50
+ end # module
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,45 @@
1
+ # coding: utf-8
2
+
3
+ module Reapal
4
+ module Api
5
+ module Money
6
+ module SubAccountQuery
7
+
8
+ # 2.8 企业分账查询(API)
9
+ #
10
+ # @param sub_account_flow_id [ String ] 分账订单号
11
+ # @param serial_no [ String ] 分账流水号(传空串表示该订单批量查询)
12
+ #
13
+ # @return [ Hash ] 结果集
14
+ # * :result [String] 业务结果:'S/F/P'
15
+ # * :request_params [Hash] 请求参数
16
+ # * :response [Object] 请求返回对象
17
+ # * :error_code [String] 错误代号
18
+ # * :error_msg [String] 错误信息
19
+ # * :data: 具体业务返回信息
20
+ # * :orderNO [String] 分账订单号
21
+ # * :subDetails [String] 分账明细
22
+ # * serialNo [String] 分账流水号
23
+ # * payeeContracts [String] 收款方协议号
24
+ # * amount [BigDecimal] 金额
25
+ # * remark [String] 备注
26
+ # * resultCode [String] 结果代码
27
+ # * :resultCode [String] 结果代码 0000:分账成功;0001 : 分账失败;0002:处理中
28
+ #
29
+ def sub_account_query(sub_account_flow_id, serial_no='')
30
+ service = 'reapal.trust.subAccountQuery'
31
+ post_path = '/reagw/service/depwit.htm'
32
+
33
+ params = {
34
+ orderNo: sub_account_flow_id,
35
+ serialNo: serial_no,
36
+ queryTime: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
37
+ }
38
+
39
+ operate_post(:query, service, params, post_path, Http::ErrorCode.sub_account_query, ['0000'])
40
+ end
41
+
42
+ end # module
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,47 @@
1
+ # coding: utf-8
2
+
3
+ module Reapal
4
+ module Api
5
+ module Money
6
+ module WithdrawQuery
7
+
8
+ # 2.8 提现查询(API)
9
+ #
10
+ # @param withdraw_flow_id [ String ] 提现订单号
11
+ #
12
+ # @return [ Hash ] 结果集
13
+ # * :result [String] 业务结果:'S/F/P'
14
+ # * :request_params [Hash] 请求参数
15
+ # * :response [Object] 请求返回对象
16
+ # * :error_code [String] 错误代号
17
+ # * :error_msg [String] 错误信息
18
+ # * :data: 具体业务返回信息
19
+ # * :orderNo [String] 提现订单号
20
+ # * :amount [BigDecimal] 交易金额
21
+ # * :userName [String] 用户姓名
22
+ # * :bankName [String] 提现银行
23
+ # * :bankCard [String] 提现银行卡后四位
24
+ # * :resultCode [String] 结果代码 0000:申请成功(待出款)0002:提现成功 0003:提现失败
25
+ #
26
+ def withdraw_query(withdraw_flow_id)
27
+ service = 'reapal.trust.withdrawQuery'
28
+ post_path = '/reagw/service/depwit.htm'
29
+
30
+ params = {
31
+ orderNo: withdraw_flow_id,
32
+ queryTime: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
33
+ }
34
+
35
+ res = operate_post(:query, service, params, post_path, Http::ErrorCode.withdraw_query, ['0002'])
36
+
37
+ if 'S' == res[:result] && '0003' == res[:data][:resultCode]
38
+ res[:result] = 'F'
39
+ end
40
+
41
+ res
42
+ end
43
+
44
+ end # module
45
+ end
46
+ end
47
+ end