wechat-pay 1.0.4 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b07e4346fb61d83569dadb3b0dd467a6b719375fa3b471d6df0ed58a2307b3d2
4
- data.tar.gz: f72bff18f57427e1c8946ddf82bcdb9f20c0057f80fb11beb9eb71183a6499c0
3
+ metadata.gz: 9f70f650e820e974fc587e7913dbd17290c515f77ce5666e6267fcd5a8dadce7
4
+ data.tar.gz: 77b844c39432a5141b3ed9a837e03e3d07657b9668b9001828d479072dc20d79
5
5
  SHA512:
6
- metadata.gz: 124e7291a418fd0759ca7906973bf2134fa4330d0db0c2b8cb0612964247ee51de5f7ed74203b99492019a544f513a8b2e005f5f1f81a339e4f4bf91890fedc4
7
- data.tar.gz: c1b0543c3cffc19563d0f42ed624f43f0a4bfcd5bbf990923457be6c9cfa49dbcb67ad864a444970f4929e81ee4e7fdeb1e5f2727ca24b1f05e2627546f79d78
6
+ metadata.gz: 0ce9abbf28b2bc2e49a2c45ca0b6ce732dd4707e241fd065e7d8408e4ce09c9f23b97d73fa9b48dda9efd49ca6055e42130df7f7e30f0f0fbd875932dd530cc1
7
+ data.tar.gz: 8f590370a5cb1b0aacaeb874edad07325c72cc6391f4247efbb20bbccb731f7d9dc44a7815de3a6c9e8c19ca1c03683390b96fb4a6913f3d732ae3e3d2bdef29
@@ -0,0 +1,33 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ pull_request:
12
+ branches: [ master ]
13
+
14
+ jobs:
15
+ test:
16
+
17
+ runs-on: ubuntu-latest
18
+ strategy:
19
+ matrix:
20
+ ruby-version: ['2.6', '2.7', '3.0']
21
+
22
+ steps:
23
+ - uses: actions/checkout@v2
24
+ - name: Set up Ruby
25
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
26
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
27
+ # uses: ruby/setup-ruby@v1
28
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
29
+ with:
30
+ ruby-version: ${{ matrix.ruby-version }}
31
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
32
+ - name: Run tests
33
+ run: bundle exec rake
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ *.gem
2
+ Gemfile.lock
3
+ doc/
4
+ .yardoc/
5
+ rdoc/
6
+ /*.pem
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --force-color
2
+ --require spec_helper
data/.yardopts ADDED
@@ -0,0 +1,3 @@
1
+ --markup markdown
2
+ --protected
3
+ --no-private
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Declare your gem's dependencies in tenpay.gemspec.
6
+ # Bundler will treat runtime dependencies like base dependencies, and
7
+ # development dependencies will be added by default to the :development group.
8
+ gemspec
9
+
10
+ # Declare any dependencies that are still in development here instead of in
11
+ # your gemspec. These might include edge Rails or gems from your path or
12
+ # Git. Remember to move these dependencies to your gemspec before releasing
13
+ # your gem to rubygems.org.
14
+
15
+ # To use debugger
16
+ gem 'rubocop', require: false
data/README.md ADDED
@@ -0,0 +1,92 @@
1
+ # Wechat Pay
2
+
3
+ A simple Wechat pay ruby gem, without unnecessary magic or wrapper. Just a simple wrapper for api V3. Refer to [wx_pay](https://github.com/jasl/wx_pay)
4
+
5
+ Please read official document first: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/pages/index.shtml
6
+
7
+ If you want check the present public api, you can find them in the [Document](https://www.rubydoc.info/github/lanzhiheng/wechat-pay/master/index)。
8
+
9
+ Summary:
10
+
11
+ `WechatPay::Direct` will contain the public api for direct connection merchant(直连商户)and `WechatPay::Ecommerce` will contain the public api for ecommerce(服务商,电商平台)。For more detail you can refer to the wechat document.
12
+
13
+ - 直连商户: https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml
14
+ - 服务商: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/index.shtml
15
+ - 电商平台(电商收付通): https://pay.weixin.qq.com/wiki/doc/apiv3_partner/open/pay/chapter3_3_3.shtml
16
+
17
+ If you find any issue in this repo, don't shy to create issues https://github.com/lanzhiheng/wechat-pay/issues
18
+
19
+ For more Information,you can check my posts: https://www.lanzhiheng.com/posts/preview/ruby-gem-for-wechat-pay-v3
20
+
21
+ # Installation
22
+
23
+ Add this line to your Gemfile:
24
+
25
+ ```
26
+ gem 'wechat-pay'
27
+ ```
28
+
29
+ or development version
30
+
31
+ ```
32
+ gem 'wechat-pay', :github => 'lanzhiheng/wechat-pay'
33
+ ```
34
+
35
+ And then execute:
36
+
37
+ ```
38
+ $ bundle
39
+ ```
40
+
41
+ # Usage
42
+
43
+ ## Configuration
44
+
45
+ Create `config/initializer/wechat_pay.rb`and put following configurations into it
46
+
47
+ ``` ruby
48
+ WechatPay.apiclient_key = File.read('apiclient_key.pem')
49
+ WechatPay.platform_cert = File.read('platform_cert.pem') # You should comment this line before downloaded platform_cert.
50
+ WechatPay.apiclient_cert = File.read('apiclient_cert.pem')
51
+ WechatPay.app_id = 'Your App Id'
52
+ WechatPay.mch_id = 'Your Mch Id'
53
+ WechatPay.mch_key = 'Your Mch Key'
54
+ ```
55
+
56
+ ## Download
57
+
58
+ I will provide a simple script for you to download the platform_cert
59
+
60
+ ``` ruby
61
+ def download_certificate
62
+ download_path = 'Your Download Path'
63
+ raise '必须提供证书下载路径' if download_path.blank?
64
+
65
+ response = WechatPay::Ecommerce.get_certificates
66
+
67
+ raise '证书下载失败' unless response.code == 200
68
+
69
+ result = JSON.parse(response.body)
70
+ # 需要按生效日期进行排序,获取最新的证书
71
+ array = result['data'].sort_by { |item| -Time.parse(item['effective_time']).to_i }
72
+ current_data = array.first
73
+ encrypt_certificate = current_data['encrypt_certificate']
74
+ associated_data = encrypt_certificate['associated_data']
75
+ nonce = encrypt_certificate['nonce']
76
+ ciphertext = encrypt_certificate['ciphertext']
77
+
78
+ content = WechatPay::Sign.decrypt_the_encrypt_params(
79
+ associated_data: associated_data,
80
+ nonce: nonce,
81
+ ciphertext: ciphertext
82
+ )
83
+
84
+ File.open(download_path, 'w') do |f|
85
+ f.write(content)
86
+ end
87
+
88
+ puts '证书下载成功'
89
+ end
90
+ ```
91
+
92
+
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require 'bundler/setup'
5
+ require 'rspec/core/rake_task'
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ task :default => :spec
9
+ rescue LoadError
10
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
11
+ end
12
+
13
+ require 'rdoc/task'
14
+ Rake::RDocTask.new do |rdoc|
15
+ rdoc.rdoc_dir = 'rdoc'
16
+ rdoc.title = "wechat-pay #{WechatPay::VERSION}"
17
+ rdoc.rdoc_files.include('README*')
18
+ rdoc.rdoc_files.include('lib/**/*.rb')
19
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WechatPay
4
- VERSION = '1.0.4'
4
+ VERSION = '1.0.6'
5
5
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
4
+
5
+ require 'wechat-pay/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'wechat-pay'
9
+ s.version = WechatPay::VERSION
10
+ s.summary = 'Wechat Pay in api V3'
11
+ s.description = 'A simple Wechat pay ruby gem in api V3.'
12
+ s.authors = ['lanzhiheng']
13
+ s.email = 'lanzhihengrj@gmail.com'
14
+ s.files = %x(git ls-files -z).split("\x0").reject do |f|
15
+ f.match(%r{^(test|spec|features)/})
16
+ end
17
+ s.required_ruby_version = '>= 2.5'
18
+ s.require_paths = ['lib']
19
+ s.homepage = 'https://github.com/lanzhiheng/wechat-pay/'
20
+ s.license = 'MIT'
21
+
22
+ s.add_runtime_dependency 'activesupport', '>= 3.2', '~> 6.0.0'
23
+ s.add_runtime_dependency 'rest-client', '~> 2.0', '>= 2.0.0'
24
+ s.add_development_dependency 'rake', '~> 13.0', '>= 13.0.3'
25
+ s.add_development_dependency 'rspec', '~> 3.10.0'
26
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wechat-pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - lanzhiheng
@@ -90,7 +90,13 @@ executables: []
90
90
  extensions: []
91
91
  extra_rdoc_files: []
92
92
  files:
93
- - lib/set_base_envrionment.rb
93
+ - ".github/workflows/test.yml"
94
+ - ".gitignore"
95
+ - ".rspec"
96
+ - ".yardopts"
97
+ - Gemfile
98
+ - README.md
99
+ - Rakefile
94
100
  - lib/wechat-pay.rb
95
101
  - lib/wechat-pay/direct.rb
96
102
  - lib/wechat-pay/ecommerce.rb
@@ -106,6 +112,7 @@ files:
106
112
  - lib/wechat-pay/helper.rb
107
113
  - lib/wechat-pay/sign.rb
108
114
  - lib/wechat-pay/version.rb
115
+ - wechat-pay.gemspec
109
116
  homepage: https://github.com/lanzhiheng/wechat-pay/
110
117
  licenses:
111
118
  - MIT
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- WechatPay.apiclient_key = File.read('./apiclient_key.pem')
4
- WechatPay.platform_cert = File.read('platform_cert.pem')
5
- WechatPay.apiclient_cert = File.read('apiclient_cert.pem')
6
- WechatPay.app_id = 'wxf50e9a05a23a7624'
7
- WechatPay.mch_id = '1607189890'
8
- WechatPay.mch_key = 'b76a5cc5fae2d222dba6caf5537204c4'