ll_pay 0.2.0 → 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.
- checksums.yaml +4 -4
- data/.codeclimate.yml +16 -0
- data/README.md +10 -0
- data/lib/ll_pay/notify.rb +12 -1
- data/lib/ll_pay/query_order.rb +3 -9
- data/lib/ll_pay/service.rb +19 -6
- data/lib/ll_pay/sign/rsa.rb +1 -1
- data/lib/ll_pay/sign.rb +1 -0
- data/lib/ll_pay/version.rb +1 -1
- data/lib/ll_pay.rb +8 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bcedd354ff169462ae37deb0692af982e7c9ef6b
|
4
|
+
data.tar.gz: 49b924a08cf20be00e1985ec301bce7f23e2341d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29a8a7d4607768e556524966faed7e286c6e784b157e5d5f3f6deaaeddf65d72524710f5ea57fefb38141c0bcd58465fad6a833d7ef1a9a392775f3ea81929db
|
7
|
+
data.tar.gz: 868cc82455b22c4737cc10dbe77784cb625622f77978ef49fd3270dc1bdfadfde5bb8714b73ddfb10e49e88ea3a9820dea7696f288bc7401d705fe4bf70b7fe4
|
data/.codeclimate.yml
ADDED
data/README.md
CHANGED
@@ -44,3 +44,13 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
44
44
|
|
45
45
|
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/ll_pay.
|
46
46
|
|
47
|
+
|
48
|
+
[version-badge]: https://badge.fury.io/rb/ll_pay.svg
|
49
|
+
[rubygems]: https://rubygems.org/gems/ll_pay
|
50
|
+
[travis-badge]: https://travis-ci.org/bayetech/ll_pay.svg
|
51
|
+
[travis]: https://travis-ci.org/bayetech/ll_pay
|
52
|
+
[codeclimate-badge]: https://codeclimate.com/github/bayetech/ll_pay/badges/gpa.svg
|
53
|
+
[codeclimate]: https://codeclimate.com/github/bayetech/ll_pay
|
54
|
+
[codecoverage-badge]: https://codeclimate.com/github/bayetech/ll_pay/badges/coverage.svg
|
55
|
+
[codecoverage]: https://codeclimate.com/github/bayetech/ll_pay/coverage
|
56
|
+
|
data/lib/ll_pay/notify.rb
CHANGED
@@ -1,7 +1,18 @@
|
|
1
1
|
module LlPay
|
2
2
|
module Notify
|
3
3
|
def self.verify?(params, options = {})
|
4
|
-
|
4
|
+
sign_params = {
|
5
|
+
'oid_partner' => params['oid_partner'],
|
6
|
+
'sign_type' => params['sign_type'],
|
7
|
+
'dt_order' => params['dt_order'],
|
8
|
+
'no_order' => params['no_order'],
|
9
|
+
'oid_paybill' => params['oid_paybill'],
|
10
|
+
'money_order' => params['money_order'],
|
11
|
+
'result_pay' => params['result_pay'],
|
12
|
+
'bank_code' => params['bank_code']
|
13
|
+
}
|
14
|
+
|
15
|
+
LlPay::Sign.verify?(params, options) && LlPay.oid_partner == params[:oid_partner]
|
5
16
|
end
|
6
17
|
end
|
7
18
|
end
|
data/lib/ll_pay/query_order.rb
CHANGED
@@ -9,10 +9,10 @@ module LlPay
|
|
9
9
|
|
10
10
|
if sign_type == 'RSA'
|
11
11
|
query_order_hash[:sign_type] = 'RSA'
|
12
|
-
query_order_hash[:sign] = LlPay::Sign::RSA.sign(LlPay.rsa_pri_key, params_to_string(query_order_hash))
|
12
|
+
query_order_hash[:sign] = LlPay::Sign::RSA.sign(LlPay.rsa_pri_key, LlPay::Sign.params_to_string(query_order_hash))
|
13
13
|
else
|
14
14
|
query_order_hash[:sign_type] = 'MD5'
|
15
|
-
query_order_hash[:sign] = LlPay::Sign::MD5.sign(LlPay.md5_key, params_to_string(query_order_hash))
|
15
|
+
query_order_hash[:sign] = LlPay::Sign::MD5.sign(LlPay.md5_key, LlPay::Sign.params_to_string(query_order_hash))
|
16
16
|
end
|
17
17
|
|
18
18
|
http_response = HTTP.post('https://yintong.com.cn/queryapi/orderquery.htm',
|
@@ -21,7 +21,7 @@ module LlPay
|
|
21
21
|
response_hash = JSON.parse(http_response.body.to_s)
|
22
22
|
|
23
23
|
if http_response.code == 200
|
24
|
-
if response_hash['ret_code'] == 0000 && LlPay::Sign.verify?(params_to_string(response_hash))
|
24
|
+
if response_hash['ret_code'] == 0000 && LlPay::Sign.verify?(LlPay::Sign.params_to_string(response_hash))
|
25
25
|
return response_hash
|
26
26
|
else
|
27
27
|
return response_hash
|
@@ -30,11 +30,5 @@ module LlPay
|
|
30
30
|
return
|
31
31
|
end
|
32
32
|
end
|
33
|
-
|
34
|
-
def self.params_to_string(params)
|
35
|
-
params.sort.map do |k, v|
|
36
|
-
"#{k}=#{v}" if v.to_s != '' && k.to_s != 'sign'
|
37
|
-
end.compact.join('&')
|
38
|
-
end
|
39
33
|
end
|
40
34
|
end
|
data/lib/ll_pay/service.rb
CHANGED
@@ -3,16 +3,29 @@ require 'json'
|
|
3
3
|
module LlPay
|
4
4
|
module Service
|
5
5
|
|
6
|
-
SECURITY_PAY_REQUIRED_PARAMS = %w(
|
6
|
+
SECURITY_PAY_REQUIRED_PARAMS = %w(busi_partner dt_order info_order money_order name_goods no_order notify_url oid_partner risk_item sign_type valid_order)
|
7
7
|
def self.securitypay_pay_json(params, options = {})
|
8
|
-
params = LlPay::Utils.stringify_keys(params)
|
9
|
-
options = LlPay::Utils.stringify_keys(options)
|
8
|
+
# params = LlPay::Utils.stringify_keys(params)
|
9
|
+
# options = LlPay::Utils.stringify_keys(options)
|
10
10
|
|
11
|
-
params
|
11
|
+
check_required_params(params, SECURITY_PAY_REQUIRED_PARAMS)
|
12
12
|
|
13
|
-
params =
|
13
|
+
params['sign_type'] = options['sign_type'] || LlPay.sign_type
|
14
14
|
|
15
|
-
params
|
15
|
+
params = { 'oid_partner' => LlPay.oid_partner }.merge(params)
|
16
|
+
|
17
|
+
sign_params = { 'busi_partner' => params['busi_partner'],
|
18
|
+
'dt_order' => params['dt_order'],
|
19
|
+
'money_order' => params['money_order'],
|
20
|
+
'no_order' => params['no_order'],
|
21
|
+
'notify_url' => params['notify_url'],
|
22
|
+
'oid_partner' => params['oid_partner'],
|
23
|
+
'risk_item' => params['risk_item'],
|
24
|
+
'sign_type' => params['sign_type'],
|
25
|
+
'valid_order' => params['valid_order']
|
26
|
+
}
|
27
|
+
|
28
|
+
params['sign'] = LlPay::Sign.generate(sign_params)
|
16
29
|
|
17
30
|
params.to_json
|
18
31
|
end
|
data/lib/ll_pay/sign/rsa.rb
CHANGED
@@ -11,7 +11,7 @@ module LlPay
|
|
11
11
|
|
12
12
|
def self.verify?(pubkey, string, sign)
|
13
13
|
rsa = OpenSSL::PKey::RSA.new(pubkey)
|
14
|
-
rsa.verify('sha1', Base64.strict_decode64(sign), string)
|
14
|
+
rsa.verify('sha1', Base64.strict_decode64(sign), string.force_encoding("utf-8"))
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
data/lib/ll_pay/sign.rb
CHANGED
data/lib/ll_pay/version.rb
CHANGED
data/lib/ll_pay.rb
CHANGED
@@ -9,7 +9,14 @@ require 'll_pay/utils'
|
|
9
9
|
|
10
10
|
module LlPay
|
11
11
|
# 银通公钥
|
12
|
-
YT_PUB_KEY =
|
12
|
+
YT_PUB_KEY = <<-EOF
|
13
|
+
-----BEGIN PUBLIC KEY-----
|
14
|
+
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCSS/DiwdCf/aZsxxcacDnooGph3d2JOj5GXWi+
|
15
|
+
q3gznZauZjkNP8SKl3J2liP0O6rU/Y/29+IUe+GTMhMOFJuZm1htAtKiu5ekW0GlBMWxf4FPkYlQ
|
16
|
+
kPE0FtaoMP3gYfh+OwI+fIRrpW3ySn3mScnc6Z700nU/VYrRkfcSCbSnRwIDAQAB
|
17
|
+
-----END PUBLIC KEY-----
|
18
|
+
EOF
|
19
|
+
|
13
20
|
@sign_type = 'MD5'
|
14
21
|
|
15
22
|
class << self
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ll_pay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- houdelin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -79,6 +79,7 @@ executables: []
|
|
79
79
|
extensions: []
|
80
80
|
extra_rdoc_files: []
|
81
81
|
files:
|
82
|
+
- ".codeclimate.yml"
|
82
83
|
- ".gitignore"
|
83
84
|
- ".rspec"
|
84
85
|
- ".travis.yml"
|