alipay-easysdk-ruby 1.0.0 → 1.0.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/examples/demo.rb +3 -4
- data/examples/demo_with_post.rb +4 -4
- data/lib/alipay/easysdk/kernel/easy_sdk_kernel.rb +22 -9
- data/lib/alipay/easysdk/payment/page/client.rb +2 -1
- data/lib/alipay/easysdk/payment/page/models/alipay_trade_page_pay_response.rb +2 -1
- data/lib/alipay/easysdk/payment/wap/client.rb +2 -1
- data/lib/alipay/easysdk/payment/wap/models/alipay_trade_wap_pay_response.rb +2 -1
- data/lib/alipay/easysdk/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c2b04a16730b90788a7d0c75911eb49750f253f1a40cf6efab4a81696a31cf9b
|
|
4
|
+
data.tar.gz: c66dfd5f038def8e6462b1cf2faa61f2f5fd42c42b2eea9b9426977b123a3eb9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a97a34c94daf4056fe0b7d102db422bc3080c16f74f19b1e438f1e8e5993dc3288b5a552854d6e0898185f9f40609f529956250e0a363f1622a5a2cbd40593dd
|
|
7
|
+
data.tar.gz: 28dc7cda0b59867844a27ca7871ee27cbcbf5bfc3b5908ec17c522b683e56300bd79a38f916ef87b3b275772264b715133ff344644a550e166831dc657ea2362
|
data/examples/demo.rb
CHANGED
|
@@ -14,8 +14,8 @@ def get_options
|
|
|
14
14
|
gateway_host: 'openapi-sandbox.dl.alipaydev.com',
|
|
15
15
|
sign_type: 'RSA2',
|
|
16
16
|
app_id: '9021000156667919',
|
|
17
|
-
merchant_private_key: '
|
|
18
|
-
alipay_public_key: '
|
|
17
|
+
merchant_private_key: 'MIIEogIBAAKCAQEAmy8gfxY5RFBKixIWoflLqULF1gZ43QdlEYln+1f0k+tbiWbhi3DBOKp9gjgGmOJmBzVuaDQ+VMDmrolIc8tOz6urQU2PSjMSSqLub3xwyxiZO2qjfkn5riO68ITkr3RN7zVyZcheoaTfexygtg7xH8eqbqhghnVs97KwKnkIt7mzhIvbs60qrV8YAkbm6Hw85s4BVBoBleFZPQCBDXffVTz72GGu5iFHcbVoZdtT2GKPWWiaYb9BEuzzmUo41pPdHrMYP0VnR9UdGnLZyC70YXQ6ZshRux0/rkIrxLGVlk5UBTqdxtP8r2oqoVLl4L5tBcTw4gRPqL4+UiDQ7YE3ZQIDAQABAoIBAHhcqhjIFOy+VcLd6b4BjMSgbK+e33mXtbVPXN4ejy13e8zrhf5QGx2nZqdsavmDh90JfTPHaZz07TbsdcySIPOD09VXoc7MI+DN1J+V5iowTxE9mcdm+wgs4F6SxIitbZEeZDc7nOJE7a0gPCpZFn4usCsZ35wKUdUgu/CFZdSRNdSKBdwdDQcMA/rClHqDvIeCBAbK979cr4/ltAofBQTt9YhZsXpChSQZOnyYFRBPtlblthPcJQOhN6ZH7EsNftdh+elHNjNaH+a6fcCiS4J9yhEtqeQs0ZGDSsE3b7zHW+cOaicvE4X9U651ipVxkYXRK1WhfctRF/cjzqsVtNUCgYEA30NT2kk3CLc8/gXEm/oitEkLx3gp+eH5gLrAE41fcTUloeg+bHXPqQh0IFyLTNUIJ4RF/HdlqHFciKVDUN5HVZeG/RAB3BgTpQV174LuebRs6Fuj3T/qvaV9GdKsTMwnZpljsTJJFiQNMW/vczmy+HbPeMO4r1TWk8GgaD4580MCgYEAsfBObh5dC9D9hIkPIaxZFdAIhmWN8MF3WbEg0LI3YzjW9b6Qd6rn9IyB2UtM4u+lseiLe5XMrR1nzwgxyELyr/w2Mov2F9Zf/DhUqPv/qpegu7xD6U8ca4fJMYfN3sT9R2M3P074U15MlPjBEojtSwg/4oBEcono43+lcRiI/DcCgYAHp6BNYKtBYj72Gq6GBoqAEe0UdrtBtQy/7Cc/xF4cXI0gwvy47UUkb4TDw0iHZtpzuGZJ5LIYl2Jr0PbA5A4gEiTvskfOCwlJZCmJ/7w7cgM16EZzBIkA3ZavdvivXWSQcPvpDGdTGgNVyZe1JKpNOI2ef19qq4b74+yjBlcoTwKBgA/vUkbAR1rgi2OMFqPQWGYArFLE03JFERgiKasm2pjzJST6vNtKnd0jnBlGigskpPUKuzsFDkBOitZaiILDpBIohv391LsLwqrGrKY5cwrm60kEshw5rnTewyDBZalWgMwc0XzE6K4mmrsYj8nGI2H9yiLRk8+iFA4Th1BafyH/AoGAcQHDXuNR0inKvsoEX1hYAoYmE7GwYcxl88AdrAnfqJHgdxHaWCKb/gYiXqRR0RFhiAEZCuVm9IvJ6Dh2eR2psC9lyixgQiyiJYLSA1sLzVzQS/OkSpC3w5srcwxOWzRTBreZbGzV+zJqh9NBCQt0S3Bq2Mi1qYxzxUAytlYSdrQ=',
|
|
18
|
+
alipay_public_key: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmy8gfxY5RFBKixIWoflLqULF1gZ43QdlEYln+1f0k+tbiWbhi3DBOKp9gjgGmOJmBzVuaDQ+VMDmrolIc8tOz6urQU2PSjMSSqLub3xwyxiZO2qjfkn5riO68ITkr3RN7zVyZcheoaTfexygtg7xH8eqbqhghnVs97KwKnkIt7mzhIvbs60qrV8YAkbm6Hw85s4BVBoBleFZPQCBDXffVTz72GGu5iFHcbVoZdtT2GKPWWiaYb9BEuzzmUo41pPdHrMYP0VnR9UdGnLZyC70YXQ6ZshRux0/rkIrxLGVlk5UBTqdxtP8r2oqoVLl4L5tBcTw4gRPqL4+UiDQ7YE3ZQIDAQAB',
|
|
19
19
|
encrypt_key: 'rEoolKE9DfJIQHMMelZapw=='
|
|
20
20
|
)
|
|
21
21
|
end
|
|
@@ -94,8 +94,7 @@ begin
|
|
|
94
94
|
|
|
95
95
|
response = Alipay::EasySDK::Kernel::Factory.payment
|
|
96
96
|
.wap
|
|
97
|
-
|
|
98
|
-
.pay(
|
|
97
|
+
.pay(
|
|
99
98
|
'1123',
|
|
100
99
|
'70501111111S001111119',
|
|
101
100
|
'9.00',
|
data/examples/demo_with_post.rb
CHANGED
|
@@ -179,14 +179,14 @@ begin
|
|
|
179
179
|
gateway_host: 'openapi-sandbox.dl.alipaydev.com',
|
|
180
180
|
sign_type: 'RSA2',
|
|
181
181
|
app_id: '9021000156667919',
|
|
182
|
-
merchant_private_key: '
|
|
183
|
-
alipay_public_key: '
|
|
182
|
+
merchant_private_key: 'MIIEogIBAAKCAQEAmy8gfxY5RFBKixIWoflLqULF1gZ43QdlEYln+1f0k+tbiWbhi3DBOKp9gjgGmOJmBzVuaDQ+VMDmrolIc8tOz6urQU2PSjMSSqLub3xwyxiZO2qjfkn5riO68ITkr3RN7zVyZcheoaTfexygtg7xH8eqbqhghnVs97KwKnkIt7mzhIvbs60qrV8YAkbm6Hw85s4BVBoBleFZPQCBDXffVTz72GGu5iFHcbVoZdtT2GKPWWiaYb9BEuzzmUo41pPdHrMYP0VnR9UdGnLZyC70YXQ6ZshRux0/rkIrxLGVlk5UBTqdxtP8r2oqoVLl4L5tBcTw4gRPqL4+UiDQ7YE3ZQIDAQABAoIBAHhcqhjIFOy+VcLd6b4BjMSgbK+e33mXtbVPXN4ejy13e8zrhf5QGx2nZqdsavmDh90JfTPHaZz07TbsdcySIPOD09VXoc7MI+DN1J+V5iowTxE9mcdm+wgs4F6SxIitbZEeZDc7nOJE7a0gPCpZFn4usCsZ35wKUdUgu/CFZdSRNdSKBdwdDQcMA/rClHqDvIeCBAbK979cr4/ltAofBQTt9YhZsXpChSQZOnyYFRBPtlblthPcJQOhN6ZH7EsNftdh+elHNjNaH+a6fcCiS4J9yhEtqeQs0ZGDSsE3b7zHW+cOaicvE4X9U651ipVxkYXRK1WhfctRF/cjzqsVtNUCgYEA30NT2kk3CLc8/gXEm/oitEkLx3gp+eH5gLrAE41fcTUloeg+bHXPqQh0IFyLTNUIJ4RF/HdlqHFciKVDUN5HVZeG/RAB3BgTpQV174LuebRs6Fuj3T/qvaV9GdKsTMwnZpljsTJJFiQNMW/vczmy+HbPeMO4r1TWk8GgaD4580MCgYEAsfBObh5dC9D9hIkPIaxZFdAIhmWN8MF3WbEg0LI3YzjW9b6Qd6rn9IyB2UtM4u+lseiLe5XMrR1nzwgxyELyr/w2Mov2F9Zf/DhUqPv/qpegu7xD6U8ca4fJMYfN3sT9R2M3P074U15MlPjBEojtSwg/4oBEcono43+lcRiI/DcCgYAHp6BNYKtBYj72Gq6GBoqAEe0UdrtBtQy/7Cc/xF4cXI0gwvy47UUkb4TDw0iHZtpzuGZJ5LIYl2Jr0PbA5A4gEiTvskfOCwlJZCmJ/7w7cgM16EZzBIkA3ZavdvivXWSQcPvpDGdTGgNVyZe1JKpNOI2ef19qq4b74+yjBlcoTwKBgA/vUkbAR1rgi2OMFqPQWGYArFLE03JFERgiKasm2pjzJST6vNtKnd0jnBlGigskpPUKuzsFDkBOitZaiILDpBIohv391LsLwqrGrKY5cwrm60kEshw5rnTewyDBZalWgMwc0XzE6K4mmrsYj8nGI2H9yiLRk8+iFA4Th1BafyH/AoGAcQHDXuNR0inKvsoEX1hYAoYmE7GwYcxl88AdrAnfqJHgdxHaWCKb/gYiXqRR0RFhiAEZCuVm9IvJ6Dh2eR2psC9lyixgQiyiJYLSA1sLzVzQS/OkSpC3w5srcwxOWzRTBreZbGzV+zJqh9NBCQt0S3Bq2Mi1qYxzxUAytlYSdrQ=',
|
|
183
|
+
alipay_public_key: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmy8gfxY5RFBKixIWoflLqULF1gZ43QdlEYln+1f0k+tbiWbhi3DBOKp9gjgGmOJmBzVuaDQ+VMDmrolIc8tOz6urQU2PSjMSSqLub3xwyxiZO2qjfkn5riO68ITkr3RN7zVyZcheoaTfexygtg7xH8eqbqhghnVs97KwKnkIt7mzhIvbs60qrV8YAkbm6Hw85s4BVBoBleFZPQCBDXffVTz72GGu5iFHcbVoZdtT2GKPWWiaYb9BEuzzmUo41pPdHrMYP0VnR9UdGnLZyC70YXQ6ZshRux0/rkIrxLGVlk5UBTqdxtP8r2oqoVLl4L5tBcTw4gRPqL4+UiDQ7YE3ZQIDAQAB',
|
|
184
184
|
encrypt_key: 'rEoolKE9DfJIQHMMelZapw=='
|
|
185
185
|
)
|
|
186
186
|
|
|
187
187
|
# 2. 发起WAP支付API调用 - 与PHP版本完全相同的参数
|
|
188
188
|
response = Alipay::EasySDK.wap
|
|
189
|
-
.optional("seller_id", "
|
|
189
|
+
.optional("seller_id", "2036665393371081") # 可选:设置卖家支付宝用户ID
|
|
190
190
|
.pay(
|
|
191
191
|
"1123", # 商品名称 - 与PHP版本一致
|
|
192
192
|
"70501111111S001111119", # 商户订单号
|
|
@@ -236,4 +236,4 @@ rescue => e
|
|
|
236
236
|
puts "调用遭遇异常,原因:#{e.message}"
|
|
237
237
|
puts e.backtrace.join("\n") if ENV['DEBUG']
|
|
238
238
|
raise e
|
|
239
|
-
end
|
|
239
|
+
end
|
|
@@ -88,22 +88,22 @@ module Alipay
|
|
|
88
88
|
|
|
89
89
|
def generate_page(method, system_params, biz_params, text_params, sign)
|
|
90
90
|
puts "[DEBUG] generate_page - sign长度: #{sign.length}" if ENV['DEBUG']
|
|
91
|
+
signed_params = build_signed_params(system_params, biz_params, text_params, sign)
|
|
91
92
|
if method == 'GET'
|
|
92
|
-
|
|
93
|
-
sorted_map = get_sorted_map(system_params, biz_params, text_params)
|
|
94
|
-
sorted_map[AlipayConstants::SIGN_FIELD] = sign
|
|
95
|
-
return get_gateway_server_url + '?' + build_query_string(sorted_map)
|
|
93
|
+
return build_gateway_url(signed_params)
|
|
96
94
|
elsif method == 'POST'
|
|
97
|
-
#
|
|
98
|
-
|
|
99
|
-
sorted_map[AlipayConstants::SIGN_FIELD] = sign
|
|
100
|
-
puts "[DEBUG] generate_page POST - sorted_map中sign长度: #{sorted_map[AlipayConstants::SIGN_FIELD].length}" if ENV['DEBUG']
|
|
101
|
-
return build_form(get_gateway_server_url, sorted_map)
|
|
95
|
+
puts "[DEBUG] generate_page POST - sorted_map中sign长度: #{signed_params[AlipayConstants::SIGN_FIELD].length}" if ENV['DEBUG']
|
|
96
|
+
return build_form(get_gateway_server_url, signed_params)
|
|
102
97
|
else
|
|
103
98
|
raise "不支持" + method
|
|
104
99
|
end
|
|
105
100
|
end
|
|
106
101
|
|
|
102
|
+
def generate_payment_url(system_params, biz_params, text_params, sign)
|
|
103
|
+
signed_params = build_signed_params(system_params, biz_params, text_params, sign)
|
|
104
|
+
build_gateway_url(signed_params)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
107
|
def get_merchant_cert_sn
|
|
108
108
|
return @config.merchant_cert_sn
|
|
109
109
|
end
|
|
@@ -322,6 +322,19 @@ module Alipay
|
|
|
322
322
|
<script>document.forms['alipaysubmit'].submit();</script>
|
|
323
323
|
HTML
|
|
324
324
|
end
|
|
325
|
+
|
|
326
|
+
def build_signed_params(system_params, biz_params, text_params, sign)
|
|
327
|
+
sorted_map = get_sorted_map(system_params, biz_params, text_params)
|
|
328
|
+
sorted_map[AlipayConstants::SIGN_FIELD] = sign
|
|
329
|
+
sorted_map
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
def build_gateway_url(signed_params)
|
|
333
|
+
base_url = get_gateway_server_url + "?charset=#{AlipayConstants::DEFAULT_CHARSET}"
|
|
334
|
+
query = build_query_string(signed_params)
|
|
335
|
+
return base_url if query.nil? || query.empty?
|
|
336
|
+
base_url + '&' + query
|
|
337
|
+
end
|
|
325
338
|
end
|
|
326
339
|
end
|
|
327
340
|
end
|
|
@@ -36,7 +36,8 @@ module Alipay
|
|
|
36
36
|
sign = @kernel.sign(system_params, biz_params, text_params, @kernel.get_config('merchantPrivateKey'))
|
|
37
37
|
|
|
38
38
|
response = {
|
|
39
|
-
'body' => @kernel.generate_page('POST', system_params, biz_params, text_params, sign)
|
|
39
|
+
'body' => @kernel.generate_page('POST', system_params, biz_params, text_params, sign),
|
|
40
|
+
'payment_url' => @kernel.generate_payment_url(system_params, biz_params, text_params, sign)
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
Models::AlipayTradePagePayResponse.from_map(response)
|
|
@@ -4,11 +4,12 @@ module Alipay
|
|
|
4
4
|
module Page
|
|
5
5
|
module Models
|
|
6
6
|
class AlipayTradePagePayResponse
|
|
7
|
-
attr_accessor :body
|
|
7
|
+
attr_accessor :body, :payment_url
|
|
8
8
|
|
|
9
9
|
def self.from_map(response)
|
|
10
10
|
new.tap do |instance|
|
|
11
11
|
instance.body = response['body']
|
|
12
|
+
instance.payment_url = response['payment_url']
|
|
12
13
|
end
|
|
13
14
|
end
|
|
14
15
|
|
|
@@ -39,7 +39,8 @@ module Alipay
|
|
|
39
39
|
sign = @kernel.sign(system_params, biz_params, text_params, @kernel.get_config("merchantPrivateKey"))
|
|
40
40
|
|
|
41
41
|
response = {
|
|
42
|
-
"body" => @kernel.generate_page("POST", system_params, biz_params, text_params, sign)
|
|
42
|
+
"body" => @kernel.generate_page("POST", system_params, biz_params, text_params, sign),
|
|
43
|
+
"payment_url" => @kernel.generate_payment_url(system_params, biz_params, text_params, sign)
|
|
43
44
|
}
|
|
44
45
|
return Alipay::EasySDK::Payment::Wap::Models::AlipayTradeWapPayResponse.from_map(response)
|
|
45
46
|
end
|
|
@@ -4,11 +4,12 @@ module Alipay
|
|
|
4
4
|
module Wap
|
|
5
5
|
module Models
|
|
6
6
|
class AlipayTradeWapPayResponse
|
|
7
|
-
attr_accessor :body, :code, :sub_code
|
|
7
|
+
attr_accessor :body, :code, :sub_code, :payment_url
|
|
8
8
|
|
|
9
9
|
def self.from_map(response)
|
|
10
10
|
new.tap do |instance|
|
|
11
11
|
instance.body = response['body']
|
|
12
|
+
instance.payment_url = response['payment_url']
|
|
12
13
|
end
|
|
13
14
|
end
|
|
14
15
|
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: alipay-easysdk-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alipay EasySDK Team
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: exe
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2025-10-27 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: bundler
|
|
@@ -110,6 +111,7 @@ metadata:
|
|
|
110
111
|
documentation_uri: https://github.com/gaozuo/alipay-easysdk-ruby/blob/main/README.md
|
|
111
112
|
bug_tracker_uri: https://github.com/gaozuo/alipay-easysdk-ruby/issues
|
|
112
113
|
wiki_uri: https://github.com/gaozuo/alipay-easysdk-ruby/wiki
|
|
114
|
+
post_install_message:
|
|
113
115
|
rdoc_options: []
|
|
114
116
|
require_paths:
|
|
115
117
|
- lib
|
|
@@ -124,7 +126,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
124
126
|
- !ruby/object:Gem::Version
|
|
125
127
|
version: '0'
|
|
126
128
|
requirements: []
|
|
127
|
-
rubygems_version: 3.
|
|
129
|
+
rubygems_version: 3.0.3.1
|
|
130
|
+
signing_key:
|
|
128
131
|
specification_version: 4
|
|
129
132
|
summary: 支付宝开放平台Alipay EasySDK的Ruby版本实现
|
|
130
133
|
test_files: []
|