alipay 0.13.0 → 0.14.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 +4 -4
- data/CHANGELOG.md +5 -1
- data/README.md +48 -2
- data/alipay.gemspec +1 -1
- data/lib/alipay/service.rb +15 -0
- data/lib/alipay/version.rb +1 -1
- data/test/alipay/notify_test.rb +9 -3
- data/test/alipay/service_test.rb +25 -14
- data/test/alipay/wap/notify_test.rb +9 -3
- data/test/alipay/wap/service_test.rb +8 -8
- data/test/test_helper.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56fa9ffb9a707c4c25b499f1391790d4f6cc5474
|
4
|
+
data.tar.gz: 884b4d906a4081cba248165663911dd5280a35d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85c28557052f7817d5b9723d8030b77b11c6f9c7ea91d6d242b4938e0afece3669174fe3cc46e709d40c46c647f35d126df8da78c641a3b9ef2faa61b822328f
|
7
|
+
data.tar.gz: 75865ab5a939cad580640768e240f4fae552fd26bdde50ae0a208253f64b9d61435c1e67be33409c0175375a4d11b136f288f51f4af3ae9d35d53cef21827ea1
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
## master
|
2
2
|
|
3
|
+
## v0.13.0 (2016-12-28)
|
4
|
+
|
5
|
+
- Add `Alipay::App::Service.create_forex_trade_wap_url` method, thanks @xiaohesong #61
|
6
|
+
|
3
7
|
## v0.13.0 (2016-12-24)
|
4
8
|
|
5
|
-
|
9
|
+
- Add `Alipay::App::Service.alipay_trade_app_pay` method, thanks @FX-HAO #64
|
6
10
|
|
7
11
|
## v0.12.0 (2016-03-07)
|
8
12
|
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ Alipay official document: https://b.alipay.com/order/techService.htm .
|
|
9
9
|
Add this line to your application's Gemfile:
|
10
10
|
|
11
11
|
```ruby
|
12
|
-
gem 'alipay', '~> 0.
|
12
|
+
gem 'alipay', '~> 0.14.0'
|
13
13
|
```
|
14
14
|
|
15
15
|
And then execute:
|
@@ -202,6 +202,52 @@ Alipay::Service.create_direct_pay_by_user_wap_url(
|
|
202
202
|
|
203
203
|
This is not a complete list of arguments, please read official document: http://download.alipay.com/public/api/base/alipaywapdirect.zip .
|
204
204
|
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
### 国际支付宝移动接口
|
209
|
+
|
210
|
+
#### Name
|
211
|
+
|
212
|
+
```ruby
|
213
|
+
create_forex_trade_wap
|
214
|
+
```
|
215
|
+
|
216
|
+
#### Definition
|
217
|
+
|
218
|
+
```ruby
|
219
|
+
Alipay::Service.create_forex_trade_wap_url({ARGUMENTS}, {OPTIONS})
|
220
|
+
```
|
221
|
+
|
222
|
+
#### Example
|
223
|
+
|
224
|
+
```ruby
|
225
|
+
Alipay::Service.create_forex_trade_wap_url(
|
226
|
+
out_trade_no: '20150401000-0001',
|
227
|
+
subject: 'Order Name',
|
228
|
+
merchant_url: 'http://example.com/itemback',
|
229
|
+
total_fee: '10.00', #or rmb_fee, only one
|
230
|
+
currency: 'USD',
|
231
|
+
return_url: 'https://example.com/orders/20150401000-0001',
|
232
|
+
notify_url: 'https://example.com/orders/20150401000-0001/notify'
|
233
|
+
)
|
234
|
+
```
|
235
|
+
|
236
|
+
#### Arguments
|
237
|
+
|
238
|
+
| Key | Requirement | Description |
|
239
|
+
| --- | ----------- | ----------- |
|
240
|
+
| out_order_no | required | Order id in your application. |
|
241
|
+
| subject | required | Order subject. |
|
242
|
+
| merchant_url | required | The link which customer could jump back to merchant page from Alipay cashier. |
|
243
|
+
| total_fee or rmb_fee | required | Order's total fee. |
|
244
|
+
| currency | required | currency type. |
|
245
|
+
| return_url | optional | Redirect customer to this url after payment. |
|
246
|
+
| notify_url | optional | Alipay asyn notify url. |
|
247
|
+
|
248
|
+
This is not a complete list of arguments, please read official document: https://global.alipay.com/product/mobilepayments.html .
|
249
|
+
|
250
|
+
|
205
251
|
### 即时到账批量退款有密接口
|
206
252
|
|
207
253
|
#### Name
|
@@ -488,7 +534,7 @@ Alipay::Notify.verify?({PARAMS}, {OPTIONS})
|
|
488
534
|
# params except :controller_name, :action_name, :host, etc.
|
489
535
|
notify_params = params.except(*request.path_parameters.keys)
|
490
536
|
|
491
|
-
Alipay::Notify.verify?(notify_params)
|
537
|
+
Alipay::Notify.verify?(notify_params, options = {})
|
492
538
|
```
|
493
539
|
|
494
540
|
## Mobile::Service
|
data/alipay.gemspec
CHANGED
@@ -21,5 +21,5 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
spec.add_development_dependency "minitest"
|
24
|
-
spec.add_development_dependency "
|
24
|
+
spec.add_development_dependency "webmock"
|
25
25
|
end
|
data/lib/alipay/service.rb
CHANGED
@@ -194,6 +194,21 @@ module Alipay
|
|
194
194
|
request_uri(params, options).to_s
|
195
195
|
end
|
196
196
|
|
197
|
+
CREATE_FOREX_TRADE_WAP_REQUIRED_PARAMS = %w( out_trade_no subject merchant_url currency )
|
198
|
+
def self.create_forex_trade_wap_url(params, options = {})
|
199
|
+
params = Utils.stringify_keys(params)
|
200
|
+
check_required_params(params, CREATE_FOREX_TRADE_WAP_REQUIRED_PARAMS)
|
201
|
+
|
202
|
+
params = {
|
203
|
+
'service' => 'create_forex_trade_wap',
|
204
|
+
'_input_charset' => 'utf-8',
|
205
|
+
'partner' => options[:pid] || Alipay.pid,
|
206
|
+
'seller_id' => options[:pid] || Alipay.pid
|
207
|
+
}.merge(params)
|
208
|
+
|
209
|
+
request_uri(params, options).to_s
|
210
|
+
end
|
211
|
+
|
197
212
|
def self.request_uri(params, options = {})
|
198
213
|
uri = URI(GATEWAY_URL)
|
199
214
|
uri.query = URI.encode_www_form(sign_params(params, options))
|
data/lib/alipay/version.rb
CHANGED
data/test/alipay/notify_test.rb
CHANGED
@@ -13,17 +13,23 @@ class Alipay::NotifyTest < Minitest::Test
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_unsign_notify
|
16
|
-
|
16
|
+
stub_request(
|
17
|
+
:get, "https://mapi.alipay.com/gateway.do?service=notify_verify&partner=#{Alipay.pid}¬ify_id=1234"
|
18
|
+
).to_return(body: "true")
|
17
19
|
assert !Alipay::Notify.verify?(@unsign_params)
|
18
20
|
end
|
19
21
|
|
20
22
|
def test_verify_notify_when_true
|
21
|
-
|
23
|
+
stub_request(
|
24
|
+
:get, "https://mapi.alipay.com/gateway.do?service=notify_verify&partner=#{Alipay.pid}¬ify_id=1234"
|
25
|
+
).to_return(body: "true")
|
22
26
|
assert Alipay::Notify.verify?(@sign_params)
|
23
27
|
end
|
24
28
|
|
25
29
|
def test_verify_notify_when_false
|
26
|
-
|
30
|
+
stub_request(
|
31
|
+
:get, "https://mapi.alipay.com/gateway.do?service=notify_verify&partner=#{Alipay.pid}¬ify_id=1234"
|
32
|
+
).to_return(body: "false")
|
27
33
|
assert !Alipay::Notify.verify?(@sign_params)
|
28
34
|
end
|
29
35
|
end
|
data/test/alipay/service_test.rb
CHANGED
@@ -92,11 +92,10 @@ class Alipay::ServiceTest < Minitest::Test
|
|
92
92
|
<is_success>T</is_success>
|
93
93
|
</alipay>
|
94
94
|
EOF
|
95
|
-
|
95
|
+
stub_request(
|
96
96
|
:get,
|
97
|
-
%r|https://mapi\.alipay\.com/gateway\.do
|
98
|
-
|
99
|
-
)
|
97
|
+
%r|https://mapi\.alipay\.com/gateway\.do.*|
|
98
|
+
).to_return(body: response_body)
|
100
99
|
|
101
100
|
assert_equal response_body, Alipay::Service.close_trade(
|
102
101
|
out_order_no: '1'
|
@@ -144,11 +143,10 @@ class Alipay::ServiceTest < Minitest::Test
|
|
144
143
|
<sign_type>MD5</sign_type>
|
145
144
|
</alipay>
|
146
145
|
EOF
|
147
|
-
|
146
|
+
stub_request(
|
148
147
|
:get,
|
149
|
-
%r|https://mapi\.alipay\.com/gateway\.do
|
150
|
-
|
151
|
-
)
|
148
|
+
%r|https://mapi\.alipay\.com/gateway\.do.*|
|
149
|
+
).to_return(body: response_body)
|
152
150
|
|
153
151
|
assert_equal response_body, Alipay::Service.single_trade_query(
|
154
152
|
out_trade_no: '1'
|
@@ -162,11 +160,10 @@ class Alipay::ServiceTest < Minitest::Test
|
|
162
160
|
<is_success>T</is_success>
|
163
161
|
</alipay>
|
164
162
|
EOF
|
165
|
-
|
163
|
+
stub_request(
|
166
164
|
:get,
|
167
|
-
%r|https://mapi\.alipay\.com/gateway\.do
|
168
|
-
|
169
|
-
)
|
165
|
+
%r|https://mapi\.alipay\.com/gateway\.do.*|
|
166
|
+
).to_return(body: body)
|
170
167
|
|
171
168
|
assert_equal body, Alipay::Service.send_goods_confirm_by_platform(
|
172
169
|
trade_no: 'trade_no',
|
@@ -228,8 +225,9 @@ class Alipay::ServiceTest < Minitest::Test
|
|
228
225
|
<sign_type>MD5</sign_type>
|
229
226
|
</alipay>
|
230
227
|
EOF
|
231
|
-
|
232
|
-
|
228
|
+
stub_request(
|
229
|
+
:get, %r|https://mapi\.alipay\.com/gateway\.do.*|
|
230
|
+
).to_return(:body => body)
|
233
231
|
assert_equal body, Alipay::Service.account_page_query(
|
234
232
|
page_no: 1,
|
235
233
|
gmt_start_time: (Time.now - 1).strftime('%Y-%m-%d %H:%M:%S'),
|
@@ -237,6 +235,19 @@ class Alipay::ServiceTest < Minitest::Test
|
|
237
235
|
)
|
238
236
|
end
|
239
237
|
|
238
|
+
def test_create_forex_trade_wap_url
|
239
|
+
options = {
|
240
|
+
out_trade_no: '20150401000-0001',
|
241
|
+
subject: 'Order Name',
|
242
|
+
merchant_url: 'http://example.com/itemback',
|
243
|
+
total_fee: '10.00', #or rmb_fee, only one
|
244
|
+
currency: 'USD',
|
245
|
+
return_url: 'https://example.com/orders/20150401000-0001',
|
246
|
+
notify_url: 'https://example.com/orders/20150401000-0001/notify'
|
247
|
+
}
|
248
|
+
assert_equal 'https://mapi.alipay.com/gateway.do?service=create_forex_trade_wap&_input_charset=utf-8&partner=1000000000000000&seller_id=1000000000000000&out_trade_no=20150401000-0001&subject=Order+Name&merchant_url=http%3A%2F%2Fexample.com%2Fitemback&total_fee=10.00¤cy=USD&return_url=https%3A%2F%2Fexample.com%2Forders%2F20150401000-0001¬ify_url=https%3A%2F%2Fexample.com%2Forders%2F20150401000-0001%2Fnotify&sign_type=MD5&sign=f15d9e3d885c12f1a994048342c07bef', Alipay::Service.create_forex_trade_wap_url(options)
|
249
|
+
end
|
250
|
+
|
240
251
|
def test_batch_trans_notify_url
|
241
252
|
options = {
|
242
253
|
notify_url: 'https://example.com/orders/20150401000-0001/notify',
|
@@ -16,17 +16,23 @@ class Alipay::Wap::NotifyTest < Minitest::Test
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_unsign_notify
|
19
|
-
|
19
|
+
stub_request(
|
20
|
+
:get, "https://mapi.alipay.com/gateway.do?service=notify_verify&partner=#{Alipay.pid}¬ify_id=#{@notify_id}"
|
21
|
+
).to_return(body: "true")
|
20
22
|
assert !Alipay::Wap::Notify.verify?(@notify_params)
|
21
23
|
end
|
22
24
|
|
23
25
|
def test_verify_notify_when_true
|
24
|
-
|
26
|
+
stub_request(
|
27
|
+
:get, "https://mapi.alipay.com/gateway.do?service=notify_verify&partner=#{Alipay.pid}¬ify_id=#{@notify_id}"
|
28
|
+
).to_return(body: "true")
|
25
29
|
assert Alipay::Wap::Notify.verify?(@sign_params)
|
26
30
|
end
|
27
31
|
|
28
32
|
def test_verify_notify_when_false
|
29
|
-
|
33
|
+
stub_request(
|
34
|
+
:get, "https://mapi.alipay.com/gateway.do?service=notify_verify&partner=#{Alipay.pid}¬ify_id=#{@notify_id}"
|
35
|
+
).to_return(body: "false")
|
30
36
|
assert !Alipay::Wap::Notify.verify?(@sign_params)
|
31
37
|
end
|
32
38
|
end
|
@@ -17,11 +17,10 @@ class Alipay::Wap::ServiceTest < Minitest::Test
|
|
17
17
|
&sign=SIGN
|
18
18
|
EOS
|
19
19
|
|
20
|
-
|
20
|
+
stub_request(
|
21
21
|
:get,
|
22
|
-
%r|https://wappaygw\.alipay\.com/service/rest\.htm
|
23
|
-
|
24
|
-
)
|
22
|
+
%r|https://wappaygw\.alipay\.com/service/rest\.htm.*|
|
23
|
+
).to_return(body: body)
|
25
24
|
|
26
25
|
assert_equal token, Alipay::Wap::Service.trade_create_direct_token(
|
27
26
|
req_data: {
|
@@ -39,10 +38,11 @@ class Alipay::Wap::ServiceTest < Minitest::Test
|
|
39
38
|
end
|
40
39
|
|
41
40
|
def test_security_risk_detect
|
42
|
-
|
41
|
+
stub_request(
|
43
42
|
:post,
|
44
|
-
%r|https://wappaygw\.alipay\.com/service/rest\.htm
|
45
|
-
|
43
|
+
%r|https://wappaygw\.alipay\.com/service/rest\.htm.*|
|
44
|
+
).to_return(
|
45
|
+
body: ' '
|
46
46
|
)
|
47
47
|
|
48
48
|
params = {
|
@@ -62,6 +62,6 @@ class Alipay::Wap::ServiceTest < Minitest::Test
|
|
62
62
|
key: TEST_RSA_PRIVATE_KEY
|
63
63
|
}
|
64
64
|
|
65
|
-
assert_equal '', Alipay::Wap::Service.security_risk_detect(params, options).body
|
65
|
+
assert_equal ' ', Alipay::Wap::Service.security_risk_detect(params, options).body
|
66
66
|
end
|
67
67
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alipay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rei
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: webmock
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|