wechat_payment 2.0.8 → 2.0.12

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: 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