Class: MerbMerchant::Billing::PlugnpayGateway
- Inherits:
-
Gateway
- Object
- Gateway
- MerbMerchant::Billing::PlugnpayGateway
show all
- Defined in:
- lib/merb_merchant/billing/gateways/plugnpay.rb
Defined Under Namespace
Classes: PlugnpayPostData
Constant Summary
collapse
- URL =
'https://pay1.plugnpay.com/payment/pnpremote.cgi'
- CARD_CODE_MESSAGES =
{
"M" => "Card verification number matched",
"N" => "Card verification number didn't match",
"P" => "Card verification number was not processed",
"S" => "Card verification number should be on card but was not indicated",
"U" => "Issuer was not certified for card verification"
}
- CARD_CODE_ERRORS =
%w( N S )
- AVS_MESSAGES =
{
"A" => "Street address matches billing information, zip/postal code does not",
"B" => "Address information not provided for address verification check",
"E" => "Address verification service error",
"G" => "Non-U.S. card-issuing bank",
"N" => "Neither street address nor zip/postal match billing information",
"P" => "Address verification not applicable for this transaction",
"R" => "Payment gateway was unavailable or timed out",
"S" => "Address verification service not supported by issuer",
"U" => "Address information is unavailable",
"W" => "9-digit zip/postal code matches billing information, street address does not",
"X" => "Street address and 9-digit zip/postal code matches billing information",
"Y" => "Street address and 5-digit zip/postal code matches billing information",
"Z" => "5-digit zip/postal code matches billing information, street address does not",
}
- AVS_ERRORS =
%w( A E N R W Z )
- PAYMENT_GATEWAY_RESPONSES =
{
"P01" => "AVS Mismatch Failure",
"P02" => "CVV2 Mismatch Failure",
"P21" => "Transaction may not be marked",
"P30" => "Test Tran. Bad Card",
"P35" => "Test Tran. Problem",
"P40" => "Username already exists",
"P41" => "Username is blank",
"P50" => "Fraud Screen Failure",
"P51" => "Missing PIN Code",
"P52" => "Invalid Bank Acct. No.",
"P53" => "Invalid Bank Routing No.",
"P54" => "Invalid/Missing Check No.",
"P55" => "Invalid Credit Card No.",
"P56" => "Invalid CVV2/CVC2 No.",
"P57" => "Expired. CC Exp. Date",
"P58" => "Missing Data",
"P59" => "Missing Email Address",
"P60" => "Zip Code does not match Billing State.",
"P61" => "Invalid Billing Zip Code",
"P62" => "Zip Code does not match Shipping State.",
"P63" => "Invalid Shipping Zip Code",
"P64" => "Invalid Credit Card CVV2/CVC2 Format.",
"P65" => "Maximum number of attempts has been exceeded.",
"P66" => "Credit Card number has been flagged and can not be used to access this service.",
"P67" => "IP Address is on Blocked List.",
"P68" => "Billing country does not match ipaddress country.",
"P69" => "US based ipaddresses are currently blocked.",
"P70" => "Credit Cards issued from this bank are currently not being accepted.",
"P71" => "Credit Cards issued from this bank are currently not being accepted.",
"P72" => "Daily volume exceeded.",
"P73" => "Too many transactions within allotted time.",
"P91" => "Missing/incorrect password",
"P92" => "Account not configured for mobil administration",
"P93" => "IP Not registered to username.",
"P94" => "Mode not permitted for this account.",
"P95" => "Currently Blank",
"P96" => "Currently Blank",
"P97" => "Processor not responding",
"P98" => "Missing merchant/publisher name",
"P99" => "Currently Blank"
}
- TRANSACTIONS =
{
:authorization => 'auth',
:purchase => 'auth',
:capture => 'mark',
:void => 'void',
:refund => 'return',
:credit => 'newreturn'
}
- SUCCESS_CODES =
[ 'pending', 'success' ]
- FAILURE_CODES =
[ 'badcard', 'fraud' ]
Constants inherited
from Gateway
Gateway::DEBIT_CARDS
Constants included
from PostsData
PostsData::MAX_RETRIES, PostsData::OPEN_TIMEOUT, PostsData::READ_TIMEOUT
Instance Attribute Summary
Attributes inherited from Gateway
#options
Instance Method Summary
collapse
Methods inherited from Gateway
#card_brand, card_brand, inherited, supports?, #test?
Methods included from Utils
generate_unique_id
#format
#requires!
Methods included from PostsData
included, #ssl_get, #ssl_post
Constructor Details
Returns a new instance of PlugnpayGateway.
102
103
104
105
106
|
# File 'lib/merb_merchant/billing/gateways/plugnpay.rb', line 102
def initialize(options = {})
requires!(options, :login, :password)
@options = options
super
end
|
Instance Method Details
#authorize(money, creditcard, options = {}) ⇒ Object
121
122
123
124
125
126
127
128
129
130
131
132
|
# File 'lib/merb_merchant/billing/gateways/plugnpay.rb', line 121
def authorize(money, creditcard, options = {})
post = PlugnpayPostData.new
add_amount(post, money, options)
add_creditcard(post, creditcard)
add_addresses(post, options)
add_invoice_data(post, options)
add_customer_data(post, options)
post[:authtype] = 'authonly'
commit(:authorization, post)
end
|
#capture(money, authorization, options = {}) ⇒ Object
134
135
136
137
138
139
140
141
142
143
|
# File 'lib/merb_merchant/billing/gateways/plugnpay.rb', line 134
def capture(money, authorization, options = {})
post = PlugnpayPostData.new
post[:orderID] = authorization
add_amount(post, money, options)
add_customer_data(post, options)
commit(:capture, post)
end
|
#credit(money, identification_or_creditcard, options = {}) ⇒ Object
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
# File 'lib/merb_merchant/billing/gateways/plugnpay.rb', line 154
def credit(money, identification_or_creditcard, options = {})
post = PlugnpayPostData.new
add_amount(post, money, options)
if identification_or_creditcard.is_a?(String)
post[:orderID] = identification_or_creditcard
commit(:refund, post)
else
add_creditcard(post, identification_or_creditcard)
add_addresses(post, options)
add_customer_data(post, options)
commit(:credit, post)
end
end
|
#purchase(money, creditcard, options = {}) ⇒ Object
108
109
110
111
112
113
114
115
116
117
118
119
|
# File 'lib/merb_merchant/billing/gateways/plugnpay.rb', line 108
def purchase(money, creditcard, options = {})
post = PlugnpayPostData.new
add_amount(post, money, options)
add_creditcard(post, creditcard)
add_addresses(post, options)
add_invoice_data(post, options)
add_customer_data(post, options)
post[:authtype] = 'authpostauth'
commit(:authorization, post)
end
|
#void(authorization, options = {}) ⇒ Object
145
146
147
148
149
150
151
152
|
# File 'lib/merb_merchant/billing/gateways/plugnpay.rb', line 145
def void(authorization, options = {})
post = PlugnpayPostData.new
post[:orderID] = authorization
post[:txn_type] = 'auth'
commit(:void, post)
end
|