module Moka::Payment
Public Class Methods
details() { |payment_details| ... }
click to toggle source
# File lib/moka/payment.rb, line 82 def self.details @@payment_details = self.new yield @@payment_details if block_given? return @@payment_details end
included(base)
click to toggle source
# File lib/moka/payment.rb, line 6 def self.included(base) base.class_eval do attr_accessor :dealer_code, :username, :password, :check_key, :card_holder_full_name, :card_number, :exp_month, :exp_year, :cvc_number, :card_token, :amount, :currency, :redirect_url, :redirect_type, :client_ip, :other_trx_code, :is_pre_auth, :is_pool_payment, :integrator_id, :software, :description, :sub_merchant_name, :installment_number, :buyer_full_name, :buyer_email, :buyer_gsm_number, :buyer_address, :virtual_pos_order_id def initialize(details = {}) @dealer_code = Moka.config.dealer_code @username = Moka.config.username @password = Moka.config.password @check_key = Moka.config.check_key @card_number = details[:card_number] @card_holder_full_name = details[:card_holder_full_name] @exp_month = details[:exp_month] @exp_year = details[:exp_year] @cvc_number = details[:cvc_number] @card_token = details[:card_token] @amount = details[:amount] @currency = details[:currency] || "USD" @redirect_url = details[:redirect_url] @redirect_type = details[:redirect_type] @installment_number = details[:installment_number] || 1 @client_ip = details[:client_ip] @other_trx_code = details[:other_trx_code] @is_pre_auth = details[:is_pre_auth] || 0 @is_pool_payment = details[:is_pool_payment] @integrator_id = details[:installment_number] @software = details[:software] @sub_merchant_name = details[:sub_merchant_name] @description = details[:description] @virtual_pos_order_id = details[:virtual_pos_order_id] @buyer_full_name = details[:buyer_full_name] @buyer_email = details[:buyer_email] @buyer_gsm_number = details[:buyer_gsm_number] @buyer_address = details[:buyer_address] end if base.to_s == "Moka::Payment::Capture" def capture @@response = Moka::Request.capture(@@payment_details) @@error = Moka::Error::RequestError.new @@error.message = @@response["ResultCode"] unless @@response["Data"] return @@response end else def pay raise Moka::Error::NullRedirectUrl if self.class.to_s == "Moka::Payment::Direct3D" && @@payment_details.redirect_url.nil? required_params = [ @dealer_code, @username, @password, @check_key, @card_holder_full_name, @card_token, @amount ] unless @card_token required_params.delete(@card_token) required_params.push(@card_number, @exp_month, @exp_year, @cvc_number) end if self.class == Moka::Payment::Direct3D required_params.push(@redirect_url) else @@payment_details.redirect_url = nil end raise Moka::Error::NullPaymentInformation if required_params.any? {|param| param.nil?} @@response = Moka::Request.direct_payment(@@payment_details) @@error = Moka::Error::RequestError.new @@error.message = @@response["ResultCode"] unless @@response["Data"] return @@response end end def self.details @@payment_details = self.new yield @@payment_details if block_given? return @@payment_details end def response @@response end def request_details @@payment_details end def error @@error end if base.to_s == "Moka::Payment::Direct3D" def success? return true if @@response["ResultCode"] == "Success" return false end def verify_payment_url return @@response["Data"] if @@response["Data"] return false end def self.paid_successfully?(params) unless params["isSuccessful"] == "False" return params end return false end else def success? if @@response["Data"] return true if @@response["Data"]["IsSuccessful"] end return false end end end end
new(details = {})
click to toggle source
# File lib/moka/payment.rb, line 16 def initialize(details = {}) @dealer_code = Moka.config.dealer_code @username = Moka.config.username @password = Moka.config.password @check_key = Moka.config.check_key @card_number = details[:card_number] @card_holder_full_name = details[:card_holder_full_name] @exp_month = details[:exp_month] @exp_year = details[:exp_year] @cvc_number = details[:cvc_number] @card_token = details[:card_token] @amount = details[:amount] @currency = details[:currency] || "USD" @redirect_url = details[:redirect_url] @redirect_type = details[:redirect_type] @installment_number = details[:installment_number] || 1 @client_ip = details[:client_ip] @other_trx_code = details[:other_trx_code] @is_pre_auth = details[:is_pre_auth] || 0 @is_pool_payment = details[:is_pool_payment] @integrator_id = details[:installment_number] @software = details[:software] @sub_merchant_name = details[:sub_merchant_name] @description = details[:description] @virtual_pos_order_id = details[:virtual_pos_order_id] @buyer_full_name = details[:buyer_full_name] @buyer_email = details[:buyer_email] @buyer_gsm_number = details[:buyer_gsm_number] @buyer_address = details[:buyer_address] end
paid_successfully?(params)
click to toggle source
# File lib/moka/payment.rb, line 111 def self.paid_successfully?(params) unless params["isSuccessful"] == "False" return params end return false end
Public Instance Methods
capture()
click to toggle source
# File lib/moka/payment.rb, line 48 def capture @@response = Moka::Request.capture(@@payment_details) @@error = Moka::Error::RequestError.new @@error.message = @@response["ResultCode"] unless @@response["Data"] return @@response end
error()
click to toggle source
# File lib/moka/payment.rb, line 96 def error @@error end
pay()
click to toggle source
# File lib/moka/payment.rb, line 55 def pay raise Moka::Error::NullRedirectUrl if self.class.to_s == "Moka::Payment::Direct3D" && @@payment_details.redirect_url.nil? required_params = [ @dealer_code, @username, @password, @check_key, @card_holder_full_name, @card_token, @amount ] unless @card_token required_params.delete(@card_token) required_params.push(@card_number, @exp_month, @exp_year, @cvc_number) end if self.class == Moka::Payment::Direct3D required_params.push(@redirect_url) else @@payment_details.redirect_url = nil end raise Moka::Error::NullPaymentInformation if required_params.any? {|param| param.nil?} @@response = Moka::Request.direct_payment(@@payment_details) @@error = Moka::Error::RequestError.new @@error.message = @@response["ResultCode"] unless @@response["Data"] return @@response end
request_details()
click to toggle source
# File lib/moka/payment.rb, line 92 def request_details @@payment_details end
response()
click to toggle source
# File lib/moka/payment.rb, line 88 def response @@response end
success?()
click to toggle source
# File lib/moka/payment.rb, line 101 def success? return true if @@response["ResultCode"] == "Success" return false end
verify_payment_url()
click to toggle source
# File lib/moka/payment.rb, line 106 def verify_payment_url return @@response["Data"] if @@response["Data"] return false end