class FraudlabsproRuby::Api::Order
Constants
- APPROVE
Order
statuses.- BANK_DEPOSIT
- BITCOIN
- CASH_ON_DELIVERY
- CREDIT_CARD
Payment methods.
- FLP_ID
ID types.
- GOOGLE_CHECKOUT
- MONEY_ORDER
- ORDER_ID
- OTHERS
- PAYPAL
- REJECT
- REJECT_BLACKLIST
- WIRE_TRANSFER
Public Class Methods
do_hash(value)
click to toggle source
Hashes a string to protect its real value.
# File lib/fraudlabspro_ruby/api/order.rb, line 156 def self.do_hash(value) hash = 'fraudlabspro_' + value.to_s for i in 0..65536 hash = Digest::SHA1.hexdigest('fraudlabspro_' + hash) end return hash end
feedback(params = {})
click to toggle source
Sends feedback back to FraudLabs Pro.
# File lib/fraudlabspro_ruby/api/order.rb, line 109 def self.feedback(params = {}) uri = URI.parse("https://api.fraudlabspro.com/v1/order/feedback") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Post.new(uri.request_uri) request.set_form_data({ 'key' => FraudlabsproRuby::Configuration.api_key, 'format' => params[:format] || 'xml', 'id' => params[:transaction_id], 'action' => params[:status] || '', 'note' => params[:note] || '' }) response = http.request(request) if response == nil return false else return response end end
getTransaction(params = {})
click to toggle source
Gets transaction result.
# File lib/fraudlabspro_ruby/api/order.rb, line 132 def self.getTransaction(params = {}) if params[:format] == nil params[:format] = 'xml' end if params[:id_type] == nil params[:id_type] = '' end uri = URI.parse("https://api.fraudlabspro.com/v1/order/result?key=" + FraudlabsproRuby::Configuration.api_key + "&format=" + params[:format] + "&id=" + params[:transaction_id] + "&id_type=" + params[:id_type]) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) if response == nil return false else return response end end
validate(params = {})
click to toggle source
Validate order for possible fraud.
# File lib/fraudlabspro_ruby/api/order.rb, line 33 def self.validate(params = {}) if params[:email] != nil email_domain = params[:email][(params[:email].index('@') + 1)..-1] end if params[:phone] != nil params[:phone] = params[:phone].scan(/\d/).join('') end if params[:amount] != nil params[:amount] = '%.2f' % params[:amount] end if params[:card_number] != nil params[:card_number] = params[:card_number][0..5] end uri = URI.parse("https://api.fraudlabspro.com/v1/order/screen") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Post.new(uri.request_uri) request.set_form_data({ 'key' => FraudlabsproRuby::Configuration.api_key, 'format' => params[:format] || 'json', 'source' => 'FraudLabsPro Ruby SDK', 'source_version' => FraudlabsproRuby::VERSION, 'flp_checksum' => params[:flp_checksum] || '', # Billing information. 'ip' => params[:ip], 'first_name' => params[:first_name] || '', 'last_name' => params[:last_name] || '', 'username_hash' => do_hash(params[:username]) || '', 'password_hash' => do_hash(params[:password]) || '', 'email' => params[:email] || '', 'email_domain' => email_domain || '', 'user_phone' => params[:phone] || '', 'bill_addr' => params[:bill_addr] || '', 'bill_city' => params[:bill_city] || '', 'bill_state' => params[:bill_state] || '', 'bill_zip_code' => params[:bill_zip_code] || '', 'bill_country' => params[:bill_country] || '', # Order information. 'user_order_id' => params[:user_order_id] || '', 'user_order_memo' => params[:user_order_memo] || '', 'amount' => params[:amount] || 0, 'quantity' => params[:quantity] || 1, 'currency' => params[:currency] || 'USD', 'department' => params[:department] || '', 'payment_mode' => params[:payment_mode] || '', # Credit card information. 'bin_no' => params[:card_number] || '', 'card_hash' => do_hash(params[:card_number]) || '', 'avs_result' => params[:card_avs] || '', 'cvv_result' => params[:card_cvv] || '', # Shipping information. 'ship_addr' => params[:ship_addr] || '', 'ship_city' => params[:ship_city] || '', 'ship_state' => params[:ship_state] || '', 'ship_zip_code' => params[:ship_zip_code] || '', 'ship_country' => params[:ship_country] || '' }) response = http.request(request) if response == nil return false else return response end end