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 +4 -4
- data/README.md +28 -2
- data/lib/my_alipay/sign/md5.rb +9 -1
- data/lib/my_alipay/sign/rsa.rb +21 -0
- data/lib/my_alipay/version.rb +1 -1
- data/lib/my_alipay.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d7e3054a7b8d0e5069187445804308547eb645c7
|
|
4
|
+
data.tar.gz: 65ed87eb2f0dae815e41e5f655131564375a4d10
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
- ### 支付宝异步通知验签
|
data/lib/my_alipay/sign/md5.rb
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
module MyAlipay
|
|
2
2
|
module Sign
|
|
3
|
-
class
|
|
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
|
data/lib/my_alipay/version.rb
CHANGED
data/lib/my_alipay.rb
CHANGED
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.
|
|
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-
|
|
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
|