ll_pay 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 791510ce280d6c3f20c4e96e6714cd0aa85665ed
4
- data.tar.gz: 59919fc5997650a09c8af3f623233f954913d899
3
+ metadata.gz: bcedd354ff169462ae37deb0692af982e7c9ef6b
4
+ data.tar.gz: 49b924a08cf20be00e1985ec301bce7f23e2341d
5
5
  SHA512:
6
- metadata.gz: 2ac0d647acd857a3e446ec78442c04da6faaca2c013f6d8ba8fd92f14f73c3e099ba75fd324d50fd2a1881212a49166345884d282816b31feb26b89954ca2ddf
7
- data.tar.gz: 7e89e51c6abbbc516a1616ee8a8014bd484b60c34a7796e02406d4c1b9ebec2808151f09b187561830284dad5abe3ae5071d9d11988b20c75e683115eeb7e925
6
+ metadata.gz: 29a8a7d4607768e556524966faed7e286c6e784b157e5d5f3f6deaaeddf65d72524710f5ea57fefb38141c0bcd58465fad6a833d7ef1a9a392775f3ea81929db
7
+ data.tar.gz: 868cc82455b22c4737cc10dbe77784cb625622f77978ef49fd3270dc1bdfadfde5bb8714b73ddfb10e49e88ea3a9820dea7696f288bc7401d705fe4bf70b7fe4
data/.codeclimate.yml ADDED
@@ -0,0 +1,16 @@
1
+ ---
2
+ engines:
3
+ duplication:
4
+ enabled: true
5
+ config:
6
+ languages:
7
+ - ruby
8
+ fixme:
9
+ enabled: true
10
+ rubocop:
11
+ enabled: true
12
+ ratings:
13
+ paths:
14
+ - "**.rb"
15
+ exclude_paths:
16
+ - spec/
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
- Sign.verify?(params, options) && LlPay.oid_partner == params[:oid_partner]
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
@@ -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
@@ -3,16 +3,29 @@ require 'json'
3
3
  module LlPay
4
4
  module Service
5
5
 
6
- SECURITY_PAY_REQUIRED_PARAMS = %w(notify_url no_order dt_order busi_partner money_order valid_order user_id)
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[:sign_type] = options[:sign_type] || LlPay.sign_type
11
+ check_required_params(params, SECURITY_PAY_REQUIRED_PARAMS)
12
12
 
13
- params = { oid_partner: LlPay.oid_partner }.merge(params)
13
+ params['sign_type'] = options['sign_type'] || LlPay.sign_type
14
14
 
15
- params[:sign] = LlPay::Sign.generate(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
@@ -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
@@ -9,6 +9,7 @@ module LlPay
9
9
  sign_type = params[:sign_type]
10
10
  md5_key = options[:md5_key] || LlPay.md5_key
11
11
  rsa_pri_key = options[:rsa_pri_key] || LlPay.rsa_pri_key
12
+ params[:oid_partner] = LlPay.oid_partner
12
13
  string = params_to_string(params)
13
14
 
14
15
  case sign_type
@@ -1,3 +1,3 @@
1
1
  module LlPay
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.3.0'.freeze
3
3
  end
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 = "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCSS/DiwdCf/aZsxxcacDnooGph3d2JOj5GXWi+q3gznZauZjkNP8SKl3J2liP0O6rU/Y/29+IUe+GTMhMOFJuZm1htAtKiu5ekW0GlBMWxf4FPkYlQkPE0FtaoMP3gYfh+OwI+fIRrpW3ySn3mScnc6Z700nU/VYrRkfcSCbSnRwIDAQAB\n-----END PUBLIC KEY-----".freeze
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.2.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-14 00:00:00.000000000 Z
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"