wechat_payment 2.0.8 → 2.0.12

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87f4044d658d3093db1078f065765d207441d6556419de26fd6e7f88169a8467
4
- data.tar.gz: 3bc5fbf36af300ca50c15e1ae37523df59da4aa6169f7cac57b696a59a8bfdb1
3
+ metadata.gz: 3d873ce178368297c4807c2931b92f2589d1bcf21f0ded448750e32c98bc523e
4
+ data.tar.gz: 07cd0af3317c3454674a0a8951c5c826c5411ed242aa152d6a4a90850c52ce90
5
5
  SHA512:
6
- metadata.gz: d87869b6dab7c779d1ec4a5f5de801989b5058f9e7f34e7eff4455fc641e2196e2ebc0d2894df5486ec8d1d829fca8e39cf65c91deac5f9c8d16096e774c86cb
7
- data.tar.gz: 9cb4c3a15a3422ecfeb1a26d7eaafd20b7274de371b1241c42723b52bec8c7398a8ef56633986b977ebdc5172cdb0f63a73f8f961b11c95fcae7c6c860c7c304
6
+ metadata.gz: bd673814ef12f40cfb7d77fae2b032c146896f9509615067a1f5d029a43c89c37302eb6f4e869e5d7138c96477001a577f357a9383f60e36e2b4f80d80acaa29
7
+ data.tar.gz: 24d4427cdd1abcc358d04c771dbd9cf6875214b2a11887b6519e20371c8fdaecdda8987c7b82787be006feace175b6ed8114999d3ef63590de67c08ba4415e53
@@ -10,7 +10,7 @@ module WechatPayment
10
10
  if process_result.success?
11
11
  render xml: { return_code: "SUCCESS" }.to_xml(root: 'xml', dasherize: false)
12
12
  else
13
- render xml: { return_code: "FAIL", return_msg: process_result.errors.first }.to_xml(root: 'xml', dasherize: false)
13
+ render xml: { return_code: "FAIL", return_msg: process_result.error.first }.to_xml(root: 'xml', dasherize: false)
14
14
  end
15
15
  end
16
16
 
@@ -21,7 +21,7 @@ module WechatPayment
21
21
  if refund_result.success?
22
22
  render xml: {return_code: "SUCCESS"}.to_xml(root: 'xml', dasherize: false)
23
23
  else
24
- render xml: {return_code: "FAIL", return_msg: refund_result.errors.first}.to_xml(root: 'xml', dasherize: false)
24
+ render xml: {return_code: "FAIL", return_msg: refund_result.error.first}.to_xml(root: 'xml', dasherize: false)
25
25
  end
26
26
 
27
27
  end
@@ -15,7 +15,7 @@ module WechatPayment
15
15
  if order_result.success?
16
16
  payment_order.payment_apply_success(order_result.data)
17
17
  else
18
- payment_order.payment_apply_failure(order_result.errors)
18
+ payment_order.payment_apply_failure(order_result.error)
19
19
  end
20
20
 
21
21
  order_result
@@ -33,7 +33,7 @@ module WechatPayment
33
33
  if refund_result.success?
34
34
  refund_order.refund_apply_success(refund_result.data)
35
35
  else
36
- refund_order.refund_apply_failure(refund_result.errors)
36
+ refund_order.refund_apply_failure(refund_result.error)
37
37
  end
38
38
 
39
39
  refund_result
@@ -49,7 +49,7 @@ module WechatPayment
49
49
  payment_order.payment_exec_success(result.data)
50
50
  end
51
51
  else
52
- payment_order.payment_exec_failure(result.errors)
52
+ payment_order.payment_exec_failure(result.error)
53
53
  end
54
54
 
55
55
  result
@@ -65,7 +65,7 @@ module WechatPayment
65
65
  refund_order.refund_exec_success(result.data)
66
66
  end
67
67
  else
68
- refund_order.refund_exec_failure(result.errors)
68
+ refund_order.refund_exec_failure(result.error)
69
69
  end
70
70
 
71
71
  result
@@ -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
 
@@ -66,7 +65,7 @@ module WechatPayment
66
65
  WechatPayment::ServiceResult.new(success: true, data: refund_result)
67
66
  else
68
67
  refund_logger.error "{params: #{refund_params}, result: #{refund_result}"
69
- WechatPayment::ServiceResult.new(success: false, errors: refund_result)
68
+ WechatPayment::ServiceResult.new(success: false, error: refund_result)
70
69
  end
71
70
  end
72
71
 
@@ -78,18 +77,18 @@ module WechatPayment
78
77
  # 处理支付回调
79
78
  def self.handle_payment_notify(notify_data)
80
79
  if !WechatPayment::Sign.verify?(notify_data)
81
- payment_logger.error("{msg: 签名验证失败, errors: #{notify_data}}")
82
- WechatPayment::ServiceResult.new(errors: notify_data, message: "回调签名验证失败")
80
+ payment_logger.error("{msg: 签名验证失败, error: #{notify_data}}")
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,34 @@ 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
+
62
+ WechatPayment::ServiceResult.new(success: true, data: payment_order, message: "支付订单创建成功")
48
63
  end
49
64
 
50
65
  # 重新支付,应用场景是: 用户取消了支付后,使用最后一张订单进行支付
@@ -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: nil)
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.12'
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.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - ian