lib/buckaruby/response.rb in buckaruby-1.4.0 vs lib/buckaruby/response.rb in buckaruby-1.5.0
- old
+ new
@@ -20,23 +20,11 @@
verify_signature!(@response, config)
end
def status
- # See http://support.buckaroo.nl/index.php/Statuscodes
- case params[:brq_statuscode]
- when '190'
- TransactionStatus::SUCCESS
- when '490', '491', '492'
- TransactionStatus::FAILED
- when '690'
- TransactionStatus::REJECTED
- when '790', '791', '792', '793'
- TransactionStatus::PENDING
- when '890', '891'
- TransactionStatus::CANCELLED
- end
+ TransactionStatus.parse(params[:brq_statuscode])
end
def timestamp
parse_time(params[:brq_timestamp])
end
@@ -83,11 +71,11 @@
response
end
def verify_signature!(response, config)
- if params[:brq_apiresult].nil? || !params[:brq_apiresult].casecmp("fail").zero?
+ if params[:brq_apiresult].nil? || params[:brq_apiresult].casecmp("fail") != 0
sent_signature = params[:brq_signature]
generated_signature = Signature.generate_signature(response, config)
if sent_signature != generated_signature
raise SignatureException.new(sent_signature, generated_signature)
@@ -174,79 +162,10 @@
def transaction_id
params[:brq_transactions]
end
def transaction_type
- if params[:brq_transaction_type] && !params[:brq_transaction_type].empty?
- # See http://support.buckaroo.nl/index.php/Transactietypes
- case params[:brq_transaction_type]
- when 'C021', 'V021', # iDEAL
- 'C002', 'C004', 'C005', # (SEPA) Direct Debit
- 'V010', 'V014', # PayPal
- 'C090', 'V090', # Bancontact
- 'C001', # Transfer
-
- 'C044', 'C192', 'C283', 'C293', 'C318', 'C345',
- 'C880', 'C963', 'V002', 'V032', 'V038', 'V044',
- 'V192', 'V283', 'V293', 'V313', 'V318', 'V345',
- 'V696', # Visa
-
- 'C043', 'C089', 'C273', 'C303', 'C328', 'C355',
- 'C876', 'C969', 'V001', 'V031', 'V037', 'V043',
- 'V089', 'V273', 'V303', 'V328', 'V355', 'V702', # MasterCard
-
- 'C046', 'C251', 'C288', 'C308', 'C333', 'C872',
- 'C972', 'V034', 'V040', 'V046', 'V094', 'V245',
- 'V288', 'V308', 'V333', 'V705', # Maestro
-
- 'V003', 'V030', 'V036', 'V042' # American Express
-
- # Check the recurring flag to detect a normal or recurring transaction.
- if params[:brq_recurring] && params[:brq_recurring].casecmp("true").zero?
- TransactionType::PAYMENT_RECURRENT
- else
- TransactionType::PAYMENT
- end
- when 'C121', # iDEAL
- 'C102', 'C500', # (SEPA) Direct Debit
- 'V110', # PayPal
- 'C092', 'V092', # Bancontact
- 'C101', # Transfer
-
- 'C080', 'C194', 'C281', 'C290', 'C315', 'C342',
- 'C881', 'C961', 'V068', 'V074', 'V080', 'V102',
- 'V194', 'V281', 'V290', 'V315', 'V342', 'V694', # Visa
-
- 'C079', 'C197', 'C300', 'C325', 'C352', 'C371',
- 'C877', 'C967', 'V067', 'V073', 'V079', 'V101',
- 'V149', 'V197', 'V300', 'V325', 'V352', 'V371',
- 'V700', # MasterCard
-
- 'C082', 'C252', 'C286', 'C305', 'C330', 'C873',
- 'C970', 'V070', 'V076', 'V082', 'V246', 'V286',
- 'V305', 'V330', 'V703', # Maestro
-
- 'V066', 'V072', 'V078', 'V103' # American Express
- TransactionType::REFUND
- when 'C501', 'C502', 'C562', # (SEPA) Direct Debit
- 'V111', # PayPal
-
- 'C554', 'C593', 'C882', 'V132', 'V138', 'V144',
- 'V544', 'V592', # Visa
-
- 'C553', 'C589', 'C878', 'V131', 'V137', 'V143',
- 'V543', 'V589', # MasterCard
-
- 'C546', 'C551', 'C874', 'V134', 'V140', 'V146',
- 'V545', 'V546', # Maestro
-
- 'V130', 'V136', 'V142' # American Express
- TransactionType::REVERSAL
- end
- else
- # Fallback when transaction type is not known (cancelling credit card)
- TransactionType::PAYMENT
- end
+ TransactionType.parse(params[:brq_transaction_type], params[:brq_recurring])
end
def transaction_status
status
end