Class: ActiveMerchant::Billing::ProPayGateway
- Defined in:
- lib/active_merchant/billing/gateways/pro_pay.rb
Constant Summary collapse
- STATUS_RESPONSE_CODES =
{ '00' => 'Success', '20' => 'Invalid username', '21' => 'Invalid transType', '22' => 'Invalid Currency Code', '23' => 'Invalid accountType', '24' => 'Invalid sourceEmail', '25' => 'Invalid firstName', '26' => 'Invalid mInitial', '27' => 'Invalid lastName', '28' => 'Invalid billAddr', '29' => 'Invalid aptNum', '30' => 'Invalid city', '31' => 'Invalid state', '32' => 'Invalid billZip', '33' => 'Invalid mailAddr', '34' => 'Invalid mailApt', '35' => 'Invalid mailCity', '36' => 'Invalid mailState', '37' => 'Invalid mailZip', '38' => 'Invalid dayPhone', '39' => 'Invalid evenPhone', '40' => 'Invalid ssn', '41' => 'Invalid dob', '42' => 'Invalid recEmail', '43' => 'Invalid knownAccount', '44' => 'Invalid amount', '45' => 'Invalid invNum', '46' => 'Invalid rtNum', '47' => 'Invalid accntNum', '48' => 'Invalid ccNum', '49' => 'Invalid expDate', '50' => 'Invalid cvv2', '51' => 'Invalid transNum and/or Unable to act perform actions on transNum due to funding', '52' => 'Invalid splitNum', '53' => 'A ProPay account with this email address already exists AND/OR User has no account number', '54' => 'A ProPay account with this social security number already exists', '55' => 'The email address provided does not correspond to a ProPay account.', '56' => 'Recipient’s email address shouldn’t have a ProPay account and does', '57' => 'Cannot settle transaction because it already expired', '58' => 'Credit card declined', '59' => 'Invalid Credential or IP address not allowed', '60' => 'Credit card authorization timed out; retry at a later time', '61' => 'Amount exceeds single transaction limit', '62' => 'Amount exceeds monthly volume limit', '63' => 'Insufficient funds in account', '64' => 'Over credit card use limit', '65' => 'Miscellaneous error', '66' => 'Denied a ProPay account', '67' => 'Unauthorized service requested', '68' => 'Account not affiliated', '69' => 'Duplicate invoice number (The same card was charged for the same amount with the same invoice number (including blank invoices) in a 1 minute period. Details about the original transaction are included whenever a 69 response is returned. These details include a repeat of the auth code, the original AVS response, and the original CVV response.)', '70' => 'Duplicate external ID', '71' => 'Account previously set up, but problem affiliating it with partner', '72' => 'The ProPay Account has already been upgraded to a Premium Account', '73' => 'Invalid Destination Account', '74' => 'Account or Trans Error', '75' => 'Money already pulled', '76' => 'Not Premium (used only for push/pull transactions)', '77' => 'Empty results', '78' => 'Invalid Authentication', '79' => 'Generic account status error', '80' => 'Invalid Password', '81' => 'Account Expired', '82' => 'InvalidUserID', '83' => 'BatchTransCountError', '84' => 'InvalidBeginDate', '85' => 'InvalidEndDate', '86' => 'InvalidExternalID', '87' => 'DuplicateUserID', '88' => 'Invalid track 1', '89' => 'Invalid track 2', '90' => 'Transaction already refunded', '91' => 'Duplicate Batch ID' }
- TRANSACTION_RESPONSE_CODES =
{ '00' => 'Success', '1' => 'Transaction blocked by issuer', '4' => 'Pick up card and deny transaction', '5' => 'Problem with the account', '6' => 'Customer requested stop to recurring payment', '7' => 'Customer requested stop to all recurring payments', '8' => 'Honor with ID only', '9' => 'Unpaid items on customer account', '12' => 'Invalid transaction', '13' => 'Amount Error', '14' => 'Invalid card number', '15' => 'No such issuer. Could not route transaction', '16' => 'Refund error', '17' => 'Over limit', '19' => 'Reenter transaction or the merchant account may be boarded incorrectly', '25' => 'Invalid terminal 41 Lost card', '43' => 'Stolen card', '51' => 'Insufficient funds', '52' => 'No such account', '54' => 'Expired card', '55' => 'Incorrect PIN', '57' => 'Bank does not allow this type of purchase', '58' => 'Credit card network does not allow this type of purchase for your merchant account.', '61' => 'Exceeds issuer withdrawal limit', '62' => 'Issuer does not allow this card to be charged for your business.', '63' => 'Security Violation', '65' => 'Activity limit exceeded', '75' => 'PIN tries exceeded', '76' => 'Unable to locate account', '78' => 'Account not recognized', '80' => 'Invalid Date', '82' => 'Invalid CVV2', '83' => 'Cannot verify the PIN', '85' => 'Service not supported for this card', '93' => 'Cannot complete transaction. Customer should call 800 number.', '95' => 'Misc Error Transaction failure', '96' => 'Issuer system malfunction or timeout.', '97' => 'Approved for a lesser amount. ProPay will not settle and consider this a decline.', '98' => 'Failure HV', '99' => 'Generic decline or unable to parse issuer response code' }
Constants inherited from Gateway
Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::RECURRING_DEPRECATION_MESSAGE, Gateway::STANDARD_ERROR_CODE
Instance Attribute Summary
Attributes inherited from Gateway
Instance Method Summary collapse
- #authorize(money, payment, options = {}) ⇒ Object
- #capture(money, authorization, options = {}) ⇒ Object
- #credit(money, payment, options = {}) ⇒ Object
-
#initialize(options = {}) ⇒ ProPayGateway
constructor
A new instance of ProPayGateway.
- #purchase(money, payment, options = {}) ⇒ Object
- #refund(money, authorization, options = {}) ⇒ Object
- #scrub(transcript) ⇒ Object
- #supports_scrubbing? ⇒ Boolean
- #verify(credit_card, options = {}) ⇒ Object
- #void(authorization, options = {}) ⇒ Object
Methods inherited from Gateway
#add_field_to_post_if_present, #add_fields_to_post_if_present, card_brand, #card_brand, #generate_unique_id, inherited, supported_countries, #supported_countries, supported_countries=, supports?, #supports_network_tokenization?, #test?
Methods included from CreditCardFormatting
Methods included from PostsData
included, #raw_ssl_request, #ssl_get, #ssl_post, #ssl_request
Constructor Details
#initialize(options = {}) ⇒ ProPayGateway
Returns a new instance of ProPayGateway.
136 137 138 139 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 136 def initialize( = {}) requires!(, :cert_str) super end |
Instance Method Details
#authorize(money, payment, options = {}) ⇒ Object
[View source]
154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 154 def (money, payment, = {}) request = build_xml_request do |xml| add_invoice(xml, money, ) add_payment(xml, payment, ) add_address(xml, ) add_account(xml, ) add_recurring(xml, ) xml.transType '05' end commit(request) end |
#capture(money, authorization, options = {}) ⇒ Object
[View source]
167 168 169 170 171 172 173 174 175 176 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 167 def capture(money, , = {}) request = build_xml_request do |xml| add_invoice(xml, money, ) add_account(xml, ) xml.transNum xml.transType '06' end commit(request) end |
#credit(money, payment, options = {}) ⇒ Object
[View source]
193 194 195 196 197 198 199 200 201 202 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 193 def credit(money, payment, = {}) request = build_xml_request do |xml| add_invoice(xml, money, ) add_payment(xml, payment, ) add_account(xml, ) xml.transType '35' end commit(request) end |
#purchase(money, payment, options = {}) ⇒ Object
[View source]
141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 141 def purchase(money, payment, = {}) request = build_xml_request do |xml| add_invoice(xml, money, ) add_payment(xml, payment, ) add_address(xml, ) add_account(xml, ) add_recurring(xml, ) xml.transType '04' end commit(request) end |
#refund(money, authorization, options = {}) ⇒ Object
[View source]
178 179 180 181 182 183 184 185 186 187 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 178 def refund(money, , = {}) request = build_xml_request do |xml| add_invoice(xml, money, ) add_account(xml, ) xml.transNum xml.transType '07' end commit(request) end |
#scrub(transcript) ⇒ Object
[View source]
215 216 217 218 219 220 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 215 def scrub(transcript) transcript. gsub(%r((<certStr>).+(</certStr>)), '\1[FILTERED]\2'). gsub(%r((<ccNum>).+(</ccNum>)), '\1[FILTERED]\2'). gsub(%r((<CVV2>).+(</CVV2>)), '\1[FILTERED]\2') end |
#supports_scrubbing? ⇒ Boolean
211 212 213 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 211 def supports_scrubbing? true end |
#verify(credit_card, options = {}) ⇒ Object
[View source]
204 205 206 207 208 209 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 204 def verify(credit_card, = {}) MultiResponse.run(:use_first_response) do |r| r.process { (100, credit_card, ) } r.process(:ignore_result) { void(r., ) } end end |
#void(authorization, options = {}) ⇒ Object
[View source]
189 190 191 |
# File 'lib/active_merchant/billing/gateways/pro_pay.rb', line 189 def void(, = {}) refund(nil, , ) end |