alipay_dualfun 0.2 → 0.3

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDdiYWE3ODE2OTE1Y2IyNzcwNjE4NzUwZjc5Y2QyYzlmZDk5MzA0Nw==
4
+ ZDFiNGY4NmI1NDEwMTdjYTMyNWQzMWI1MGYzMWVhYzZkZTU5N2IwYg==
5
5
  data.tar.gz: !binary |-
6
- Y2ZmM2ZiZmY1YzI0ODc4OGUyMDY0ZGM0NDU2ZjAxYmYxNjkxNmM2Mw==
6
+ ZWM2M2I1MDNmZmJkY2VmYjQ3MTViMDU3M2I3MDU1YjBhYTdhOGU5Yw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- M2IxMTIwZmYzYTU0N2QwYmFiN2FhMmExNGMyYjEzNjRkYWFlODMzMzllZWYx
10
- ZTNiMzZkMTFlOWNlZmViZTE1MWM3NDFkZmJkNGMzNzRmYmRiOTFmN2U1Y2E3
11
- YjE5NTg4MDk2MjdmZTNjMjViNzhiODllMjc5ZGI1NTBlZmY1Y2E=
9
+ MDRmNzY4ODg3MzI2YzQxNTQzOGY1NWFjYzE2ODhjYTY2OGYxYzE4N2U1OGZl
10
+ YmZmNjMxNzgwODIxMDJiZTM2ZjgzYjIwNDMxYTZjNTBhMzljYzI5MGMyZTE3
11
+ M2U5NzJkOTBjZWZmNTc5MWJkMzEyMjk5M2Y0NzdlNjUyZDM4OGQ=
12
12
  data.tar.gz: !binary |-
13
- NDljMDkzNmRmOTc1ZmU0YTE5NmNjOTUxZWMwYmFlZTkzY2U5Y2VmOWRiMjVm
14
- MGIwMDJhZTFlMjk4N2JhMjQzYWM1OWI0OTRlZDAxMTA2YTAyOGZmMDc0MWNj
15
- ODQyNTNlMjRkMTY0ZjI1ZTIwMTY2MjE0NjJkY2U2Y2I4NWFhNDc=
13
+ MmNiZjdiMzQzMDFiMTJhMjJlOTBmYWViODRmMjRjMmFjYjY0ZjRlZWI0N2My
14
+ OWI0YTAzZDc0ZmZjNGUzN2M2NjY2YzM0NjYzODBlNzgxOGUyNDRkYzg4ZWRk
15
+ YTY2N2U0ODQzYzgxMGU1ODc3NWNjMmNlNmU2ZThlNDRjOWQ1YWM=
data/README.md CHANGED
@@ -30,20 +30,18 @@ And then execute:
30
30
  Generate payment url
31
31
 
32
32
  options = {
33
- :out_trade_no => 'YOUR_ORDER_ID', # 20130801000001
34
- :subject => 'YOUR_ORDER_SUBJECCT',
35
33
  :partner => 'PID',
36
34
  :seller_email => 'SELLER_EMAIL',
35
+ :key => 'SECRET',
36
+ :out_trade_no => 'YOUR_ORDER_ID', # 20130801000001
37
+ :subject => 'YOUR_ORDER_SUBJECCT',
37
38
  :price => '10.00',
38
39
  :quantity => 12,
39
- :discount => '20.00'
40
- :return_url => 'YOUR_ORDER_RETURN_URL',
41
- :notify_url => 'YOUR_ORDER_NOTIFY_URL'
40
+ :return_url => 'YOUR_ORDER_RETURN_URL', # 可选项
41
+ :notify_url => 'YOUR_ORDER_NOTIFY_URL' # 可选项
42
42
  }
43
43
 
44
44
  Alipay.trade_create_by_buyer_url(options) # 标准双接口
45
45
  # => 'https://mapi.alipay.com/gateway.do?out_trade_no=...'
46
46
 
47
- You can redirect user to this payment url, and user will see a payment page
48
- for his/her order.
49
-
47
+ 以上除了标注`可选项`的内容之外,其他选项都是 Gem 要求的必填项,缺一不可。用户还可以根据自身特定需求添加可选项,具体可以参考支付宝官方资料包中的 pdf 文件。
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = "alipay_dualfun"
7
- gem.version = "0.2"
7
+ gem.version = "0.3"
8
8
  gem.authors = ["happypeter"]
9
9
  gem.email = ["happypeter1983@gmail.com"]
10
10
  gem.description = %q{This gem can help you integrate Alipay Dual-function Payment.}
@@ -18,6 +18,7 @@ module AlipayDualfun
18
18
  }.merge(stringify_keys(options))
19
19
 
20
20
  @secret_key = options['key']
21
+ @partner = options['partner']
21
22
  options.delete('key')
22
23
 
23
24
  check_required_options(options, trade_create_by_buyer_required_options)
@@ -51,4 +52,22 @@ module AlipayDualfun
51
52
  end.join('&')
52
53
  Digest::MD5.hexdigest("#{query}#{@secret_key}")
53
54
  end
55
+
56
+
57
+ def self.verify_sign?(params)
58
+ params = stringify_keys(params)
59
+ params.delete('sign_type')
60
+ sign = params.delete('sign')
61
+
62
+ generate_sign(params) == sign
63
+ end
64
+
65
+ def self.notify_verify?(params)
66
+ if verify_sign?(params)
67
+ params = stringify_keys(params)
68
+ open("https://mapi.alipay.com/gateway.do?service=notify_verify&partner=#{@partner}&notify_id=#{CGI.escape params['notify_id'].to_s}").read == 'true'
69
+ else
70
+ false
71
+ end
72
+ end
54
73
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alipay_dualfun
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - happypeter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-31 00:00:00.000000000 Z
11
+ date: 2013-10-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This gem can help you integrate Alipay Dual-function Payment.
14
14
  email: