Class: ActiveMerchant::Billing::SagePayGateway
- Inherits:
-
Gateway
- Object
- Gateway
- ActiveMerchant::Billing::SagePayGateway
show all
- Defined in:
- lib/active_merchant/billing/gateways/sage_pay.rb
Constant Summary
collapse
- TEST_URL =
'https://test.sagepay.com/gateway/service'
- LIVE_URL =
'https://live.sagepay.com/gateway/service'
- SIMULATOR_URL =
'https://test.sagepay.com/Simulator'
- APPROVED =
'OK'
- TRANSACTIONS =
{
:purchase => 'PAYMENT',
:credit => 'REFUND',
:authorization => 'DEFERRED',
:capture => 'RELEASE',
:void => 'VOID',
:abort => 'ABORT'
}
- CREDIT_CARDS =
{
:visa => "VISA",
:master => "MC",
:delta => "DELTA",
:solo => "SOLO",
:switch => "MAESTRO",
:maestro => "MAESTRO",
:american_express => "AMEX",
:electron => "UKE",
:diners_club => "DC",
:jcb => "JCB"
}
- ELECTRON =
/^(424519|42496[23]|450875|48440[6-8]|4844[1-5][1-5]|4917[3-5][0-9]|491880)\d{10}(\d{3})?$/
- AVS_CVV_CODE =
{
"NOTPROVIDED" => nil,
"NOTCHECKED" => 'X',
"MATCHED" => 'Y',
"NOTMATCHED" => 'N'
}
Constants inherited
from Gateway
Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::CURRENCIES_WITHOUT_FRACTIONS, Gateway::DEBIT_CARDS
Instance Attribute Summary
Attributes inherited from Gateway
#options
Instance Method Summary
collapse
-
#authorize(money, credit_card, options = {}) ⇒ Object
-
#capture(money, identification, options = {}) ⇒ Object
You can only capture a transaction once, even if you didn’t capture the full amount the first time.
-
#credit(money, identification, options = {}) ⇒ Object
-
#initialize(options = {}) ⇒ SagePayGateway
constructor
A new instance of SagePayGateway.
-
#purchase(money, credit_card, options = {}) ⇒ Object
-
#refund(money, identification, options = {}) ⇒ Object
Refunding requires a new order_id to passed in, as well as a description.
-
#test? ⇒ Boolean
-
#void(identification, options = {}) ⇒ Object
Methods inherited from Gateway
#card_brand, card_brand, inherited, supports?
#format
Constructor Details
51
52
53
54
55
|
# File 'lib/active_merchant/billing/gateways/sage_pay.rb', line 51
def initialize(options = {})
requires!(options, :login)
@options = options
super
end
|
Instance Method Details
#authorize(money, credit_card, options = {}) ⇒ Object
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/active_merchant/billing/gateways/sage_pay.rb', line 75
def authorize(money, credit_card, options = {})
requires!(options, :order_id)
post = {}
add_amount(post, money, options)
add_invoice(post, options)
add_credit_card(post, credit_card)
add_address(post, options)
add_customer_data(post, options)
commit(:authorization, post)
end
|
#capture(money, identification, options = {}) ⇒ Object
You can only capture a transaction once, even if you didn’t capture the full amount the first time.
90
91
92
93
94
95
96
97
|
# File 'lib/active_merchant/billing/gateways/sage_pay.rb', line 90
def capture(money, identification, options = {})
post = {}
add_reference(post, identification)
add_release_amount(post, money, options)
commit(:capture, post)
end
|
#credit(money, identification, options = {}) ⇒ Object
121
122
123
124
|
# File 'lib/active_merchant/billing/gateways/sage_pay.rb', line 121
def credit(money, identification, options = {})
deprecated CREDIT_DEPRECATION_MESSAGE
refund(money, identification, options)
end
|
#purchase(money, credit_card, options = {}) ⇒ Object
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/active_merchant/billing/gateways/sage_pay.rb', line 61
def purchase(money, credit_card, options = {})
requires!(options, :order_id)
post = {}
add_amount(post, money, options)
add_invoice(post, options)
add_credit_card(post, credit_card)
add_address(post, options)
add_customer_data(post, options)
commit(:purchase, post)
end
|
#refund(money, identification, options = {}) ⇒ Object
Refunding requires a new order_id to passed in, as well as a description
109
110
111
112
113
114
115
116
117
118
119
|
# File 'lib/active_merchant/billing/gateways/sage_pay.rb', line 109
def refund(money, identification, options = {})
requires!(options, :order_id, :description)
post = {}
add_credit_reference(post, identification)
add_amount(post, money, options)
add_invoice(post, options)
commit(:credit, post)
end
|
#test? ⇒ Boolean
57
58
59
|
# File 'lib/active_merchant/billing/gateways/sage_pay.rb', line 57
def test?
@options[:test] || super
end
|
#void(identification, options = {}) ⇒ Object
99
100
101
102
103
104
105
106
|
# File 'lib/active_merchant/billing/gateways/sage_pay.rb', line 99
def void(identification, options = {})
post = {}
add_reference(post, identification)
action = abort_or_void_from(identification)
commit(action, post)
end
|