Class: ActiveMerchant::Billing::CulqiGateway
- Defined in:
- lib/active_merchant/billing/gateways/culqi.rb
Overview
Important note:
Culqi merchant accounts are configured for either purchase or auth/capture modes. This is configured by Culqi when setting up a merchant account and largely depends on the transaction acquiring bank. Be sure to understand how your account was configured prior to using this gateway.
Constant Summary
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(amount, payment_method, options = {}) ⇒ Object
- #capture(amount, authorization, options = {}) ⇒ Object
-
#initialize(options = {}) ⇒ CulqiGateway
constructor
A new instance of CulqiGateway.
- #invalidate(authorization, options = {}) ⇒ Object
- #purchase(amount, payment_method, options = {}) ⇒ Object
- #refund(amount, authorization, options = {}) ⇒ Object
- #scrub(transcript) ⇒ Object
- #store(credit_card, options = {}) ⇒ Object
- #supports_scrubbing? ⇒ Boolean
- #verify(credit_card, options = {}) ⇒ Object
- #verify_credentials ⇒ 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
#expdate, #format, #strftime_yyyymm
Methods included from PostsData
included, #raw_ssl_request, #ssl_get, #ssl_post, #ssl_request
Constructor Details
#initialize(options = {}) ⇒ CulqiGateway
Returns a new instance of CulqiGateway.
23 24 25 26 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 23 def initialize( = {}) requires!(, :merchant_id, :terminal_id, :secret_key) super end |
Instance Method Details
#authorize(amount, payment_method, options = {}) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 32 def (amount, payment_method, = {}) if payment_method.is_a?(String) action = :tokenpay else action = :authorize end post = {} add_credentials(post) add_invoice(action, post, amount, ) add_payment_method(post, payment_method, action, ) add_customer_data(post, ) add_checksum(action, post) commit(action, post) end |
#capture(amount, authorization, options = {}) ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 48 def capture(amount, , = {}) action = :capture post = {} add_credentials(post) add_invoice(action, post, amount, ) add_reference(post, ) add_checksum(action, post) commit(action, post) end |
#invalidate(authorization, options = {}) ⇒ Object
106 107 108 109 110 111 112 113 114 115 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 106 def invalidate(, = {}) action = :invalidate post = {} post[:partnerid] = [:partner_id] if [:partner_id] add_credentials(post) post[:token] = add_checksum(action, post) commit(action, post) end |
#purchase(amount, payment_method, options = {}) ⇒ Object
28 29 30 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 28 def purchase(amount, payment_method, = {}) (amount, payment_method, ) end |
#refund(amount, authorization, options = {}) ⇒ Object
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 70 def refund(amount, , = {}) action = :refund post = {} add_credentials(post) add_invoice(action, post, amount, ) add_reference(post, ) add_checksum(action, post) commit(action, post) end |
#scrub(transcript) ⇒ Object
121 122 123 124 125 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 121 def scrub(transcript) transcript. gsub(%r((cardnumber=)\d+), '\1[FILTERED]'). gsub(%r((cvv=)\d+), '\1[FILTERED]') end |
#store(credit_card, options = {}) ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 93 def store(credit_card, = {}) action = :tokenize post = {} post[:partnerid] = [:partner_id] if [:partner_id] post[:cardholderid] = [:cardholder_id] if [:cardholder_id] add_credentials(post) add_payment_method(post, credit_card, action, ) add_customer_data(post, ) add_checksum(action, post) commit(action, post) end |
#supports_scrubbing? ⇒ Boolean
117 118 119 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 117 def supports_scrubbing? true end |
#verify(credit_card, options = {}) ⇒ Object
81 82 83 84 85 86 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 81 def verify(credit_card, = {}) MultiResponse.run(:use_first_response) do |r| r.process { (1000, credit_card, ) } r.process(:ignore_result) { void(r., ) } end end |
#verify_credentials ⇒ Object
88 89 90 91 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 88 def verify_credentials response = void('0', order_id: '0') response..include? 'Transaction not found' end |
#void(authorization, options = {}) ⇒ Object
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/active_merchant/billing/gateways/culqi.rb', line 59 def void(, = {}) action = :void post = {} add_credentials(post) add_invoice(action, post, nil, ) add_reference(post, ) add_checksum(action, post) commit(action, post) end |