my_alipay 0.3.0 → 0.3.1

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: 87263ddf6d3e8dbeea140480c9b845643633540f
4
- data.tar.gz: d9362b01c4f3c17058a571c74ebc517307d7daee
3
+ metadata.gz: d7e3054a7b8d0e5069187445804308547eb645c7
4
+ data.tar.gz: 65ed87eb2f0dae815e41e5f655131564375a4d10
5
5
  SHA512:
6
- metadata.gz: 8f714e291e7f3b412396bdc270dac6a800c9b00c5b97e697754f63c3802ce215335f729cc215cfd0c6ad24bf4c3f70d04a977b9017d876fd2aead561226065e1
7
- data.tar.gz: 20482446cf24cc73beff414b3a56dd34a2419cea8b180c324dadb8a5e4757b87cd284571656c388d633c8bf177f407bb1cce9f92605de233be1738d9c2f0d6ef
6
+ metadata.gz: ead31f0f1e8e98f81bce914e5969cdca4370e9cb43e070e556d1a6c11b648f1fc3f6e0813a2e8986f4c4587ab650835549cb15a7b9f75714faecf6a18f02e5c6
7
+ data.tar.gz: 0f6240d803c11d4f92f51f3ccb5406117b37ce4eaa3d7c7654b6fe87d08903f8489553efc925d7368be7e4d013ee3e6b954ee9f72279a46f7d0993e4c12c13a8
data/README.md CHANGED
@@ -4,6 +4,10 @@ A gem for alipay, support wap api of 2017
4
4
 
5
5
  支持阿里手机支付2017最新版本的接口
6
6
 
7
+ 您在使用之前先了解官网如下api文档
8
+ - [支付宝手机支付官网API](https://docs.open.alipay.com/203)
9
+ - [支付宝PC支付官网API](https://docs.open.alipay.com/270)
10
+ - [支付宝APP支付官网API](https://docs.open.alipay.com/204)
7
11
  ## Installation
8
12
 
9
13
  Add this line to your application's Gemfile:
@@ -58,7 +62,7 @@ params ={
58
62
  url = MyAlipay::Wap::Service.create_alipay_trade_wap_pay_url params
59
63
 
60
64
 
61
- #显示支付页面方式
65
+ # 显示支付页面方式
62
66
  # 1.跳转到支付页面
63
67
  redirect_to url
64
68
 
@@ -85,7 +89,7 @@ params ={
85
89
  url = MyAlipay::Page::Service.create_alipay_trade_page_pay_url params
86
90
 
87
91
 
88
- #显示支付页面方式
92
+ # 显示支付页面方式
89
93
  # 1.跳转到支付页面
90
94
  redirect_to url
91
95
 
@@ -94,6 +98,28 @@ window.location.href = url
94
98
 
95
99
  ```
96
100
 
101
+ - ### app支付接口(alipay.trade.app.pay)
102
+
103
+ ```MyAlipay::Mobile::Service.create_alipay_trade_app_pay_url params```
104
+
105
+ - #### Example
106
+
107
+ ```ruby
108
+
109
+ params ={
110
+ return_url: 'return_url',
111
+ notify_url: 'notify_url',
112
+ biz_content: {subject: "商品名称", out_trade_no: "L2017052515281049",total_amount: "10.00"}
113
+ }
114
+
115
+ url = MyAlipay::Mobile::Service.create_alipay_trade_app_pay_url params
116
+
117
+ # app支付唤起方式
118
+ # 1.根据返回值(不包括http等前缀),android和ios使用相关sdk唤起支付宝app支付,
119
+
120
+ "app_id=2017091308720111\u0026biz_content={\"subject\":\"1\",\"out_trade_no\":12555,\"total_amount\":0.99,\"product_code\":\"QUICK_MSECURITY_PAY\"}\u0026charset=UTF-8\u0026method=alipay.trade.app.pay\u0026notify_url=http://test-api-server.ihaveu.com/api/pay/alipays/notify\u0026sign_type=RSA2\u0026timestamp=2017-11-01 09:54:45\u0026version=1.0\u0026sign=YLVYTiTUK11hSt6z9m67Q70bgEHr4Dawm07%2Bz5LP3Oe%2FlW%2BEKiO%2BizWfx8%2FFZTwkKFxjJLA%2BEmtnYqc4bsbAvOGhG3pJ2AZUVZUglpd%2FhSFpWdrFboEhlhOtguyOngGVk4IBi5ngqCmCHODZJYaUYl3W2cWpjjBtSnPgkNYva628nouSAMWHMnmjgy7k%2B9ef6%2FSXig3yndzEQBYpgq3CZw%2F77Ga2sIYgTu9%2BLvoepVCznlhcgVtj0LjLL7lAbiXFpuHx%2B%2F2NSNDAfhuEbu6AKtF6KU0rbl3FDdOXd0OFX8nnT%2FmN7GpItlYb5NB0%2BoeCcenv7f%2FTrJ3fwyAKcCtPhg%3D%3D"
121
+ ```
122
+
97
123
 
98
124
 
99
125
  - ### 支付宝异步通知验签
@@ -1,7 +1,15 @@
1
1
  module MyAlipay
2
2
  module Sign
3
- class Md5
3
+ class MD5
4
+ def self.sign(key, string)
5
+ sign = Digest::MD5.hexdigest("#{string}#{key}")
6
+ {sign_str: string, sign: sign}
7
+ end
4
8
 
9
+ #验签
10
+ def self.verify?(key, string, sign)
11
+ sign == sign(key, string)[:sign]
12
+ end
5
13
  end
6
14
  end
7
15
  end
@@ -0,0 +1,21 @@
1
+ require 'openssl'
2
+ require 'base64'
3
+ module MyAlipay
4
+ module Sign
5
+ class RSA
6
+ def self.sign(key, string)
7
+ rsa = OpenSSL::PKey::RSA.new(Base64.decode64(key))
8
+ digest = OpenSSL::Digest::SHA1.new
9
+ sign = Base64.strict_encode64(rsa.sign(digest, string))
10
+ {sign_str: string, sign: sign}
11
+ end
12
+
13
+ #验签
14
+ def self.verify?(key, string, sign)
15
+ digest = OpenSSL::Digest::SHA1.new
16
+ pkey = OpenSSL::PKey::RSA.new(Base64.decode64(key))
17
+ pkey.verify(digest, sign, string)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module MyAlipay
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
data/lib/my_alipay.rb CHANGED
@@ -3,6 +3,7 @@ require 'my_alipay/utils'
3
3
  require 'my_alipay/sign'
4
4
  require 'my_alipay/notify'
5
5
  require 'my_alipay/sign/rsa2'
6
+ require 'my_alipay/sign/rsa'
6
7
  require 'my_alipay/sign/md5'
7
8
  require 'my_alipay/wap/service'
8
9
  require 'my_alipay/wap/test'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: my_alipay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yancheng
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-01 00:00:00.000000000 Z
11
+ date: 2017-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -57,6 +57,7 @@ files:
57
57
  - lib/my_alipay/page/service.rb
58
58
  - lib/my_alipay/sign.rb
59
59
  - lib/my_alipay/sign/md5.rb
60
+ - lib/my_alipay/sign/rsa.rb
60
61
  - lib/my_alipay/sign/rsa2.rb
61
62
  - lib/my_alipay/utils.rb
62
63
  - lib/my_alipay/version.rb