wechat_payment 2.0.7 → 2.0.11

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: 47ac17c0ea1a99ad55e63958da4dfbefc0282f9962ce038a738b4322d09a501c
4
- data.tar.gz: e61cc08c219cb5c90cb74be1836ada62f120ccb64481e5d2e2be6aa7ed4f7fcb
3
+ metadata.gz: 4edf41cf427155d4e2307562ee8a080fc99d2973ed9bbdd7b16431c293a133a1
4
+ data.tar.gz: 6766d6104766fc5b76c1096ec19e35aadecc9c2cb989ccd76d66c7e1249b6009
5
5
  SHA512:
6
- metadata.gz: 6310f34d9941e697640cb0902415cc7dd9ecfdd743c2b02fa0b05d1202f57d81afd262a81d45999046f0b4f2e90dfc42f66c745ed1278339dc08207adb621297
7
- data.tar.gz: dabde1251f1337d373be190c1dfd23b022d6b5e32ca4b50ceaa6b1a1aeccb54fd1c55cb354b47fdb43846948d3a6847b06f28dc4b926ca4be50b405d20bfc03e
6
+ metadata.gz: d9319c9dd8961de6f55b4a187af79dfcb2310d28f5780b1b70ba12c2f1e219ed97d4dc254ecfcd706eaa5f1d53875f74518ad70df82beb6fbcb85cf4a11b303f
7
+ data.tar.gz: 7aa4f7e2a8d13e448a1f9e970b1cbd2395784d23c626e4a4f41639edc6ee4fb01cf0310554cb5c5f4a2ac6289ec90290606e3244ca1a2414e24f498b16e26877
@@ -60,7 +60,7 @@ module WechatPayment
60
60
  result = WechatPayment::Client.handle_refund_notify(notify_data)
61
61
  refund_order = WechatPayment::RefundOrder.find_by(out_refund_no: result.data["out_refund_no"])
62
62
 
63
- if result.success? && refund_order.pending_pay?
63
+ if result.success? && refund_order.pending_refund?
64
64
  refund_order.with_lock do
65
65
  refund_order.refund_exec_success(result.data)
66
66
  end
@@ -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
 
@@ -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,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.7'
2
+ VERSION = '2.0.11'
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.7
4
+ version: 2.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - ian