pingpp 2.2.1 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,11 @@
1
+ module Pingpp
2
+ class Agreement < APIResource
3
+ extend Pingpp::APIOperations::Create
4
+ extend Pingpp::APIOperations::List
5
+ include Pingpp::APIOperations::Update
6
+
7
+ def self.cancel(id, opts={})
8
+ update(id, {:status => 'canceled'}, opts)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ module Pingpp
2
+ class BalanceSettlement < AppBasedResource
3
+ extend Pingpp::APIOperations::List
4
+
5
+ def self.object_name
6
+ 'balance_settlement'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,14 @@
1
+ module Pingpp
2
+ class CardInfo < APIResource
3
+ extend Pingpp::APIOperations::Create
4
+
5
+ def self.query(params={}, opts={})
6
+ create(params, opts)
7
+ end
8
+
9
+ def self.resource_url(opts={})
10
+ '/v1/card_info'
11
+ end
12
+
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module Pingpp
2
- VERSION = '2.2.1'
2
+ VERSION = '2.2.2'
3
3
  end
@@ -0,0 +1,42 @@
1
+ module Pingpp
2
+ module WxLiteOauth
3
+ def self.get_openid(app_id, app_secret, code)
4
+ response = get_session(app_id, app_secret, code)
5
+ if response['openid'].nil? then
6
+ return nil, response
7
+ else
8
+ return response['openid'], nil
9
+ end
10
+ end
11
+
12
+ def self.get_session(app_id, app_secret, code)
13
+ url = create_oauth_url_for_openid(app_id, app_secret, code)
14
+ return get_request(url)
15
+ end
16
+
17
+ def self.create_oauth_url_for_openid(app_id, app_secret, code)
18
+ query_parts = {
19
+ 'appid' => app_id,
20
+ 'secret' => app_secret,
21
+ 'js_code' => code,
22
+ 'grant_type' => 'authorization_code'
23
+ }
24
+ query_str = Util.encode_parameters(query_parts)
25
+ 'https://api.weixin.qq.com/sns/jscode2session?' + query_str
26
+ end
27
+
28
+ def self.get_request(url)
29
+ request_opts = {
30
+ :url => url,
31
+ :verify_ssl => false,
32
+ :ssl_version => 'TLSv1',
33
+ :method => 'GET',
34
+ :headers => false,
35
+ :open_timeout => 30,
36
+ :timeout => 30
37
+ }
38
+ response = RestClient::Request.execute(request_opts)
39
+ response = JSON.parse(response.body)
40
+ end
41
+ end
42
+ end
data/lib/pingpp.rb CHANGED
@@ -56,6 +56,9 @@ require 'pingpp/royalty_transaction'
56
56
  require 'pingpp/balance_transfer'
57
57
  require 'pingpp/balance_bonus'
58
58
  require 'pingpp/royalty_template'
59
+ require 'pingpp/balance_settlement'
60
+ require 'pingpp/card_info'
61
+ require 'pingpp/agreement'
59
62
 
60
63
  # Errors
61
64
  require 'pingpp/errors/pingpp_error'
@@ -66,8 +69,9 @@ require 'pingpp/errors/authentication_error'
66
69
  require 'pingpp/errors/channel_error'
67
70
  require 'pingpp/errors/rate_limit_error'
68
71
 
69
- # WxPubOauth
72
+ # WxOAuth
70
73
  require 'pingpp/wx_pub_oauth'
74
+ require 'pingpp/wx_lite_oauth'
71
75
 
72
76
  module Pingpp
73
77
  DEFAULT_CA_BUNDLE_PATH = File.dirname(__FILE__) + '/data/ca-certificates.crt'
@@ -186,6 +190,14 @@ module Pingpp
186
190
  @max_network_retries = val.to_i
187
191
  end
188
192
 
193
+ def self.ca_bundle
194
+ @ca_bundle_path
195
+ end
196
+
197
+ def self.ca_bundle=(val)
198
+ @ca_bundle_path = val
199
+ end
200
+
189
201
  private
190
202
 
191
203
  def self.user_agent
@@ -0,0 +1,36 @@
1
+ require File.expand_path('../test_assistant', __FILE__)
2
+
3
+ module Pingpp
4
+ class AgreementTest < Test::Unit::TestCase
5
+ should "execute should return a agreement list when passed correct parameters" do
6
+ l = Pingpp::Agreement.list(
7
+ :app => get_app_id,
8
+ :per_page => 3
9
+ )
10
+
11
+ assert l.object == 'list'
12
+ assert l.data.count <= 3
13
+ end
14
+
15
+ should "execute should return an exist agreement when passed correct agreement id" do
16
+ agr_id = get_agreement_id
17
+ c = Pingpp::Agreement.retrieve(agr_id)
18
+
19
+ assert c.object == 'agreement'
20
+ assert c.id == agr_id
21
+ end
22
+
23
+ should "execute should return an canceled agreement" do
24
+ begin
25
+ agr_id = get_agreement_id
26
+ o = Pingpp::Agreement.cancel(agr_id)
27
+
28
+ assert o.id == agr_id
29
+ assert o.status == 'canceled'
30
+ rescue => e
31
+ assert e.kind_of?(Pingpp::InvalidRequestError)
32
+ assert e.message.include?("该签约对象不能被更新状态")
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,19 @@
1
+ require File.expand_path('../test_assistant', __FILE__)
2
+
3
+ module Pingpp
4
+ class BalanceSettlementTest < Test::Unit::TestCase
5
+ should "execute should return a balance_settlement list when passed correct parameters" do
6
+ bss = Pingpp::BalanceSettlement.list({:per_page => 3})
7
+
8
+ assert bss.object == 'list'
9
+ assert bss.data.count <= 3
10
+ end
11
+
12
+ should "execute should return an exist balance_settlement when passed correct id" do
13
+ bs = Pingpp::BalanceSettlement.retrieve(get_bs_id)
14
+
15
+ assert bs.object == 'balance_settlement'
16
+ assert bs.id == get_bs_id
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,18 @@
1
+ require File.expand_path('../test_assistant', __FILE__)
2
+
3
+ module Pingpp
4
+ class CardInfoTest < Test::Unit::TestCase
5
+ should "execute should return card info" do
6
+ # 该接口仅支持 live key
7
+ card_info = Pingpp::CardInfo.query({
8
+ :app => get_app_id,
9
+ :bank_account => '6222280012469823'
10
+ })
11
+
12
+ assert card_info.card_bin == '622228'
13
+ assert card_info.app == get_app_id
14
+ assert card_info.card_type == 2
15
+ assert card_info.open_bank_code == '0310'
16
+ end
17
+ end
18
+ end
data/test/test_data.rb CHANGED
@@ -187,5 +187,13 @@ module Pingpp
187
187
  def coupon_template_id_to_delete
188
188
  '300117090822195700031902'
189
189
  end
190
+
191
+ def get_bs_id
192
+ '670180130750711562240001'
193
+ end
194
+
195
+ def get_agreement_id
196
+ 'agr_19EEE7QdgGMCoY'
197
+ end
190
198
  end
191
199
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pingpp
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xufeng Weng
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-10 00:00:00.000000000 Z
11
+ date: 2018-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -40,6 +40,7 @@ extra_rdoc_files: []
40
40
  files:
41
41
  - lib/data/ca-certificates.crt
42
42
  - lib/pingpp.rb
43
+ - lib/pingpp/agreement.rb
43
44
  - lib/pingpp/api_operations/create.rb
44
45
  - lib/pingpp/api_operations/delete.rb
45
46
  - lib/pingpp/api_operations/list.rb
@@ -48,11 +49,13 @@ files:
48
49
  - lib/pingpp/api_resource.rb
49
50
  - lib/pingpp/app_based_resource.rb
50
51
  - lib/pingpp/balance_bonus.rb
52
+ - lib/pingpp/balance_settlement.rb
51
53
  - lib/pingpp/balance_transaction.rb
52
54
  - lib/pingpp/balance_transfer.rb
53
55
  - lib/pingpp/batch_refund.rb
54
56
  - lib/pingpp/batch_transfer.rb
55
57
  - lib/pingpp/batch_withdrawal.rb
58
+ - lib/pingpp/card_info.rb
56
59
  - lib/pingpp/channel.rb
57
60
  - lib/pingpp/charge.rb
58
61
  - lib/pingpp/coupon.rb
@@ -89,13 +92,17 @@ files:
89
92
  - lib/pingpp/version.rb
90
93
  - lib/pingpp/webhook.rb
91
94
  - lib/pingpp/withdrawal.rb
95
+ - lib/pingpp/wx_lite_oauth.rb
92
96
  - lib/pingpp/wx_pub_oauth.rb
97
+ - test/agreement_test.rb
93
98
  - test/balance_bonus_test.rb
99
+ - test/balance_settlement_test.rb
94
100
  - test/balance_transaction_test.rb
95
101
  - test/balance_transfer_test.rb
96
102
  - test/batch_refund_test.rb
97
103
  - test/batch_transfer_test.rb
98
104
  - test/batch_withdrawal_test.rb
105
+ - test/card_info_test.rb
99
106
  - test/charge_test.rb
100
107
  - test/coupon_template_test.rb
101
108
  - test/coupon_test.rb
@@ -145,14 +152,17 @@ test_files:
145
152
  - test/sub_app_test.rb
146
153
  - test/batch_refund_test.rb
147
154
  - test/sub_app_channel_test.rb
155
+ - test/balance_settlement_test.rb
148
156
  - test/test_data.rb
149
157
  - test/royalty_transaction_test.rb
150
158
  - test/royalty_test.rb
151
159
  - test/charge_test.rb
160
+ - test/agreement_test.rb
152
161
  - test/balance_bonus_test.rb
153
162
  - test/withdrawal_test.rb
154
163
  - test/coupon_test.rb
155
164
  - test/royalty_settlement_test.rb
165
+ - test/card_info_test.rb
156
166
  - test/order_test.rb
157
167
  - test/recharge_test.rb
158
168
  - test/settle_account_test.rb