ll_pay 0.5.0 → 0.6.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: 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.