Class: ActiveMerchant::Billing::EpayGateway

Inherits:
Gateway
  • Object
show all
Defined in:
lib/active_merchant/billing/gateways/epay.rb

Constant Summary collapse

CURRENCY_CODES =
{
  ADP: '020', AED: '784', AFA: '004', ALL: '008', AMD: '051',
  ANG: '532', AOA: '973', ARS: '032', AUD: '036', AWG: '533',
  AZM: '031', BAM: '977', BBD: '052', BDT: '050', BGL: '100',
  BGN: '975', BHD: '048', BIF: '108', BMD: '060', BND: '096',
  BOB: '068', BOV: '984', BRL: '986', BSD: '044', BTN: '064',
  BWP: '072', BYR: '974', BZD: '084', CAD: '124', CDF: '976',
  CHF: '756', CLF: '990', CLP: '152', CNY: '156', COP: '170',
  CRC: '188', CUP: '192', CVE: '132', CYP: '196', CZK: '203',
  DJF: '262', DKK: '208', DOP: '214', DZD: '012', ECS: '218',
  ECV: '983', EEK: '233', EGP: '818', ERN: '232', ETB: '230',
  EUR: '978', FJD: '242', FKP: '238', GBP: '826', GEL: '981',
  GHC: '288', GIP: '292', GMD: '270', GNF: '324', GTQ: '320',
  GWP: '624', GYD: '328', HKD: '344', HNL: '340', HRK: '191',
  HTG: '332', HUF: '348', IDR: '360', ILS: '376', INR: '356',
  IQD: '368', IRR: '364', ISK: '352', JMD: '388', JOD: '400',
  JPY: '392', KES: '404', KGS: '417', KHR: '116', KMF: '174',
  KPW: '408', KRW: '410', KWD: '414', KYD: '136', KZT: '398',
  LAK: '418', LBP: '422', LKR: '144', LRD: '430', LSL: '426',
  LTL: '440', LVL: '428', LYD: '434', MAD: '504', MDL: '498',
  MGF: '450', MKD: '807', MMK: '104', MNT: '496', MOP: '446',
  MRO: '478', MTL: '470', MUR: '480', MVR: '462', MWK: '454',
  MXN: '484', MXV: '979', MYR: '458', MZM: '508', NAD: '516',
  NGN: '566', NIO: '558', NOK: '578', NPR: '524', NZD: '554',
  OMR: '512', PAB: '590', PEN: '604', PGK: '598', PHP: '608',
  PKR: '586', PLN: '985', PYG: '600', QAR: '634', ROL: '642',
  RUB: '643', RUR: '810', RWF: '646', SAR: '682', SBD: '090',
  SCR: '690', SDD: '736', SEK: '752', SGD: '702', SHP: '654',
  SIT: '705', SKK: '703', SLL: '694', SOS: '706', SRG: '740',
  STD: '678', SVC: '222', SYP: '760', SZL: '748', THB: '764',
  TJS: '972', TMM: '795', TND: '788', TOP: '776', TPE: '626',
  TRL: '792', TRY: '949', TTD: '780', TWD: '901', TZS: '834',
  UAH: '980', UGX: '800', USD: '840', UYU: '858', UZS: '860',
  VEB: '862', VND: '704', VUV: '548', XAF: '950', XCD: '951',
  XOF: '952', XPF: '953', YER: '886', YUM: '891', ZAR: '710',
  ZMK: '894', ZWD: '716'
}

Constants inherited from Gateway

Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::RECURRING_DEPRECATION_MESSAGE, Gateway::STANDARD_ERROR_CODE

Instance Attribute Summary

Attributes inherited from Gateway

#options

Instance Method Summary collapse

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?, #supports_scrubbing?, #test?

Methods included from CreditCardFormatting

#expdate, #format, #strftime_yyyymm

Methods included from PostsData

included, #raw_ssl_request, #ssl_get, #ssl_post, #ssl_request

Constructor Details

#initialize(options = {}) ⇒ EpayGateway

login: merchant number password: referrer url (for authorize authentication)



54
55
56
57
# File 'lib/active_merchant/billing/gateways/epay.rb', line 54

def initialize(options = {})
  requires!(options, :login)
  super
end

Instance Method Details

#authorize(money, credit_card_or_reference, options = {}) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/active_merchant/billing/gateways/epay.rb', line 59

def authorize(money, credit_card_or_reference, options = {})
  post = {}

  add_amount(post, money, options)
  add_invoice(post, options)
  add_creditcard_or_reference(post, credit_card_or_reference)
  add_instant_capture(post, false)
  add_3ds_auth(post, options)

  commit(:authorize, post)
end

#capture(money, authorization, options = {}) ⇒ Object



83
84
85
86
87
88
89
90
# File 'lib/active_merchant/billing/gateways/epay.rb', line 83

def capture(money, authorization, options = {})
  post = {}

  add_reference(post, authorization)
  add_amount_without_currency(post, money)

  commit(:capture, post)
end

#credit(money, identification, options = {}) ⇒ Object



109
110
111
112
# File 'lib/active_merchant/billing/gateways/epay.rb', line 109

def credit(money, identification, options = {})
  ActiveMerchant.deprecated CREDIT_DEPRECATION_MESSAGE
  refund(money, identification, options)
end

#purchase(money, credit_card_or_reference, options = {}) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
# File 'lib/active_merchant/billing/gateways/epay.rb', line 71

def purchase(money, credit_card_or_reference, options = {})
  post = {}

  add_amount(post, money, options)
  add_creditcard_or_reference(post, credit_card_or_reference)
  add_invoice(post, options)
  add_instant_capture(post, true)
  add_3ds_auth(post, options)

  commit(:authorize, post)
end

#refund(money, identification, options = {}) ⇒ Object



100
101
102
103
104
105
106
107
# File 'lib/active_merchant/billing/gateways/epay.rb', line 100

def refund(money, identification, options = {})
  post = {}

  add_amount_without_currency(post, money)
  add_reference(post, identification)

  commit(:credit, post)
end

#scrub(transcript) ⇒ Object



118
119
120
121
122
123
# File 'lib/active_merchant/billing/gateways/epay.rb', line 118

def scrub(transcript)
  transcript.
    gsub(%r((Authorization: Basic )\w+), '\1[FILTERED]').
    gsub(%r(((?:\?|&)cardno=)\d*(&?)), '\1[FILTERED]\2').
    gsub(%r((&?cvc=)\d*(&?)), '\1[FILTERED]\2')
end

#supports_scrubbingObject



114
115
116
# File 'lib/active_merchant/billing/gateways/epay.rb', line 114

def supports_scrubbing
  true
end

#void(identification, options = {}) ⇒ Object



92
93
94
95
96
97
98
# File 'lib/active_merchant/billing/gateways/epay.rb', line 92

def void(identification, options = {})
  post = {}

  add_reference(post, identification)

  commit(:void, post)
end