alipay 0.14.0 → 0.15.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/.gitignore +1 -1
- data/CHANGELOG.md +6 -1
- data/LICENSE.txt +1 -1
- data/README.md +25 -759
- data/alipay.gemspec +4 -3
- data/bin/console +14 -0
- data/config.yml.example +6 -0
- data/doc/legacy_api.md +748 -0
- data/lib/alipay.rb +2 -2
- data/lib/alipay/client.rb +194 -0
- data/lib/alipay/sign/rsa2.rb +18 -0
- data/lib/alipay/version.rb +1 -1
- metadata +9 -36
- data/lib/alipay/app/service.rb +0 -27
- data/lib/alipay/app/sign.rb +0 -39
- data/test/alipay/app/service_test.rb +0 -20
- data/test/alipay/app/sign_test.rb +0 -15
- data/test/alipay/mobile/service_test.rb +0 -16
- data/test/alipay/mobile/sign_test.rb +0 -7
- data/test/alipay/notify_test.rb +0 -35
- data/test/alipay/service_test.rb +0 -265
- data/test/alipay/sign/md5_test.rb +0 -20
- data/test/alipay/sign/rsa_test.rb +0 -20
- data/test/alipay/sign_test.rb +0 -30
- data/test/alipay/utils_test.rb +0 -12
- data/test/alipay/wap/notify_test.rb +0 -38
- data/test/alipay/wap/service_test.rb +0 -67
- data/test/alipay/wap/sign_test.rb +0 -19
- data/test/alipay_test.rb +0 -11
- data/test/test_helper.rb +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fcc10137b698d1560fed86a1706776346054e24c
|
4
|
+
data.tar.gz: 9aef05704cc836dca1b3002386915ec5b87c6940
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b210fcf41f1713729caf7e9364c3d8b1729569fc283bc11f642a751166c9ea0526c2ceaf1aabf9715abed0425a9ce8c1eae246f977aacf1c9d8823289b28ff77
|
7
|
+
data.tar.gz: 5e66105cb20ee264b430ab66ead5d89209d6b26035cf8ffa0aaacb4bdb88e06d6c958306530bb799f95f977510c84537531e3442698879f806189b08979cd276
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
## master
|
2
2
|
|
3
|
-
## v0.
|
3
|
+
## v0.15.0 (2017-08-27)
|
4
|
+
|
5
|
+
- Add `Alipay::Client` for open API.
|
6
|
+
- Stop adding new feature to Alipay::Service, Alipay::App::Service, Alipay::Wap::Service, Alipay::Mobile::Service.
|
7
|
+
|
8
|
+
## v0.14.0 (2016-12-28)
|
4
9
|
|
5
10
|
- Add `Alipay::App::Service.create_forex_trade_wap_url` method, thanks @xiaohesong #61
|
6
11
|
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,781 +1,49 @@
|
|
1
1
|
# Alipay
|
2
2
|
|
3
|
-
|
3
|
+
Unofficial alipay ruby gem.
|
4
4
|
|
5
|
-
Alipay
|
5
|
+
Note: Alipay::Client Api have not enough feedback in production yet, please fully test in your staging environment before production. You can find legacy API document [here](doc/legacy_api.md).
|
6
|
+
|
7
|
+
You should read [https://doc.open.alipay.com](https://doc.open.alipay.com) before using this gem.
|
6
8
|
|
7
9
|
## Installation
|
8
10
|
|
9
11
|
Add this line to your application's Gemfile:
|
10
12
|
|
11
13
|
```ruby
|
12
|
-
gem 'alipay', '~> 0.
|
14
|
+
gem 'alipay', '~> 0.15.0'
|
13
15
|
```
|
14
16
|
|
15
|
-
|
17
|
+
Then run:
|
16
18
|
|
17
19
|
```console
|
18
20
|
$ bundle
|
19
21
|
```
|
20
22
|
|
21
|
-
##
|
22
|
-
|
23
|
-
```ruby
|
24
|
-
Alipay.pid = 'YOUR_PID'
|
25
|
-
Alipay.key = 'YOUR_KEY'
|
26
|
-
|
27
|
-
#Alipay.sign_type = 'MD5' # Available values: MD5, RSA. Default is MD5
|
28
|
-
#Alipay.debug_mode = true # Enable parameter check. Default is true.
|
29
|
-
```
|
30
|
-
|
31
|
-
You can set default key, or pass a key directly to service method:
|
32
|
-
|
33
|
-
```ruby
|
34
|
-
Service.create_partner_trade_by_buyer_url({
|
35
|
-
out_trade_no: 'OUT_TRADE_NO',
|
36
|
-
# Order params...
|
37
|
-
}, {
|
38
|
-
pid: 'ANOTHER_PID',
|
39
|
-
key: 'ANOTHER_KEY',
|
40
|
-
})
|
41
|
-
```
|
42
|
-
|
43
|
-
## Service
|
44
|
-
|
45
|
-
### 担保交易收款接口
|
46
|
-
|
47
|
-
#### Name
|
48
|
-
|
49
|
-
```ruby
|
50
|
-
create_partner_trade_by_buyer
|
51
|
-
```
|
52
|
-
|
53
|
-
#### Definition
|
54
|
-
|
55
|
-
```ruby
|
56
|
-
Alipay::Service.create_partner_trade_by_buyer_url({ARGUMENTS}, {OPTIONS})
|
57
|
-
```
|
58
|
-
|
59
|
-
#### Example
|
60
|
-
|
61
|
-
```ruby
|
62
|
-
Alipay::Service.create_partner_trade_by_buyer_url(
|
63
|
-
out_trade_no: '20150401000-0001',
|
64
|
-
subject: 'Order Name',
|
65
|
-
price: '10.00',
|
66
|
-
quantity: 12,
|
67
|
-
logistics_type: 'DIRECT',
|
68
|
-
logistics_fee: '0',
|
69
|
-
logistics_payment: 'SELLER_PAY',
|
70
|
-
return_url: 'https://example.com/orders/20150401000-0001',
|
71
|
-
notify_url: 'https://example.com/orders/20150401000-0001/notify'
|
72
|
-
)
|
73
|
-
# => 'https://mapi.alipay.com/gateway.do?service=create_partner_trade_by_buyer&...'
|
74
|
-
```
|
75
|
-
|
76
|
-
Guide consumer to this address to complete payment
|
77
|
-
|
78
|
-
#### Arguments
|
79
|
-
|
80
|
-
| Key | Requirement | Description |
|
81
|
-
| --- | ----------- | ----------- |
|
82
|
-
| out_order_no | required | Order id in your application. |
|
83
|
-
| subject | required | Order subject. |
|
84
|
-
| price | required | Order item's price. |
|
85
|
-
| quantity | required | Order item's quantity, total price is price * quantity. |
|
86
|
-
| logistics_type | required | Logistics type. Available values: POST, EXPRESS, EMS, DIRECT. |
|
87
|
-
| logistics_fee | required | Logistics fee. |
|
88
|
-
| logistics_payment | required | Who pay the logistics fee. Available values: BUYER_PAY, SELLER_PAY, BUYER_PAY_AFTER_RECEIVE. |
|
89
|
-
| return_url | optional | Redirect customer to this url after payment. |
|
90
|
-
| notify_url | optional | Alipay asyn notify url. |
|
91
|
-
|
92
|
-
This is not a complete list of arguments, please read official document: http://download.alipay.com/public/api/base/alipayescow.zip .
|
93
|
-
|
94
|
-
### 确认发货接口
|
95
|
-
|
96
|
-
#### Name
|
97
|
-
|
98
|
-
```ruby
|
99
|
-
send_goods_confirm_by_platform
|
100
|
-
```
|
101
|
-
|
102
|
-
#### Definition
|
103
|
-
|
104
|
-
```ruby
|
105
|
-
Alipay::Service.send_goods_confirm_by_platform({ARGUMENTS}, {OPTIONS})
|
106
|
-
```
|
107
|
-
|
108
|
-
#### Example
|
109
|
-
|
110
|
-
```ruby
|
111
|
-
Alipay::Service.send_goods_confirm_by_platform(
|
112
|
-
trade_no: '201504010000001',
|
113
|
-
logistics_name: 'example.com',
|
114
|
-
transport_type: 'DIRECT'
|
115
|
-
)
|
116
|
-
# => '<!xml version="1.0" encoding="utf-8"?><alipay><is_success>T</is_success></alipay>'
|
117
|
-
```
|
118
|
-
|
119
|
-
#### Arguments
|
120
|
-
|
121
|
-
| Key | Requirement | Description |
|
122
|
-
| --- | ----------- | ----------- |
|
123
|
-
| trade_no | required | Trade number in Alipay system, should get from notify message. |
|
124
|
-
| logistics_name | required | Logistics Name. |
|
125
|
-
| transport_type/create_transport_type | required | Allowed values: POST, EXPRESS, EMS, DIRECT. |
|
126
|
-
|
127
|
-
This is not a complete list of arguments, please read official document: http://download.alipay.com/public/api/base/alipayescow.zip .
|
128
|
-
|
129
|
-
### 即时到账收款接口
|
130
|
-
|
131
|
-
#### Name
|
23
|
+
## Usage
|
132
24
|
|
133
25
|
```ruby
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
```ruby
|
140
|
-
Alipay::Service.create_direct_pay_by_user_url({ARGUMENTS}, {OPTIONS})
|
141
|
-
```
|
142
|
-
|
143
|
-
#### Example
|
144
|
-
|
145
|
-
```ruby
|
146
|
-
Alipay::Service.create_direct_pay_by_user_url(
|
147
|
-
out_trade_no: '20150401000-0001',
|
148
|
-
subject: 'Order Name',
|
149
|
-
total_fee: '10.00',
|
150
|
-
return_url: 'https://example.com/orders/20150401000-0001',
|
151
|
-
notify_url: 'https://example.com/orders/20150401000-0001/notify'
|
26
|
+
alipay_client = Alipay::Client.new(
|
27
|
+
url: 'https://openapi.alipaydev.com/gateway.do',
|
28
|
+
app_id: '2016000000000000',
|
29
|
+
app_private_key: APP_PRIVATE_KEY,
|
30
|
+
alipay_public_key: ALIPAY_PUBLIC_KEY
|
152
31
|
)
|
153
|
-
```
|
154
|
-
|
155
|
-
#### Arguments
|
156
|
-
|
157
|
-
| Key | Requirement | Description |
|
158
|
-
| --- | ----------- | ----------- |
|
159
|
-
| out_order_no | required | Order id in your application. |
|
160
|
-
| subject | required | Order subject. |
|
161
|
-
| total_fee | required | Order's total fee. |
|
162
|
-
| return_url | optional | Redirect customer to this url after payment. |
|
163
|
-
| notify_url | optional | Alipay asyn notify url. |
|
164
|
-
|
165
|
-
This is not a complete list of arguments, please read official document: http://download.alipay.com/public/api/base/alipaydirect.zip .
|
166
|
-
|
167
|
-
### 手机网站支付接口
|
168
|
-
|
169
|
-
#### Name
|
170
|
-
|
171
|
-
```ruby
|
172
|
-
alipay.wap.create.direct.pay.by.user
|
173
|
-
```
|
174
|
-
|
175
|
-
#### Definition
|
176
|
-
|
177
|
-
```ruby
|
178
|
-
Alipay::Service.create_direct_pay_by_user_wap_url({ARGUMENTS}, {OPTIONS})
|
179
|
-
```
|
180
|
-
|
181
|
-
#### Example
|
182
32
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
33
|
+
alipay_client.page_execute_url(
|
34
|
+
method: 'alipay.trade.page.pay',
|
35
|
+
biz_content: {
|
36
|
+
out_trade_no: '20160401000000',
|
37
|
+
product_code: 'FAST_INSTANT_TRADE_PAY',
|
38
|
+
total_amount: '0.01',
|
39
|
+
subject: 'test'
|
40
|
+
}.to_json, # to_json is important!
|
41
|
+
timestamp: '2016-04-01 00:00:00'
|
190
42
|
)
|
43
|
+
# => 'https://openapi.alipaydev.com/gateway.do?app_id=201600...'
|
191
44
|
```
|
192
45
|
|
193
|
-
|
194
|
-
|
195
|
-
| Key | Requirement | Description |
|
196
|
-
| --- | ----------- | ----------- |
|
197
|
-
| out_order_no | required | Order id in your application. |
|
198
|
-
| subject | required | Order subject. |
|
199
|
-
| total_fee | required | Order's total fee. |
|
200
|
-
| return_url | optional | Redirect customer to this url after payment. |
|
201
|
-
| notify_url | optional | Alipay asyn notify url. |
|
202
|
-
|
203
|
-
This is not a complete list of arguments, please read official document: http://download.alipay.com/public/api/base/alipaywapdirect.zip .
|
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
|
-
|
251
|
-
### 即时到账批量退款有密接口
|
252
|
-
|
253
|
-
#### Name
|
254
|
-
|
255
|
-
```ruby
|
256
|
-
refund_fastpay_by_platform_pwd
|
257
|
-
```
|
258
|
-
|
259
|
-
#### Definition
|
260
|
-
|
261
|
-
```ruby
|
262
|
-
Alipay::Service.refund_fastpay_by_platform_pwd_url
|
263
|
-
```
|
264
|
-
|
265
|
-
#### Example
|
266
|
-
|
267
|
-
```ruby
|
268
|
-
batch_no = Alipay::Utils.generate_batch_no # refund batch no, you SHOULD store it to db to avoid alipay duplicate refund
|
269
|
-
Alipay::Service.refund_fastpay_by_platform_pwd_url(
|
270
|
-
batch_no: batch_no,
|
271
|
-
data: [{
|
272
|
-
trade_no: '201504010000001',
|
273
|
-
amount: '10.0',
|
274
|
-
reason: 'REFUND_REASON'
|
275
|
-
}],
|
276
|
-
notify_url: 'https://example.com/orders/20150401000-0001/refund_notify'
|
277
|
-
)
|
278
|
-
# => https://mapi.alipay.com/gateway.do?service=refund_fastpay_by_platform_pwd&...
|
279
|
-
```
|
280
|
-
|
281
|
-
#### Arguments
|
282
|
-
|
283
|
-
| Key | Requirement | Description |
|
284
|
-
| --- | ----------- | ----------- |
|
285
|
-
| batch_no | required | Refund batch no, you should store it to db to avoid alipay duplicate refund. |
|
286
|
-
| data | required | Refund data, a hash array. |
|
287
|
-
| notify_url | required | Alipay notify url. |
|
288
|
-
|
289
|
-
##### Data Item
|
290
|
-
|
291
|
-
| Key | Requirement | Description |
|
292
|
-
| --- | ----------- | ----------- |
|
293
|
-
| trade_no | required | Trade number in alipay system. |
|
294
|
-
| amount | required | Refund amount. |
|
295
|
-
| reason | required | Refund reason. Less than 256 bytes, could not contain special characters: ^ $ | #. |
|
296
|
-
|
297
|
-
This is not a complete list of arguments, please read official document: http://download.alipay.com/public/api/base/alipaydirect.zip .
|
298
|
-
|
299
|
-
### 关闭交易接口
|
300
|
-
|
301
|
-
#### Name
|
302
|
-
|
303
|
-
```ruby
|
304
|
-
close_trade
|
305
|
-
```
|
306
|
-
|
307
|
-
#### Definition
|
308
|
-
|
309
|
-
```ruby
|
310
|
-
Alipay::Service.close_trade({ARGUMENTS}, {OPTIONS})
|
311
|
-
```
|
312
|
-
|
313
|
-
#### Example
|
314
|
-
|
315
|
-
```ruby
|
316
|
-
Alipay::Service.close_trade(
|
317
|
-
trade_no: '201504010000001'
|
318
|
-
)
|
319
|
-
# => '<?xml version="1.0" encoding="utf-8"?><alipay><is_success>T</is_success></alipay>'
|
320
|
-
|
321
|
-
# When fail
|
322
|
-
# => '<?xml version="1.0" encoding="utf-8"?><alipay><is_success>F</is_success> <error>TRADE_STATUS_NOT_AVAILD</error></alipay>'
|
323
|
-
```
|
324
|
-
|
325
|
-
#### ARGUMENTS
|
326
|
-
|
327
|
-
| Key | Requirement | Description |
|
328
|
-
| --- | ----------- | ----------- |
|
329
|
-
| out_order_no | optional * | Order number in your application. |
|
330
|
-
| trade_no | optional * | Trade number in alipay system. |
|
331
|
-
|
332
|
-
\* out_order_no and trade_no must have one.
|
333
|
-
|
334
|
-
### 单笔交易查询接口
|
335
|
-
|
336
|
-
#### Name
|
337
|
-
|
338
|
-
```ruby
|
339
|
-
single_trade_query
|
340
|
-
```
|
341
|
-
|
342
|
-
#### Definition
|
343
|
-
|
344
|
-
```ruby
|
345
|
-
Alipay::Service.single_trade_query({ARGUMENTS}, {OPTIONS})
|
346
|
-
```
|
347
|
-
|
348
|
-
#### Example
|
349
|
-
|
350
|
-
```ruby
|
351
|
-
Alipay::Service.single_trade_query(
|
352
|
-
trade_no: '201504010000001'
|
353
|
-
)
|
354
|
-
# => '<?xml version="1.0" encoding="utf-8"?><alipay><is_success>T</is_success>...
|
355
|
-
```
|
356
|
-
|
357
|
-
#### ARGUMENTS
|
358
|
-
|
359
|
-
| Key | Requirement | Description |
|
360
|
-
| --- | ----------- | ----------- |
|
361
|
-
| out_trade_no | optional * | Order number in your application. |
|
362
|
-
| trade_no | optional * | Trade number in alipay system. |
|
363
|
-
|
364
|
-
\* out_trade_no and trade_no must have one.
|
365
|
-
|
366
|
-
### 境外收单接口
|
367
|
-
|
368
|
-
#### Name
|
369
|
-
|
370
|
-
```ruby
|
371
|
-
create_forex_trade
|
372
|
-
```
|
373
|
-
|
374
|
-
#### Definition
|
375
|
-
|
376
|
-
```ruby
|
377
|
-
Alipay::Service.create_forex_trade_url({ARGUMENTS}, {OPTIONS})
|
378
|
-
```
|
379
|
-
|
380
|
-
#### Example
|
381
|
-
|
382
|
-
```ruby
|
383
|
-
Alipay::Service.create_forex_trade_url(
|
384
|
-
out_trade_no: '20150401000-0001',
|
385
|
-
subject: 'Subject',
|
386
|
-
currency: 'USD',
|
387
|
-
total_fee: '10.00',
|
388
|
-
notify_url: 'https://example.com/orders/20150401000-0001/notify'
|
389
|
-
)
|
390
|
-
# => 'https://mapi.alipay.com/gateway.do?service=create_forex_trade...'
|
391
|
-
```
|
392
|
-
|
393
|
-
#### ARGUMENTS
|
394
|
-
|
395
|
-
| Key | Requirement | Description |
|
396
|
-
| --- | ----------- | ----------- |
|
397
|
-
| out_trade_no | required | Order number in your application. |
|
398
|
-
| subject | required | Order subject. |
|
399
|
-
| currency | required | Abbreviated currency name. |
|
400
|
-
| total_fee | required * | Order total price. |
|
401
|
-
| notify_url | optional | Alipay asyn notify url. |
|
402
|
-
|
403
|
-
\* total_fee can be replace by rmb_fee.
|
404
|
-
|
405
|
-
### 境外收单单笔退款接口
|
406
|
-
|
407
|
-
#### Name
|
408
|
-
|
409
|
-
```ruby
|
410
|
-
forex_refund
|
411
|
-
```
|
412
|
-
|
413
|
-
#### Definition
|
414
|
-
|
415
|
-
```ruby
|
416
|
-
Alipay::Service.forex_refund_url({ARGUMENTS}, {OPTIONS})
|
417
|
-
```
|
418
|
-
|
419
|
-
#### Example
|
420
|
-
|
421
|
-
```ruby
|
422
|
-
Alipay::Service.forex_refund_url(
|
423
|
-
out_return_no: '20150401000-0001',
|
424
|
-
out_trade_no: '201504010000001',
|
425
|
-
return_amount: '10.00',
|
426
|
-
currency: 'USD',
|
427
|
-
reason: 'Reason',
|
428
|
-
gmt_return: '20150401000000'
|
429
|
-
)
|
430
|
-
```
|
431
|
-
|
432
|
-
#### ARGUMENTS
|
433
|
-
|
434
|
-
| Key | Requirement | Description |
|
435
|
-
| --- | ----------- | ----------- |
|
436
|
-
| out_return_no | required | Refund no, you should store it to db to avoid alipay duplicate refund. |
|
437
|
-
| out_trade_no | required | Order number in your application. |
|
438
|
-
| return_amount | required | Refund amount. |
|
439
|
-
| currency | required | Abbreviated currency name. |
|
440
|
-
| reason | required | Refun reason. |
|
441
|
-
| gmt_return | required * | YYYYMMDDHHMMSS Beijing Time. |
|
442
|
-
|
443
|
-
\* Auto set Time.now if not set.
|
444
|
-
|
445
|
-
### 账单明细分页查询接口
|
446
|
-
|
447
|
-
#### Name
|
448
|
-
|
449
|
-
```ruby
|
450
|
-
account.page.query
|
451
|
-
```
|
452
|
-
|
453
|
-
#### Definition
|
454
|
-
|
455
|
-
```ruby
|
456
|
-
Alipay::Service::account_page_query({PARAMS}, {OPTIONS})
|
457
|
-
```
|
458
|
-
|
459
|
-
#### Example
|
460
|
-
|
461
|
-
```ruby
|
462
|
-
Alipay::Service.account_page_query(
|
463
|
-
page_no: 1,
|
464
|
-
gmt_start_time: '2015-10-25 00:00:00',
|
465
|
-
gmt_end_time: '2015-10-26 00:00:00'
|
466
|
-
)
|
467
|
-
```
|
468
|
-
|
469
|
-
#### Arguments
|
470
|
-
|
471
|
-
It's an unpublic api, contact support for permission and document.
|
472
|
-
|
473
|
-
### 批量付款到支付宝账户接口
|
474
|
-
|
475
|
-
#### Name
|
476
|
-
|
477
|
-
```ruby
|
478
|
-
batch_trans_notify
|
479
|
-
```
|
480
|
-
|
481
|
-
#### Definition
|
482
|
-
|
483
|
-
```ruby
|
484
|
-
Alipay::Service::batch_trans_notify_url({PARAMS}, {OPTIONS})
|
485
|
-
```
|
486
|
-
|
487
|
-
#### Example
|
488
|
-
|
489
|
-
```ruby
|
490
|
-
Alipay::Service.batch_trans_notify_url(
|
491
|
-
notify_url: 'https://example.com/orders/20150401000-0001/notify',
|
492
|
-
account_name: '毛毛',
|
493
|
-
detail_data: '0315006^testture0002@126.com^常炜买家^1000.00^hello',
|
494
|
-
batch_no: '20080107001',
|
495
|
-
batch_num: 1,
|
496
|
-
batch_fee: 1000.00,
|
497
|
-
email: 'biz_932@alitest.com'
|
498
|
-
)
|
499
|
-
#=> 'https://mapi.alipay.com/gateway.do?service=batch_trans_notify&...'
|
500
|
-
```
|
501
|
-
|
502
|
-
#### Arguments
|
503
|
-
|
504
|
-
| Key | Requirement | Description |
|
505
|
-
| --- | ----------- | ----------- |
|
506
|
-
| notify_url | required | Alipay asyn notify url. |
|
507
|
-
| account_name | required | Alipay account name of payer. |
|
508
|
-
| detail_data | required | Payment data. |
|
509
|
-
| batch_no | required | Batch transaction number. |
|
510
|
-
| batch_num | required | Batch transaction count. |
|
511
|
-
| batch_fee | required | Batch transaction total amount. |
|
512
|
-
| email | required | Alipay email account of payer. |
|
513
|
-
|
514
|
-
Document: https://doc.open.alipay.com/doc2/detail?treeId=64&articleId=103773&docType=1
|
515
|
-
|
516
|
-
### 验证通知
|
517
|
-
|
518
|
-
#### Name
|
519
|
-
|
520
|
-
```ruby
|
521
|
-
notify_verify
|
522
|
-
```
|
523
|
-
|
524
|
-
#### Definition
|
525
|
-
|
526
|
-
```ruby
|
527
|
-
Alipay::Notify.verify?({PARAMS}, {OPTIONS})
|
528
|
-
```
|
529
|
-
|
530
|
-
#### Example
|
531
|
-
|
532
|
-
```ruby
|
533
|
-
# Rails
|
534
|
-
# params except :controller_name, :action_name, :host, etc.
|
535
|
-
notify_params = params.except(*request.path_parameters.keys)
|
536
|
-
|
537
|
-
Alipay::Notify.verify?(notify_params, options = {})
|
538
|
-
```
|
539
|
-
|
540
|
-
## Mobile::Service
|
541
|
-
|
542
|
-
### 移动支付接口
|
543
|
-
|
544
|
-
#### Name
|
545
|
-
|
546
|
-
```ruby
|
547
|
-
mobile.securitypay.pay
|
548
|
-
```
|
549
|
-
|
550
|
-
#### Definition
|
551
|
-
|
552
|
-
```ruby
|
553
|
-
Alipay::Mobile::Service.mobile_securitypay_pay_string({ARGUMENTS}, {OPTIONS})
|
554
|
-
```
|
555
|
-
|
556
|
-
#### Example
|
557
|
-
|
558
|
-
```ruby
|
559
|
-
Alipay::Mobile::Service.mobile_securitypay_pay_string(
|
560
|
-
out_trade_no: '20150401000-0001',
|
561
|
-
notify_url: 'https://example.com/orders/20150401000-0001/notify'
|
562
|
-
subject: 'subject',
|
563
|
-
total_fee: '10.00',
|
564
|
-
body: 'text'
|
565
|
-
)
|
566
|
-
# => service="mobile.securitypay.pay"&_input_charset="utf-8"&partner=...
|
567
|
-
```
|
568
|
-
|
569
|
-
#### ARGUMENTS
|
570
|
-
|
571
|
-
| Key | Requirement | Description |
|
572
|
-
| --- | ----------- | ----------- |
|
573
|
-
| out_trade_no | required | Order number in your application. |
|
574
|
-
| notify_url | required | Alipay asyn notify url. |
|
575
|
-
| subject | required | Order subject. |
|
576
|
-
| total_fee | required | Order total price. |
|
577
|
-
| body | required | Order body, less than 512 bytes. |
|
578
|
-
|
579
|
-
\* This service only support RSA sign_type.
|
580
|
-
|
581
|
-
This is not a complete list of arguments, please read official document: http://download.alipay.com/public/api/base/WS_MOBILE_PAY_SDK_BASE.zip .
|
582
|
-
|
583
|
-
### APP支付接口
|
584
|
-
|
585
|
-
#### Name
|
586
|
-
|
587
|
-
```ruby
|
588
|
-
alipay.trade.app.pay
|
589
|
-
```
|
590
|
-
|
591
|
-
#### Definition
|
592
|
-
|
593
|
-
```ruby
|
594
|
-
Alipay::App::Service.alipay_trade_app_pay({ARGUMENTS}, {OPTIONS})
|
595
|
-
```
|
596
|
-
|
597
|
-
#### Example
|
598
|
-
|
599
|
-
```ruby
|
600
|
-
biz_content = {
|
601
|
-
'body': body, 'out_trade_no': out_trade_no, 'passback_params': passback_params,
|
602
|
-
'product_code': 'QUICK_MSECURITY_PAY', 'subject': subject, 'total_amount': total_amount
|
603
|
-
}.to_json
|
604
|
-
|
605
|
-
Alipay::App::Service.alipay_trade_app_pay(
|
606
|
-
notify_url: 'https://example.com/orders/20150401000-0001/notify',
|
607
|
-
app_id: '1234567890',
|
608
|
-
biz_content: biz_content
|
609
|
-
)
|
610
|
-
# => service="alipay.trade.app.pay"&_input_charset="utf-8"&partner=...
|
611
|
-
```
|
612
|
-
|
613
|
-
#### ARGUMENTS
|
614
|
-
|
615
|
-
| Key | Requirement | Description |
|
616
|
-
| --- | ----------- | ----------- |
|
617
|
-
| app_id | required | Application-assigned id |
|
618
|
-
| out_trade_no | required | Order number in your application. |
|
619
|
-
| notify_url | required | Alipay asyn notify url. |
|
620
|
-
| subject | required | Order subject. |
|
621
|
-
| total_amount | required | Order total price. |
|
622
|
-
| body | required | Order body, less than 512 bytes. |
|
623
|
-
| biz_content | required | A list of business parameters |
|
624
|
-
|
625
|
-
\* This service only support RSA sign_type.
|
626
|
-
|
627
|
-
This is not a complete list of arguments, please read official document: https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.vwh1xQ&treeId=193&articleId=105465&docType=1 .
|
628
|
-
|
629
|
-
#### APP支付验证通知
|
630
|
-
|
631
|
-
```ruby
|
632
|
-
Alipay::App::Sign.verify?(params)
|
633
|
-
```
|
634
|
-
|
635
|
-
## Wap::Service
|
636
|
-
|
637
|
-
### 授权接口
|
638
|
-
|
639
|
-
#### Name
|
640
|
-
|
641
|
-
```ruby
|
642
|
-
alipay.wap.trade.create.direct
|
643
|
-
```
|
644
|
-
|
645
|
-
#### Definition
|
646
|
-
|
647
|
-
```ruby
|
648
|
-
Alipay::Wap::Service.trade_create_direct_token({ARGUMENTS}, {OPTIONS}}
|
649
|
-
```
|
650
|
-
|
651
|
-
#### Example
|
652
|
-
|
653
|
-
```ruby
|
654
|
-
token = Alipay::Wap::Service.trade_create_direct_token(
|
655
|
-
req_data: {
|
656
|
-
seller_account_name: 'account@example.com',
|
657
|
-
out_trade_no: '20150401000-0001',
|
658
|
-
subject: 'Subject',
|
659
|
-
total_fee: '10.0',
|
660
|
-
call_back_url: 'https://example.com/orders/20150401000-0001',
|
661
|
-
notify_url: 'https://example.com/orders/20150401000-0001/notify'
|
662
|
-
}
|
663
|
-
)
|
664
|
-
```
|
665
|
-
|
666
|
-
#### ARGUMENTS
|
667
|
-
|
668
|
-
| Key | Requirement | Description |
|
669
|
-
| --- | ----------- | ----------- |
|
670
|
-
| req_data | required | See req_data ARGUMENTS |
|
671
|
-
|
672
|
-
##### req_data ARGUMENTS
|
673
|
-
|
674
|
-
| Key | Requirement | Description |
|
675
|
-
| --- | ----------- | ----------- |
|
676
|
-
| seller_account_name | required | Alipay seller account. |
|
677
|
-
| out_order_no | required | Order id in your application. |
|
678
|
-
| subject | required | Order subject. |
|
679
|
-
| total_fee | required | Order total price. |
|
680
|
-
| return_url | optional | Redirect customer to this url after payment. |
|
681
|
-
| notify_url | optional | Alipay asyn notify url. |
|
682
|
-
|
683
|
-
This is not a complete list of arguments, please read official document: http://download.alipay.com/public/api/base/WS_WAP_PAYWAP.zip .
|
684
|
-
|
685
|
-
### 交易接口
|
686
|
-
|
687
|
-
#### Name
|
688
|
-
|
689
|
-
```ruby
|
690
|
-
alipay.wap.auth.authAndExecute
|
691
|
-
```
|
692
|
-
|
693
|
-
#### Definition
|
694
|
-
|
695
|
-
```ruby
|
696
|
-
Alipay::Wap::Service.auth_and_execute_url({ARGUMENTS}, {OPTIONS})
|
697
|
-
```
|
698
|
-
|
699
|
-
#### Example
|
700
|
-
|
701
|
-
```ruby
|
702
|
-
Alipay::Wap::Service.auth_and_execute_url(request_token: token)
|
703
|
-
```
|
704
|
-
#### ARGUMENTS
|
705
|
-
|
706
|
-
| Key | Requirement | Description |
|
707
|
-
| --- | ----------- | ----------- |
|
708
|
-
| request_token | required | Get from trade_create_direct_token |
|
709
|
-
|
710
|
-
### 风险探测服务接口
|
711
|
-
|
712
|
-
#### Name
|
713
|
-
|
714
|
-
```ruby
|
715
|
-
alipay.security.risk.detect
|
716
|
-
```
|
717
|
-
|
718
|
-
#### Definition
|
719
|
-
|
720
|
-
```ruby
|
721
|
-
Alipay::Wap::Service.security_risk_detect({ARGUMENTS}, {OPTIONS})
|
722
|
-
```
|
723
|
-
|
724
|
-
#### Example
|
725
|
-
|
726
|
-
```ruby
|
727
|
-
Alipay::Wap::Service.security_risk_detect({
|
728
|
-
order_no: '1',
|
729
|
-
order_credate_time: '1970-01-01 00:00:00',
|
730
|
-
order_category: 'TestCase^AlipayGem^Ruby',
|
731
|
-
order_item_name: 'item',
|
732
|
-
order_amount: '0.01',
|
733
|
-
buyer_account_no: '2088123123',
|
734
|
-
buyer_bind_mobile: '13600000000',
|
735
|
-
buyer_reg_date: '1970-01-01 00:00:00',
|
736
|
-
terminal_type: 'WAP'
|
737
|
-
}, {
|
738
|
-
sign_type: 'RSA',
|
739
|
-
key: RSA_PRIVATE_KEY
|
740
|
-
})
|
741
|
-
```
|
742
|
-
#### ARGUMENTS
|
743
|
-
|
744
|
-
| Key | Requirement | Description |
|
745
|
-
| --- | ----------- | ----------- |
|
746
|
-
| order_no | optional | Order id in your application. |
|
747
|
-
| order_credate_time | optional | Order created time. |
|
748
|
-
| order_category | optional | Categories of Order's items. using `^` as splitter. |
|
749
|
-
| order_item_name | optional | Order subject. |
|
750
|
-
| order_amount | optional | Order item's price. |
|
751
|
-
| buyer_account_no | optional | User id in your application. |
|
752
|
-
| buyer_reg_date | optional | User created time. |
|
753
|
-
| buyer_bind_mobile | optional | User mobile phone. |
|
754
|
-
| terminal_type | optional | The terminal type which user are using to request the payment, can be `MOBILE` for App, `WAP` for mobile, `WEB` for PC. |
|
755
|
-
|
756
|
-
### 验证通知
|
757
|
-
|
758
|
-
#### Name
|
759
|
-
|
760
|
-
```ruby
|
761
|
-
notify_verify
|
762
|
-
```
|
763
|
-
|
764
|
-
#### Definition
|
765
|
-
|
766
|
-
```ruby
|
767
|
-
Alipay::Wap::Notify.verify?({PARAMS}, {OPTIONS})
|
768
|
-
```
|
769
|
-
|
770
|
-
#### Example
|
771
|
-
|
772
|
-
```ruby
|
773
|
-
# Rails
|
774
|
-
# params except :controller_name, :action_name, :host, etc.
|
775
|
-
notify_params = params.except(*request.path_parameters.keys)
|
776
|
-
|
777
|
-
Alipay::Wap::Notify.verify?(notify_params)
|
778
|
-
```
|
46
|
+
Read [Alipay::Client](lib/alipay/client.rb) for usage detail.
|
779
47
|
|
780
48
|
## Contributing
|
781
49
|
|
@@ -791,8 +59,6 @@ Bug report or pull request are welcome.
|
|
791
59
|
|
792
60
|
Please write unit test with your code if necessary.
|
793
61
|
|
794
|
-
##
|
795
|
-
|
796
|
-
Donate to maintainer let him make this gem better.
|
62
|
+
## License
|
797
63
|
|
798
|
-
|
64
|
+
MIT License
|