Initialization Options :login Your store number :pem The text of your linkpoint PEM file. Note
this is not the path to file, but its contents. If you are only using one PEM file on your site you can declare it globally and then you won't need to include this option
A valid store number is required. Unfortunately, with LinkPoint YOU CAN’T JUST USE ANY OLD STORE NUMBER. Also, you can’t just generate your own PEM file. You’ll need to use a special PEM file provided by LinkPoint.
Go to www.linkpoint.com/support/sup_teststore.asp to set up a test account and obtain your PEM file.
Declaring PEM file Globally ActiveMerchant::Billing::LinkpointGateway.pem_file = File.read( File.dirname(__FILE__) + ‘/../mycert.pem’ )
Valid Order Options :result =>
LIVE Production mode GOOD Approved response in test mode DECLINE Declined response in test mode DUPLICATE Duplicate response in test mode
:ponumber Order number
:transactionorigin => Source of the transaction
ECI Email or Internet MAIL Mail order MOTO Mail order/Telephone TELEPHONE Telephone RETAIL Face-to-face
:ordertype =>
SALE Real live sale PREAUTH Authorize only POSTAUTH Forced Ticket or Ticket Only transaction VOID CREDIT CALCSHIPPING For shipping charges calculations CALCTAX For sales tax calculations
Recurring Options :action =>
SUBMIT MODIFY CANCEL
:installments Identifies how many recurring payments to charge the customer :startdate Date to begin charging the recurring payments. Format: YYYYMMDD or “immediate” :periodicity =>
MONTHLY BIMONTHLY WEEKLY BIWEEKLY YEARLY DAILY
:threshold Tells how many times to retry the transaction (if it fails) before contacting the merchant. :comments Uh… comments
For reference:
www.linkpointcentral.com/lpc/docs/Help/APIHelp/lpintguide.htm
Entities = { :payment => [:subtotal, :tax, :vattax, :shipping, :chargetotal], :billing => [:name, :address1, :address2, :city, :state, :zip, :country, :email, :phone, :fax, :addrnum], :shipping => [:name, :address1, :address2, :city, :state, :zip, :country, :weight, :items, :carrier, :total], :creditcard => [:cardnumber, :cardexpmonth, :cardexpyear, :cvmvalue, :track], :telecheck => [:routing, :account, :checknumber, :bankname, :bankstate, :dl, :dlstate, :void, :accounttype, :ssn], :transactiondetails => [:transactionorigin, :oid, :ponumber, :taxexempt, :terminaltype, :ip, :reference_number, :recurring, :tdate], :periodic => [:action, :installments, :threshold, :startdate, :periodicity, :comments], :notes => [:comments, :referred] :items => [:item => [:price, :quantity, :description, :id, :options => [:option => [:name, :value]]]] }
LinkPoint’s Items entity is an optional entity that can be attached to orders. It is entered as :line_items to be consistent with the CyberSource implementation
The line_item hash goes in the options hash and should look like
:line_items => [ { :id => '123456', :description => 'Logo T-Shirt', :price => '12.00', :quantity => '1', :options => [ { :name => 'Color', :value => 'Red' }, { :name => 'Size', :value => 'XL' } ] }, { :id => '111', :description => 'keychain', :price => '3.00', :quantity => '1' } ]
This functionality is only supported by this particular gateway may be changed at any time
# File lib/active_merchant/billing/gateways/linkpoint.rb, line 141 def initialize(options = {}) requires!(options, :login) @options = { :result => 'LIVE', :pem => LinkpointGateway.pem_file }.update(options) raise ArgumentError, "You need to pass in your pem file using the :pem parameter or set it globally using ActiveMerchant::Billing::LinkpointGateway.pem_file = File.read( File.dirname(__FILE__) + '/../mycert.pem' ) or similar" if @options[:pem].blank? end
Post an authorization.
Captures the funds from an authorized transaction. Order_id must be a valid order id from a prior authorized transaction.
# File lib/active_merchant/billing/gateways/linkpoint.rb, line 214 def capture(money, authorization, options = {}) options.update( :order_id => authorization, :ordertype => "POSTAUTH" ) commit(money, nil, options) end
# File lib/active_merchant/billing/gateways/linkpoint.rb, line 244 def credit(money, identification, options = {}) deprecated CREDIT_DEPRECATION_MESSAGE refund(money, identification, options) end
Buy the thing
# File lib/active_merchant/billing/gateways/linkpoint.rb, line 187 def purchase(money, creditcard, options={}) requires!(options, :order_id) options.update( :ordertype => "SALE" ) commit(money, creditcard, options) end
Send a purchase request with periodic options Recurring Options :action =>
SUBMIT MODIFY CANCEL
:installments Identifies how many recurring payments to charge the customer :startdate Date to begin charging the recurring payments. Format: YYYYMMDD or “immediate” :periodicity =>
:monthly :bimonthly :weekly :biweekly :yearly :daily
:threshold Tells how many times to retry the transaction (if it fails) before contacting the merchant. :comments Uh… comments
# File lib/active_merchant/billing/gateways/linkpoint.rb, line 171 def recurring(money, creditcard, options={}) requires!(options, [:periodicity, :bimonthly, :monthly, :biweekly, :weekly, :yearly, :daily], :installments, :order_id ) options.update( :ordertype => "SALE", :action => options[:action] || "SUBMIT", :installments => options[:installments] || 12, :startdate => options[:startdate] || "immediate", :periodicity => options[:periodicity].to_s || "monthly", :comments => options[:comments] || nil, :threshold => options[:threshold] || 3 ) commit(money, creditcard, options) end
Refund an order
identification must be a valid order id previously submitted by SALE
# File lib/active_merchant/billing/gateways/linkpoint.rb, line 236 def refund(money, identification, options = {}) options.update( :ordertype => "CREDIT", :order_id => identification ) commit(money, nil, options) end
Generated with the Darkfish Rdoc Generator 2.