ll_pay 0.5.0 → 0.6.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: ac2772f8f1ecafe1006c0452dea64efd64c67f2f
4
- data.tar.gz: b6eb1d00781e7773c8036ec885177b2707bc0751
3
+ metadata.gz: 94394c8c5f44328970365b09b18e9218ba4e0357
4
+ data.tar.gz: 227ce1f3623584d8c9b15fbf62f10b3fa8bef3c1
5
5
  SHA512:
6
- metadata.gz: ab32fa457432eb129c845aa3d06a09ce51482f836410a4399302002e65ca8fbc3f882f8d61d9d5a37be997bf24f8929e6472a601a20571f8a7224967d93804ca
7
- data.tar.gz: 1b07b23cf8a733cf637dca50ae66d0b2dc60833015a80bf39aee56e86355085cb2050c09bcce380a8768f036b5950a1c90b0f0b18275a9b90d6c3d0e8e86d5e8
6
+ metadata.gz: d4f4b42fd89cdc6833398ec41967cb2106d261c044d13b5ce01e022f35ca5bc824d42b1f6de44e85a4dda013ceef38cadf7add43079948a72fa011dabf87acf1
7
+ data.tar.gz: 2fd39caa77553187688720d6b7399d335eba0862b4a0640e4cf9f7b8c05e5dca03bb663e0cbeca2ec769bb3653d790d684461a2b5781f9baf4824336f37f7259
data/.travis.yml CHANGED
@@ -1,5 +1,8 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.2.5
5
- before_install: gem install bundler -v 1.12.5
4
+ - 2.3.3
5
+ before_install: gem install bundler -v 1.13.7
6
+ script:
7
+ - bundle exec rake
8
+ - bundle exec codeclimate-test-reporter
data/README.md CHANGED
@@ -3,8 +3,6 @@ LlPay [![Gem Version][version-badge]][rubygems] [![Build Status][travis-badge]][
3
3
 
4
4
  Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/ll_pay`. To experiment with that code, run `bin/console` for an interactive prompt.
5
5
 
6
- TODO: Delete this and the text above, and describe your gem
7
-
8
6
  ## Installation
9
7
 
10
8
  Add this line to your application's Gemfile:
@@ -4,11 +4,11 @@ require 'http' # https://github.com/httprb/http
4
4
 
5
5
  module LlPay
6
6
  module QueryOrder
7
- def query_single_order(sign_type, no_order, dt_order)
7
+ def query_single_order(sign_type, no_order, dt_order, options = {})
8
8
  query_order_hash = { oid_partner: LlPay.oid_partner, dt_order: dt_order, no_order: no_order, sign_type: sign_type }
9
- query_order_hash[:sign] = LlPay::Sign.generate(query_order_hash)
9
+ query_order_hash[:sign] = LlPay::Sign.generate(query_order_hash, options)
10
10
 
11
- request(:post, 'https://yintong.com.cn/queryapi/orderquery.htm', query_order_hash)
11
+ request(:post, 'https://yintong.com.cn/queryapi/orderquery.htm', query_order_hash, options)
12
12
  end
13
13
  end
14
14
  end
@@ -1,43 +1,48 @@
1
1
  module LlPay
2
2
  module RefundOrder
3
- def refund_order(params)
3
+ REFUND_ORDER_PARAMS = %w(oid_partner sign_type no_refund dt_refund money_refund no_order dt_order oid_paybill notify_url)
4
+ def refund_order(params, options = {})
5
+ LlPay::Utils.check_required_params(params, REFUND_ORDER_PARAMS)
4
6
  params = LlPay::Utils.stringify_keys(params)
5
-
6
- params[:sign_type] = params[:sign_type] || LlPay.sign_type
7
- params[:oid_partner] = LlPay.oid_partner
8
-
9
- sign_params = { 'oid_partner' => params[:oid_partner],
10
- 'sign_type' => params[:sign_type],
11
- 'no_refund' => params[:no_refund],
12
- 'dt_refund' => params[:dt_refund],
13
- 'money_refund' => params[:money_refund],
14
- 'no_order' => params[:no_order],
15
- 'dt_order' => params[:dt_order],
16
- 'oid_paybill' => params[:oid_paybill],
17
- 'notify_url' => params[:notify_url]
7
+ options = LlPay::Utils.stringify_keys(options)
8
+
9
+ params[:sign_type] = params[:sign_type] || options[:sign_type] || LlPay.sign_type
10
+ params[:oid_partner] = params[:oid_partner] || options[:oid_partner] || LlPay.oid_partner
11
+
12
+ sign_params = { oid_partner: params[:oid_partner],
13
+ sign_type: params[:sign_type],
14
+ no_refund: params[:no_refund],
15
+ dt_refund: params[:dt_refund],
16
+ money_refund: params[:money_refund],
17
+ no_order: params[:no_order],
18
+ dt_order: params[:dt_order],
19
+ oid_paybill: params[:oid_paybill],
20
+ notify_url: params[:notify_url]
18
21
  }
19
22
 
20
- params[:sign] = LlPay::Sign.generate(sign_params)
23
+ params[:sign] = LlPay::Sign.generate(sign_params, options)
21
24
 
22
- request(:post, 'https://yintong.com.cn/traderapi/refund.htm', params)
25
+ request(:post, 'https://yintong.com.cn/traderapi/refund.htm', params, options)
23
26
  end
24
27
 
25
- def refund_order_query(params)
28
+ REFUND_ORDER_QUERY_PARAMS = %w(oid_partner sign_type no_refund dt_refund oid_refundno)
29
+ def refund_order_query(params, options = {})
26
30
  params = LlPay::Utils.stringify_keys(params)
31
+ options = LlPay::Utils.stringify_keys(options)
27
32
 
28
33
  params[:sign_type] = params[:sign_type] || LlPay.sign_type
29
34
  params[:oid_partner] = LlPay.oid_partner
30
35
 
31
- sign_params = { 'oid_partner' => params[:oid_partner],
32
- 'sign_type' => params[:sign_type],
33
- 'no_refund' => params[:no_refund],
34
- 'dt_refund' => params[:dt_refund],
35
- 'oid_refundno' => params[:oid_refundno]
36
+ sign_params = { oid_partner: params[:oid_partner],
37
+ sign_type: params[:sign_type],
38
+ no_refund: params[:no_refund],
39
+ dt_refund: params[:dt_refund],
40
+ oid_refundno: params[:oid_refundno]
36
41
  }
37
42
 
38
- params[:sign] = LlPay::Sign.generate(sign_params)
43
+ params[:sign] = LlPay::Sign.generate(sign_params, options)
39
44
 
40
- request(:post, 'https://queryapi.lianlianpay.com/refundquery.htm', params)
45
+ request(:post, 'https://queryapi.lianlianpay.com/refundquery.htm', params, options)
41
46
  end
42
47
  end
43
48
  end
@@ -5,35 +5,27 @@ module LlPay
5
5
 
6
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 securitypay_pay_json(params, options = {})
8
- # params = LlPay::Utils.stringify_keys(params)
9
- # options = LlPay::Utils.stringify_keys(options)
10
-
11
- check_required_params(params, SECURITY_PAY_REQUIRED_PARAMS)
12
-
13
- params['sign_type'] = params['sign_type'] || LlPay.sign_type
14
-
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']
8
+ LlPay::Utils.check_required_params(params, SECURITY_PAY_REQUIRED_PARAMS)
9
+ params = LlPay::Utils.stringify_keys(params)
10
+ options = LlPay::Utils.stringify_keys(options)
11
+
12
+ params[:sign_type] = params[:sign_type] || options[:sign_type] || LlPay.sign_type
13
+ params[:oid_partner] = params[:oid_partner] || options[:oid_partner] || LlPay.oid_partner
14
+
15
+ sign_params = { busi_partner: params[:busi_partner],
16
+ dt_order: params[:dt_order],
17
+ money_order: params[:money_order],
18
+ no_order: params[:no_order],
19
+ notify_url: params[:notify_url],
20
+ oid_partner: params[:oid_partner],
21
+ risk_item: params[:risk_item],
22
+ sign_type: params[:sign_type],
23
+ valid_order: params[:valid_order]
26
24
  }
27
25
 
28
- params['sign'] = LlPay::Sign.generate(sign_params)
26
+ params[:sign] = LlPay::Sign.generate(sign_params, options)
29
27
 
30
28
  params.to_json
31
29
  end
32
-
33
- def check_required_params(params, names)
34
- names.each do |name|
35
- warn("ll_pay Warn: missing required option: #{name}") unless params.has_key?(name)
36
- end
37
- end
38
30
  end
39
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('md5', Base64.strict_decode64(sign), string.force_encoding('utf-8'))
14
+ rsa.verify('md5', Base64.decode64(sign), string.force_encoding('utf-8'))
15
15
  end
16
16
  end
17
17
  end
data/lib/ll_pay/utils.rb CHANGED
@@ -7,5 +7,12 @@ module LlPay
7
7
  end
8
8
  new_hash
9
9
  end
10
+
11
+ def self.check_required_params(params, names)
12
+ params_keys = params.keys.map(&:to_s)
13
+ names.each do |name|
14
+ warn("ll_pay Warn: missing required option: #{name}") unless params_keys.include?(name)
15
+ end
16
+ end
10
17
  end
11
18
  end
@@ -1,3 +1,3 @@
1
1
  module LlPay
2
- VERSION = '0.5.0'.freeze
2
+ VERSION = '0.6.0'.freeze
3
3
  end
data/lib/ll_pay.rb CHANGED
@@ -32,7 +32,7 @@ kPE0FtaoMP3gYfh+OwI+fIRrpW3ySn3mScnc6Z700nU/VYrRkfcSCbSnRwIDAQAB
32
32
  include Notify
33
33
  end
34
34
 
35
- def self.request(verb, url, params = {})
35
+ def self.request(verb, url, params = {}, options = {})
36
36
  case verb.to_sym
37
37
  when :post
38
38
  @http_response = HTTP.post(url, json: params)
@@ -42,8 +42,8 @@ kPE0FtaoMP3gYfh+OwI+fIRrpW3ySn3mScnc6Z700nU/VYrRkfcSCbSnRwIDAQAB
42
42
  response_hash = JSON.parse(@http_response.body.to_s)
43
43
 
44
44
  if @http_response.code == 200
45
- if response_hash['ret_code'] == 0000
46
- if LlPay::Sign.verify?(response_hash)
45
+ if response_hash['ret_code'] == '0000'
46
+ if LlPay::Sign.verify?(response_hash, options)
47
47
  return response_hash
48
48
  else
49
49
  return { ret_msg: '签名验证错误' }
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.5.0
4
+ version: 0.6.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-19 00:00:00.000000000 Z
11
+ date: 2017-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.12'
39
+ version: '1.13'
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.12'
46
+ version: '1.13'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  requirements: []
117
117
  rubyforge_project:
118
- rubygems_version: 2.4.8
118
+ rubygems_version: 2.5.2
119
119
  signing_key:
120
120
  specification_version: 4
121
121
  summary: An unofficial lianlian (for apple pay) pay gem.