wechat_payment 2.0.8 → 2.0.9

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: 87f4044d658d3093db1078f065765d207441d6556419de26fd6e7f88169a8467
4
- data.tar.gz: 3bc5fbf36af300ca50c15e1ae37523df59da4aa6169f7cac57b696a59a8bfdb1
3
+ metadata.gz: 3acba715b3e59f36af2ae3bbec80a199773f262e07fc95fff8a3a8da7fd339c8
4
+ data.tar.gz: 84fb7b364df1ac7cae171a4fafa64a1f4396336471f2637a176154de110edb99
5
5
  SHA512:
6
- metadata.gz: d87869b6dab7c779d1ec4a5f5de801989b5058f9e7f34e7eff4455fc641e2196e2ebc0d2894df5486ec8d1d829fca8e39cf65c91deac5f9c8d16096e774c86cb
7
- data.tar.gz: 9cb4c3a15a3422ecfeb1a26d7eaafd20b7274de371b1241c42723b52bec8c7398a8ef56633986b977ebdc5172cdb0f63a73f8f961b11c95fcae7c6c860c7c304
6
+ metadata.gz: cfd511f056ecf1b79e87eaa2a1b8d0c8eda5f73449cb95b57dbaf12cca7ad9600cad2b9d6553782c665b6781de9ec50abe8f330d3983dfb39b0e1b1c77328d71
7
+ data.tar.gz: e78ecd5f76ad88e07696a6eb14ec8d558ee91306331a0de687d8fb18392407258ceddbc5d441ec4b336fe227302cb271a868edba42d07e7146645454b4bee2f0
@@ -39,11 +39,10 @@ module WechatPayment
39
39
  if order_result.success?
40
40
 
41
41
  payment_logger.info("{params: #{order_params}, result: #{order_result}}")
42
- # WechatPayment::ServiceResult.new(success: true, data: { order_result: order_result.with_indifferent_access, js_payload: mini_program_request_params.with_indifferent_access })
43
42
  WechatPayment::ServiceResult.new(success: true, data: order_result.with_indifferent_access)
44
43
  else
45
44
  payment_logger.error("{params: #{order_params}, result: #{order_result}}")
46
- WechatPayment::ServiceResult.new(success: false, errors: order_result.with_indifferent_access)
45
+ WechatPayment::ServiceResult.new(success: false, error: order_result.with_indifferent_access)
47
46
  end
48
47
  end
49
48
 
@@ -79,17 +78,17 @@ module WechatPayment
79
78
  def self.handle_payment_notify(notify_data)
80
79
  if !WechatPayment::Sign.verify?(notify_data)
81
80
  payment_logger.error("{msg: 签名验证失败, errors: #{notify_data}}")
82
- WechatPayment::ServiceResult.new(errors: notify_data, message: "回调签名验证失败")
81
+ WechatPayment::ServiceResult.new(success: false, error: notify_data, message: "回调签名验证失败")
83
82
  end
84
83
 
85
84
  result = WechatPayment::InvokeResult.new(notify_data)
86
85
 
87
86
  if result.success?
88
87
  payment_logger.info("{callback: #{notify_data}}")
89
- WechatPayment::ServiceResult.new(success: true, data: notify_data)
88
+ WechatPayment::ServiceResult.new(success: true, data: notify_data, message: "支付执行成功", )
90
89
  else
91
90
  payment_logger.error("{callback: #{notify_data}}")
92
- WechatPayment::ServiceResult.new(errors: notify_data)
91
+ WechatPayment::ServiceResult.new(success: false, error: notify_data, message: "支付执行失败", error_type: :payment_exec_failed)
93
92
  end
94
93
  end
95
94
 
@@ -99,11 +98,11 @@ module WechatPayment
99
98
 
100
99
  result = WechatPayment::InvokeResult.new(notify_data)
101
100
  if result.success?
102
- refund_logger.info "{callback: #{notify_data}}"
101
+ refund_logger.info "退款执行成功{callback: #{notify_data}}"
103
102
  WechatPayment::ServiceResult.new(success: true, data: notify_data)
104
103
  else
105
- refund_logger.error "{callback: #{notify_data}}"
106
- WechatPayment::ServiceResult.new(errors: notify_data)
104
+ refund_logger.error "退款执行失败: {callback: #{notify_data}}"
105
+ WechatPayment::ServiceResult.new(success:false, error: notify_data, message: "退款回调失败")
107
106
  end
108
107
  end
109
108
 
@@ -32,19 +32,33 @@ module WechatPayment
32
32
  end
33
33
  end
34
34
 
35
- user_goods = self.class.user_goods_model.constantize.create(
35
+ user_goods_model = self.class.user_goods_model.constantize
36
+
37
+ user_goods = user_goods_model.new(
36
38
  self.class.goods_ref_field => self,
37
39
  self.class.user_ref_field => user,
38
40
  **with_info,
39
41
  **persist_goods_data,
40
42
  )
41
43
 
42
- user_goods.payment_orders.create(
44
+ unless user_goods.save
45
+ return WechatPayment::ServiceResult.new(success: false,
46
+ error: user_goods.errors,
47
+ message: "商品中间表 #{user_goods_model.table_name} 插入数据失败",
48
+ error_type: :create_user_goods_failed)
49
+ end
50
+
51
+ payment_order = user_goods.payment_orders.new(
43
52
  body: name,
44
53
  total_fee: price,
45
54
  trade_type: :JSAPI,
46
55
  customer: user
47
56
  )
57
+
58
+ unless payment_order.save
59
+ return WechatPayment::ServiceResult.new(success: false, error: user_goods.errors, message: "支付订单创建失败")
60
+ end
61
+
48
62
  end
49
63
 
50
64
  # 重新支付,应用场景是: 用户取消了支付后,使用最后一张订单进行支付
@@ -1,19 +1,28 @@
1
1
  module WechatPayment
2
2
  class ServiceResult
3
3
  attr_accessor :success,
4
- :errors,
4
+ :error,
5
5
  :data,
6
6
  :message,
7
- :message_type
7
+ :message_type,
8
+ :error_type
8
9
 
9
10
  def initialize(success: false,
10
- errors: nil,
11
+ error: nil,
11
12
  message: nil,
12
13
  message_type: nil,
13
- data: nil)
14
+ data: nil,
15
+ error_type)
14
16
  self.success = success
15
- self.data = data
16
- self.errors = errors.is_a?(Enumerable) ? errors : [errors]
17
+
18
+ self.data = data.presence || {}
19
+
20
+ if self.data.is_a? Hash
21
+ self.data = self.data.with_indifferent_access
22
+ end
23
+
24
+ self.error = error
25
+
17
26
  self.message = message
18
27
  self.message_type = message_type
19
28
  end
@@ -36,14 +45,22 @@ module WechatPayment
36
45
  if message_type.present?
37
46
  message_type.to_sym
38
47
  elsif success?
39
- :notice
48
+ :info
40
49
  else
41
50
  :error
42
51
  end
43
52
  end
44
53
 
45
54
  def as_json(options = {})
46
- data.as_json(options)
55
+ # data.as_json(options)
56
+ {
57
+ success: success,
58
+ data: data,
59
+ message: message,
60
+ message_type: get_message_type,
61
+ error: error,
62
+ error_type: error_type
63
+ }
47
64
  end
48
65
  end
49
66
  end
@@ -1,3 +1,3 @@
1
1
  module WechatPayment
2
- VERSION = '2.0.8'
2
+ VERSION = '2.0.9'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wechat_payment
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.8
4
+ version: 2.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - ian