new_alipay 0.1.3 → 0.1.5

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: e84190e0e1890628fff77282b759e0ac2268d089
4
- data.tar.gz: 535159eea4660ac79d1818c1a648b2517e5df6ea
3
+ metadata.gz: 46625bdc1bd808457c5e746d43e74a5d83e27183
4
+ data.tar.gz: 53b1202549e0ea1255c2370f147635a2f5cea095
5
5
  SHA512:
6
- metadata.gz: 5377abc3b6ee19ba8d2502c9cbcb62f562e8fd56b6fdc50246ad632cbf20fd96ef8dba6ac923ca50d46291d72b503189a48454026a5bd92bd76b8d72fcd08982
7
- data.tar.gz: 2eb388f3a86ef3842d28128582d26377bef5a08a385c12ce6cb9d3dbe5043a4d672d8a582a98c3b293edcdf3883d3b5eea0ca507248b9b47f2eb40b2a4986afc
6
+ metadata.gz: ef2d0e7e85112d78e64f4484412eb2b99749255540c4443251446a83b45b7cbc181a5ba0106bc4ac31eaf19437def966e938ae38643a277153120da28e1bbc84
7
+ data.tar.gz: 63dee58909b1c66e5729b6f25cb5d80daa388b969294e53ec0878bfb2b8a27fc97696c0d91ceceac3a4cd9755a849d1027d14652a8b5709de36f9e8da9d84cd1
data/.gitignore CHANGED
@@ -26,6 +26,7 @@ build/
26
26
  /.bundle/
27
27
  /vendor/bundle
28
28
  /lib/bundler/man/
29
+ /spec/*.rb
29
30
 
30
31
  # for a library or gem, you might want to ignore these files since the code is
31
32
  # intended to run in multiple environments; otherwise, check them in:
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source 'https://ruby.taobao.org'
2
2
 
3
3
  # Specify your gem's dependencies in new_alipay.gemspec
4
4
  gemspec
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- new_alipay (0.1.2)
4
+ new_alipay (0.1.3)
5
5
 
6
6
  GEM
7
- remote: https://rubygems.org/
7
+ remote: https://ruby.taobao.org/
8
8
  specs:
9
9
  actionmailer (3.2.21)
10
10
  actionpack (= 3.2.21)
@@ -112,4 +112,4 @@ DEPENDENCIES
112
112
  rspec (~> 3.2)
113
113
 
114
114
  BUNDLED WITH
115
- 1.10.3
115
+ 1.11.2
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # NewAlipay
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/new_alipay`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ 支付宝快捷支付+支付宝批量付款
6
4
 
7
5
  ## Installation
8
6
 
@@ -22,7 +20,77 @@ Or install it yourself as:
22
20
 
23
21
  ## Usage
24
22
 
25
- TODO: Write usage instructions here
23
+ ###移动支付
24
+ ####配置文件
25
+ 将以下代码写入`config/initializers/new_alipay.rb`
26
+ ```ruby
27
+ NewAlipay.seller_email='133xxxxyyyy'
28
+ NewAlipay.partner='2088xxxxxxxxxx'
29
+ NewAlipay.key='324234kuwerwerwerweewxxxxxxx'
30
+ ```
31
+ ####创建订单
32
+ ```ruby
33
+ rsa= NewAlipay.mobile_trade_create({
34
+ notify_url: 'http://test.yourserver.com/',
35
+ out_trade_no: "#{Time.now.strftime('%Y%m%d%H%M%S')}_#{Random.rand(1000)}",
36
+ subject: 'test',
37
+ body: 'test',
38
+ total_fee: 0.01
39
+ })
40
+ #=>输出创建的支付订单的签名字符串
41
+ ```
42
+ ####校验参数(RSA方式)
43
+ ```ruby
44
+ result = NewAlipay.verify_rsa?({
45
+ discount: "0.00",
46
+ payment_type: 1,
47
+ subject: '100元购买90天(送100元话费)',
48
+ trade_no: "20150715000010007900xxxxxx",
49
+ buyer_email: "152xxxxwwww",
50
+ gmt_create: '2015-07-15 14:36:09',
51
+ notify_type: 'trade_status_sync',
52
+ quantity: 1,
53
+ out_trade_no: '20150715143551584527',
54
+ seller_id: '2088xxxxxxxxx',
55
+ notify_time: '2015-07-15 14:36:09',
56
+ body: '100元购买90天(送100元话费)',
57
+ trade_status: 'TRADE_FINISHED',
58
+ is_total_fee_adjust: 'N',
59
+ total_fee: 0.01,
60
+ gmt_payment: '2015-07-15 14:36:09',
61
+ seller_email: "133xxxxyyyy",
62
+ gmt_close: '2015-07-15 14:36:09',
63
+ price: 0.01,
64
+ buyer_id: "208870xxxxxxyyyyy",
65
+ notify_id: "60f9sd2a318ds12a44165a056xxxxxxx",
66
+ use_coupon: 'N',
67
+ sign_type: 'RSA',
68
+ sign: "xxxxx/yygiAQo9Ey4JkdGSUV+F1xxxxM2Z3pA5C32423cZZjEPiLEURGZpSQ="
69
+ })
70
+ puts "\nverify:#{result}\n"
71
+ #=>true
72
+ ```
73
+
74
+ ###批量付款
75
+ ####配置文件
76
+ 将以下代码写入`config/initializers/new_alipay.rb`
77
+ ```ruby
78
+ NewAlipay.seller_email='133xxxxyyyy'
79
+ NewAlipay.partner='2088xxxxxxxxxx'
80
+ NewAlipay.key='324234kuwerwerwerweewxxxxxxx'
81
+ NewAlipay.account_name='xxxx公司/你的真实姓名'
82
+ ```
83
+ ####批量付款(获取url)
84
+ ```ruby
85
+
86
+ request_url = NewAlipay::BatchTrans.submit({
87
+ notify_url: 'http://test.yourserver.com/callback',
88
+ batch_fee: 0.01,
89
+ batch_num: 1,
90
+ detail_data: "#{Time.new.strftime('%Y%m%d')+18.times.inject('') { |acc, i| acc+=('0'..'9').to_a[(i+Random.rand(1000))%10]; acc }}^152xxxxyyyy^某某^0.01^测试支付"
91
+
92
+ })
93
+ ```
26
94
 
27
95
  ## Development
28
96
 
@@ -0,0 +1,35 @@
1
+ module NewAlipay
2
+ module BatchTrans
3
+
4
+ #支付宝网关地址(新)
5
+ ALIPAY_GATEWAY_NEW = 'https://mapi.alipay.com/gateway.do?'
6
+
7
+ module_function
8
+ # 建立请求,以表单HTML形式构造(默认)
9
+ # @param para_temp 请求参数数组
10
+ # @return 提交表单HTML文本
11
+ def submit(para_temp)
12
+ parameters = {
13
+ "service" => "batch_trans_notify",
14
+ "partner" => NewAlipay.partner,
15
+ "notify_url" => para_temp[:notify_url],
16
+ "email" => NewAlipay.seller_email,
17
+ "account_name" => NewAlipay.account_name,
18
+ "pay_date" => Time.new.strftime('%Y-%m-%d'),
19
+ "batch_no" => Time.new.strftime('%Y%m%d')+16.times.inject('') { |acc, i| acc+=('0'..'9').to_a[(i+Random.rand(1000))%10]; acc },
20
+ "batch_fee" => para_temp[:batch_fee],
21
+ "batch_num" => para_temp[:batch_num],
22
+ "detail_data" => para_temp[:detail_data],
23
+ "_input_charset" => "utf-8"
24
+ }
25
+ signing_str_array = parameters.inject([]) { |memo, (key, v)| memo << "#{key}=#{v}"; memo }
26
+ sorted_signing_str_array = signing_str_array.sort! { |m, n| m.to_s <=> n.to_s }
27
+ sign = Digest::MD5.hexdigest(sorted_signing_str_array.join('&')+NewAlipay.key)
28
+
29
+ sorted_signing_str_array << "sign=#{sign}" << 'sign_type=MD5'
30
+
31
+ "#{ALIPAY_GATEWAY_NEW}#{sorted_signing_str_array.join('&')}"
32
+ end
33
+
34
+ end
35
+ end
@@ -1,3 +1,3 @@
1
1
  module NewAlipay
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.5"
3
3
  end
data/lib/new_alipay.rb CHANGED
@@ -3,10 +3,11 @@ require "new_alipay/version"
3
3
  require "faraday"
4
4
  require 'openssl'
5
5
  require 'base64'
6
+ require 'new_alipay/batch_trans'
6
7
 
7
8
  module NewAlipay
8
9
  class << self
9
- attr_accessor :seller_email, :partner, :key
10
+ attr_accessor :seller_email, :partner, :key, :account_name
10
11
  attr_accessor :rsa_private_key_path, :alipay_public_key_path
11
12
  end
12
13
  module_function
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: new_alipay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - saxer
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-07-15 00:00:00.000000000 Z
11
+ date: 2016-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,7 +80,7 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.2'
83
- description: 支付宝移动支付
83
+ description: "支付宝移动支付"
84
84
  email:
85
85
  - 15201280641@qq.com
86
86
  executables: []
@@ -97,6 +97,7 @@ files:
97
97
  - bin/console
98
98
  - bin/setup
99
99
  - lib/new_alipay.rb
100
+ - lib/new_alipay/batch_trans.rb
100
101
  - lib/new_alipay/version.rb
101
102
  - new_alipay.gemspec
102
103
  - rsa.php
@@ -121,8 +122,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
122
  version: '0'
122
123
  requirements: []
123
124
  rubyforge_project:
124
- rubygems_version: 2.4.6
125
+ rubygems_version: 2.4.3
125
126
  signing_key:
126
127
  specification_version: 4
127
- summary: 支付宝支付
128
+ summary: "支付宝支付"
128
129
  test_files: []