class OffsitePayments::Integrations::SagePayForm::Notification
Public Class Methods
OffsitePayments::Notification::new
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 207 def initialize(post_data, options) super load_crypt_params(params['crypt'], options[:credential2]) end
Public Instance Methods
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 368 def acknowledge true end
Numeric address check. Possible values:
NOTPROVIDED
NOTCHECKED
MATCHED
NOTMATCHED
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 282 def address_result params['AddressResult'] end
Address confirmation status. PayPal only. Possible values:
NONE
CONFIRMED
UNCONFIRMED
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 329 def address_status params['AddressStatus'] end
Authorization number (only if completed?).
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 258 def auth_id params['TxAuthNo'] end
AVS and CV2 check results. Possible values:
ALL MATCH
SECURITY CODE MATCH ONLY
ADDRESS MATCH ONLY
NO DATA MATCHES
DATA NOT CHECKED
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 273 def avs_cv2_result params['AVSCV2'] end
Result of 3D Secure checks. Possible values:
OK
-
Authenticated correctly.
NOTCHECKED
-
Authentication not performed.
NOTAVAILABLE
-
Card not auth-capable, or auth is otherwise impossible.
NOTAUTHED
-
User failed authentication.
INCOMPLETE
-
Authentication unable to complete.
ERROR
-
Unable to attempt authentication due to data / service errors.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 316 def buyer_auth_result params['3DSecureStatus'] end
Encoded 3D Secure result code.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 321 def buyer_auth_result_code params['CAVV'] end
Was the transaction cancelled? Unfortunately, we can't distinguish “user abort” from “idle too long”.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 219 def cancelled? status_code == 'ABORT' end
Was the transaction complete?
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 213 def complete? status_code == 'OK' end
Last four digits of credit card.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 355 def credit_card_last_4_digits params['Last4Digits'] end
Credit card type. Possible values:
VISA
-
Visa
MC
-
MasterCard
DELTA
-
Delta
SOLO
-
Solo
MAESTRO
-
Maestro (UK and International)
UKE
-
Visa Electron
AMEX
-
American Express
DC
-
Diners Club
JCB
-
JCB
LASER
-
Laser
PAYPAL
-
PayPal
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 350 def credit_card_type params['CardType'] end
Used by composition methods, but not supplied by SagePay.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 360 def currency nil end
CV2 code check. Possible values:
NOTPROVIDED
NOTCHECKED
MATCHED
NOTMATCHED
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 300 def cv2_result params['CV2Result'] end
Was the Gift Aid box checked?
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 305 def gift_aid? params['GiftAid'] == '1' end
Total amount (no fees).
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 263 def gross params['Amount'].gsub(/,(?=\d{3}\b)/, '') end
Vendor-supplied code (:order mapping).
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 248 def item_id params['VendorTxCode'] end
Check this if completed? is false.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 243 def message params['StatusDetail'] end
Payer verification. Undocumented.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 334 def payer_verified? params['PayerStatus'] == 'VERIFIED' end
Post code check. Possible values:
NOTPROVIDED
NOTCHECKED
MATCHED
NOTMATCHED
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 291 def post_code_result params['PostCodeResult'] end
Text version of complete?
, since we don't support Pending.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 224 def status complete? ? 'Completed' : 'Failed' end
Status of transaction. List of possible values:
OK
-
Transaction completed successfully.
NOTAUTHED
-
Incorrect card details / insufficient funds.
MALFORMED
-
Invalid input data.
INVALID
-
Valid input data, but some fields are incorrect.
ABORT
-
User hit cancel button or went idle for 15+ minutes.
REJECTED
-
Rejected by account fraud screening rules.
AUTHENTICATED
-
Authenticated card details secured at SagePay.
REGISTERED
-
Non-authenticated card details secured at SagePay.
ERROR
-
Problem internal to SagePay.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 238 def status_code params['Status'] end
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 364 def test? false end
Internal SagePay code, typically “{LONG-UUID}”.
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 253 def transaction_id params['VPSTxId'] end
Private Instance Methods
# File lib/offsite_payments/integrations/sage_pay_form.rb, line 374 def load_crypt_params(crypt, key) raise MissingCryptData if crypt.blank? raise MissingCryptKey if key.blank? crypt_data = sage_decrypt(crypt.gsub(' ', '+'), key) raise InvalidCryptData unless crypt_data =~ /(^|&)Status=/ params.clear parse(crypt_data) end