Module: RailsTrade::Refund
- Extended by:
- ActiveSupport::Concern
- Included in:
- Refund
- Defined in:
- app/models/rails_trade/refund.rb
Defined Under Namespace
Modules: AlipayRefund, BankRefund, HandRefund, PaypalRefund, StripeRefund, WxpayRefund
Instance Method Summary
collapse
Instance Method Details
#can_refund? ⇒ Boolean
70
71
72
|
# File 'app/models/rails_trade/refund.rb', line 70
def can_refund?
self.init? && ['all_paid', 'part_paid', 'refunding'].include?(order.payment_status)
end
|
#currency_symbol ⇒ Object
43
44
45
|
# File 'app/models/rails_trade/refund.rb', line 43
def currency_symbol
Money::Currency.new(self.currency).symbol
end
|
#deny_refund(params = {}) ⇒ Object
59
60
61
62
63
64
65
66
67
68
|
# File 'app/models/rails_trade/refund.rb', line 59
def deny_refund(params = {})
order.payment_status = 'denied'
self.state = 'failed'
self.class.transaction do
order.save!
self.save!
end
end
|
#do_refund(params = {}) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
|
# File 'app/models/rails_trade/refund.rb', line 47
def do_refund(params = {})
order.payment_status = 'refunded'
self.state = 'completed'
self.refunded_at = Time.now
self.class.transaction do
order.save!
self.save!
end
end
|
#valid_total_amount ⇒ Object
微信是同一个批次号未退款成功可重复申请 支付宝批次号只能当天有效
37
38
39
40
41
|
# File 'app/models/rails_trade/refund.rb', line 37
def valid_total_amount
if self.new_record? && total_amount > payment.total_amount
self.errors.add :total_amount, 'more then order received amount!'
end
end
|