reapal 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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