Class: Externals::Omise::Charge
Overview
Store how many charged amount of a reservation
Constant Summary
collapse
- SUCCESS_STATUS =
%w[successful success].freeze
- PENDING_STATUS =
'pending'
- REFUND_STATUS =
'refund'
- RESULT_CODE_SUCCESS =
'00'
- RESULT_CODE_INVALID_CARD =
%w[02 05 14 50 54 58].freeze
- EXPECTED_FAILURE_CODES =
%w[
insufficient_fund
stolen_or_lost_card
failed_processing
payment_rejected
failed_fraud_check
invalid_account_number
].freeze
Instance Method Summary
collapse
#configure_omise_keys, #omise_public_key
sync_carrierwave_url
Instance Method Details
#gateway_type ⇒ Object
73
74
75
76
77
78
79
|
# File 'app/models/externals/omise/charge.rb', line 73
def gateway_type
if transaction_id.to_s.include? 'gbp'
:gb_primepay
else
:omise
end
end
|
#generate_transaction_id ⇒ Object
95
96
97
98
99
100
101
102
103
|
# File 'app/models/externals/omise/charge.rb', line 95
def generate_transaction_id
if reservation.present?
"by-admin-#{reservation_id}-#{Time.now.to_i}"
elsif voucher_transaction.present?
"by-admin-#{voucher_transaction_id}-#{Time.now.to_i}"
elsif ticket_transaction.present?
"by-admin-#{ticket_transaction_id}-#{Time.now.to_i}"
end
end
|
#success? ⇒ Boolean
69
70
71
|
# File 'app/models/externals/omise/charge.rb', line 69
def success?
SUCCESS_STATUS.include?(status)
end
|
#transaction ⇒ Object
91
92
93
|
# File 'app/models/externals/omise/charge.rb', line 91
def transaction
reservation.presence || voucher_transaction.presence || ticket_transaction.presence
end
|
#transaction_detail ⇒ Object
62
63
64
65
66
67
|
# File 'app/models/externals/omise/charge.rb', line 62
def transaction_detail
configure_omise_keys(reservation.restaurant.country.alpha3) if reservation.present?
@transaction_detail ||= ::Omise::Transaction.retrieve(transaction_id)
end
|
#transaction_product_type ⇒ Object
81
82
83
84
85
86
87
88
89
|
# File 'app/models/externals/omise/charge.rb', line 81
def transaction_product_type
if reservation.present?
:reservation
elsif voucher_transaction.present?
:voucher_transaction
elsif ticket_transaction.present?
:ticket_transaction
end
end
|