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