yl_alipay 0.15.2

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.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.travis.yml +5 -0
  4. data/CHANGELOG.md +101 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +810 -0
  8. data/Rakefile +9 -0
  9. data/alipay.gemspec +25 -0
  10. data/lib/alipay/app/service.rb +57 -0
  11. data/lib/alipay/app/sign.rb +36 -0
  12. data/lib/alipay/mobile/service.rb +27 -0
  13. data/lib/alipay/mobile/sign.rb +9 -0
  14. data/lib/alipay/notify.rb +19 -0
  15. data/lib/alipay/service.rb +239 -0
  16. data/lib/alipay/sign/dsa.rb +13 -0
  17. data/lib/alipay/sign/md5.rb +15 -0
  18. data/lib/alipay/sign/rsa.rb +18 -0
  19. data/lib/alipay/sign/rsa2.rb +18 -0
  20. data/lib/alipay/sign.rb +54 -0
  21. data/lib/alipay/utils.rb +19 -0
  22. data/lib/alipay/version.rb +3 -0
  23. data/lib/alipay/wap/notify.rb +13 -0
  24. data/lib/alipay/wap/service.rb +84 -0
  25. data/lib/alipay/wap/sign.rb +37 -0
  26. data/lib/alipay.rb +31 -0
  27. data/lib/yl_alipay.rb +1 -0
  28. data/test/alipay/app/service_test.rb +32 -0
  29. data/test/alipay/app/sign_test.rb +37 -0
  30. data/test/alipay/mobile/service_test.rb +16 -0
  31. data/test/alipay/mobile/sign_test.rb +7 -0
  32. data/test/alipay/notify_test.rb +35 -0
  33. data/test/alipay/service_test.rb +265 -0
  34. data/test/alipay/sign/md5_test.rb +20 -0
  35. data/test/alipay/sign/rsa2_test.rb +22 -0
  36. data/test/alipay/sign/rsa_test.rb +20 -0
  37. data/test/alipay/sign_test.rb +30 -0
  38. data/test/alipay/utils_test.rb +12 -0
  39. data/test/alipay/wap/notify_test.rb +38 -0
  40. data/test/alipay/wap/service_test.rb +67 -0
  41. data/test/alipay/wap/sign_test.rb +19 -0
  42. data/test/alipay_test.rb +11 -0
  43. data/test/test_helper.rb +34 -0
  44. data/yl_alipay.gemspec +25 -0
  45. metadata +159 -0
@@ -0,0 +1,67 @@
1
+ require 'test_helper'
2
+
3
+ class Alipay::Wap::ServiceTest < Minitest::Test
4
+ def test_trade_create_direct_token
5
+ token = 'REQUEST_TOKEN'
6
+ body = <<-EOS
7
+ res_data=
8
+ <?xmlversion="1.0" encoding="utf-8"?>
9
+ <direct_trade_create_res>
10
+ <request_token>#{token}</request_token>
11
+ </direct_trade_create_res>
12
+ &partner=PID
13
+ &req_id=REQ_ID
14
+ &sec_id=MD5
15
+ &service=alipay.wap.trade.create.direct
16
+ &v=2.0
17
+ &sign=SIGN
18
+ EOS
19
+
20
+ stub_request(
21
+ :get,
22
+ %r|https://wappaygw\.alipay\.com/service/rest\.htm.*|
23
+ ).to_return(body: body)
24
+
25
+ assert_equal token, Alipay::Wap::Service.trade_create_direct_token(
26
+ req_data: {
27
+ seller_account_name: 'account@example.com',
28
+ out_trade_no: '1',
29
+ subject: 'subject',
30
+ total_fee: '0.01',
31
+ call_back_url: 'https://example.com/call_back'
32
+ }
33
+ )
34
+ end
35
+
36
+ def test_auth_and_execute_url
37
+ assert_equal 'https://wappaygw.alipay.com/service/rest.htm?service=alipay.wap.auth.authAndExecute&req_data=%3Cauth_and_execute_req%3E%3Crequest_token%3Etoken_test%3C%2Frequest_token%3E%3C%2Fauth_and_execute_req%3E&partner=1000000000000000&format=xml&v=2.0&sec_id=MD5&sign=3efe60d4a9b7960ba599da6764c959df', Alipay::Wap::Service.auth_and_execute_url(request_token: 'token_test')
38
+ end
39
+
40
+ def test_security_risk_detect
41
+ stub_request(
42
+ :post,
43
+ %r|https://wappaygw\.alipay\.com/service/rest\.htm.*|
44
+ ).to_return(
45
+ body: ' '
46
+ )
47
+
48
+ params = {
49
+ order_no: '1',
50
+ order_credate_time: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
51
+ order_category: 'TestCase^AlipayGem^Ruby',
52
+ order_item_name: 'item',
53
+ order_amount: '0.01',
54
+ buyer_account_no: '2088123123',
55
+ buyer_bind_mobile: '13600000000',
56
+ buyer_reg_date: '1970-01-01 00:00:00',
57
+ terminal_type: 'WAP'
58
+ }
59
+
60
+ options = {
61
+ sign_type: 'RSA',
62
+ key: TEST_RSA_PRIVATE_KEY
63
+ }
64
+
65
+ assert_equal ' ', Alipay::Wap::Service.security_risk_detect(params, options).body
66
+ end
67
+ end
@@ -0,0 +1,19 @@
1
+ require 'test_helper'
2
+
3
+ class Alipay::Wap::SignTest < Minitest::Test
4
+ def setup
5
+ @params = {
6
+ v: '1.0',
7
+ sec_id: 'MD5',
8
+ service: 'test',
9
+ notify_data: 'notify_data'
10
+ }
11
+ @sign = Digest::MD5.hexdigest("service=test&v=1.0&sec_id=MD5&notify_data=notify_data#{Alipay.key}")
12
+ end
13
+
14
+ def test_verify_sign
15
+ assert !Alipay::Wap::Sign.verify?(@params)
16
+ assert !Alipay::Wap::Sign.verify?(@params.merge(sec_id: 'unknow'))
17
+ assert Alipay::Wap::Sign.verify?(@params.merge(sign: @sign, whatever: 'x'))
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ class AlipayTest < Minitest::Test
4
+ def test_debug_mode_default
5
+ assert Alipay.debug_mode?
6
+ end
7
+
8
+ def test_sign_type_default
9
+ assert_equal 'MD5', Alipay.sign_type
10
+ end
11
+ end
@@ -0,0 +1,34 @@
1
+ require 'minitest/autorun'
2
+ require 'alipay'
3
+ require 'webmock/minitest'
4
+
5
+ Alipay.pid = '1000000000000000'
6
+ Alipay.key = '10000000000000000000000000000000'
7
+
8
+ TEST_RSA_PUBLIC_KEY = <<EOF
9
+ -----BEGIN PUBLIC KEY-----
10
+ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjNVhJf9PYDFN1PFd4SXEvxmjD
11
+ 0dn+xQ4lQu6o8HbGXz4de/RRVTJDL48qwxn81lar5cNSIjbnhDRXm9fZcrzuwbjq
12
+ xXOv2Ov7MZAa/WJEcfvp3XcSgxKPB54FLVvHo/rxuMK2xpps47Lpc7vppkvi3ofb
13
+ XW61S+aT0TWFkUMTnwIDAQAB
14
+ -----END PUBLIC KEY-----
15
+ EOF
16
+
17
+ TEST_RSA_PRIVATE_KEY = <<EOF
18
+ -----BEGIN PRIVATE KEY-----
19
+ MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKM1WEl/09gMU3U8
20
+ V3hJcS/GaMPR2f7FDiVC7qjwdsZfPh179FFVMkMvjyrDGfzWVqvlw1IiNueENFeb
21
+ 19lyvO7BuOrFc6/Y6/sxkBr9YkRx++nddxKDEo8HngUtW8ej+vG4wrbGmmzjsulz
22
+ u+mmS+Leh9tdbrVL5pPRNYWRQxOfAgMBAAECgYB7xOSjOJFK8m4IJi6fRfLULD8e
23
+ 4XHUR1Qm5c9fxpwMbAYLDgmF9HodgV+tKi/3EgTAb4nkK5Y/lH6tQb47ZUvo/lKz
24
+ RlIVZ6Rm76V07g/+5exIZzTyvdD9T2fLeYQwKV/2JYUv0KSYWPvWykdaV4aNkCuw
25
+ mxTUjvhDxK/Ns31CIQJBANI1Y3gGBqbBIN9wxjx3ShBtt/U8YnipUJ92eTI7OU9p
26
+ ZsCIFPoeYG/X40miwDb5ouPnvJTtzuY4PkPokEefN9MCQQDGwurqa8RNK2APA62U
27
+ CdZbJuWimkdHEc53IKvD/l2tWVFqhVAy8bs+3LGzBNfuxUuAxOoQm9n0IVRaH5jn
28
+ l8GFAkEAijuTmsUTsKsGDAmkQvULHnyYYUuBUem92+9TycWKbX9Zk7ipWsWJE2N7
29
+ 0tuU3VISXR7yM1mjGl/YCl4wKvk4AwJAE1DkBY4dkKZTeoIP/2AJXehkzq2Rmb2I
30
+ RBl/t9djgTI58FEuXxUQ7mYCOvSQi5rO4J/CY4TR5KDMksmZUYB1BQJAIEfVDxz4
31
+ 5yoHL7L+6EoC5TWxUxFMN7z7FhObyKeaLKj3inEsbjfcPCA09zPUce0FSKBc/dVh
32
+ DEorJMaPK5vXiA==
33
+ -----END PRIVATE KEY-----
34
+ EOF
data/yl_alipay.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'alipay/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "yl_alipay"
8
+ spec.version = Alipay::VERSION
9
+ spec.authors = ["Robot"]
10
+ spec.email = ["robot.zhu@icitymobile.com"]
11
+ spec.description = %q{An unofficial simple alipay gem}
12
+ spec.summary = %q{An unofficial simple alipay gem}
13
+ spec.homepage = "https://github.com/chloerei/alipay"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "minitest"
24
+ spec.add_development_dependency "webmock"
25
+ end
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yl_alipay
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.15.2
5
+ platform: ruby
6
+ authors:
7
+ - Robot
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-08-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: An unofficial simple alipay gem
70
+ email:
71
+ - robot.zhu@icitymobile.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .travis.yml
78
+ - CHANGELOG.md
79
+ - Gemfile
80
+ - LICENSE.txt
81
+ - README.md
82
+ - Rakefile
83
+ - alipay.gemspec
84
+ - lib/alipay.rb
85
+ - lib/alipay/app/service.rb
86
+ - lib/alipay/app/sign.rb
87
+ - lib/alipay/mobile/service.rb
88
+ - lib/alipay/mobile/sign.rb
89
+ - lib/alipay/notify.rb
90
+ - lib/alipay/service.rb
91
+ - lib/alipay/sign.rb
92
+ - lib/alipay/sign/dsa.rb
93
+ - lib/alipay/sign/md5.rb
94
+ - lib/alipay/sign/rsa.rb
95
+ - lib/alipay/sign/rsa2.rb
96
+ - lib/alipay/utils.rb
97
+ - lib/alipay/version.rb
98
+ - lib/alipay/wap/notify.rb
99
+ - lib/alipay/wap/service.rb
100
+ - lib/alipay/wap/sign.rb
101
+ - lib/yl_alipay.rb
102
+ - test/alipay/app/service_test.rb
103
+ - test/alipay/app/sign_test.rb
104
+ - test/alipay/mobile/service_test.rb
105
+ - test/alipay/mobile/sign_test.rb
106
+ - test/alipay/notify_test.rb
107
+ - test/alipay/service_test.rb
108
+ - test/alipay/sign/md5_test.rb
109
+ - test/alipay/sign/rsa2_test.rb
110
+ - test/alipay/sign/rsa_test.rb
111
+ - test/alipay/sign_test.rb
112
+ - test/alipay/utils_test.rb
113
+ - test/alipay/wap/notify_test.rb
114
+ - test/alipay/wap/service_test.rb
115
+ - test/alipay/wap/sign_test.rb
116
+ - test/alipay_test.rb
117
+ - test/test_helper.rb
118
+ - yl_alipay.gemspec
119
+ homepage: https://github.com/chloerei/alipay
120
+ licenses:
121
+ - MIT
122
+ metadata: {}
123
+ post_install_message:
124
+ rdoc_options: []
125
+ require_paths:
126
+ - lib
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ requirements: []
138
+ rubyforge_project:
139
+ rubygems_version: 2.0.14.1
140
+ signing_key:
141
+ specification_version: 4
142
+ summary: An unofficial simple alipay gem
143
+ test_files:
144
+ - test/alipay/app/service_test.rb
145
+ - test/alipay/app/sign_test.rb
146
+ - test/alipay/mobile/service_test.rb
147
+ - test/alipay/mobile/sign_test.rb
148
+ - test/alipay/notify_test.rb
149
+ - test/alipay/service_test.rb
150
+ - test/alipay/sign/md5_test.rb
151
+ - test/alipay/sign/rsa2_test.rb
152
+ - test/alipay/sign/rsa_test.rb
153
+ - test/alipay/sign_test.rb
154
+ - test/alipay/utils_test.rb
155
+ - test/alipay/wap/notify_test.rb
156
+ - test/alipay/wap/service_test.rb
157
+ - test/alipay/wap/sign_test.rb
158
+ - test/alipay_test.rb
159
+ - test/test_helper.rb