Module: WebpayRails::Base::ClassMethods
- Defined in:
- lib/webpay_rails/base.rb
Instance Method Summary collapse
- #acknowledge_transaction(token) ⇒ Object
- #init_transaction(amount, buy_order, session_id, return_url, final_url) ⇒ Object
- #transaction_result(token) ⇒ Object
- #webpay_rails(options) ⇒ Object
Instance Method Details
#acknowledge_transaction(token) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/webpay_rails/base.rb', line 59 def acknowledge_transaction(token) begin response = soap.acknowledge_transaction(token) rescue StandardError raise WebpayRails::FailedAcknowledgeTransaction end raise WebpayRails::InvalidAcknowledgeResponse unless response end |
#init_transaction(amount, buy_order, session_id, return_url, final_url) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/webpay_rails/base.rb', line 16 def init_transaction(amount, buy_order, session_id, return_url, final_url) begin response = soap.init_transaction(commerce_code, amount, buy_order, session_id, return_url, final_url) rescue StandardError raise WebpayRails::FailedInitTransaction end raise WebpayRails::InvalidCertificate unless WebpayRails::Verifier.verify(response, webpay_cert) document = Nokogiri::HTML(response.to_s) WebpayRails::Transaction.new({ token: document.at_xpath('//token').text.to_s, url: document.at_xpath('//url').text.to_s }) end |
#transaction_result(token) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/webpay_rails/base.rb', line 32 def transaction_result(token) begin response = soap.get_transaction_result(token) rescue StandardError raise WebpayRails::FailedGetResult end raise WebpayRails::InvalidResultResponse unless response acknowledge_transaction(token) document = Nokogiri::HTML(response.to_s) WebpayRails::TransactionResult.new({ accounting_date: document.at_xpath('//accountingdate').text.to_s, buy_order: document.at_xpath('//buyorder').text.to_s, card_number: document.at_xpath('//cardnumber').text.to_s, amount: document.at_xpath('//amount').text.to_s, commerce_code: document.at_xpath('//commercecode').text.to_s, authorization_code: document.at_xpath('//authorizationcode').text.to_s, payment_type_code: document.at_xpath('//paymenttypecode').text.to_s, response_code: document.at_xpath('//responsecode').text.to_s, transaction_date: document.at_xpath('//transactiondate').text.to_s, url_redirection: document.at_xpath('//urlredirection').text.to_s, vci: document.at_xpath('//vci').text.to_s }) end |
#webpay_rails(options) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/webpay_rails/base.rb', line 6 def webpay_rails() class_attribute :commerce_code, :webpay_cert, :environment, :soap, instance_accessor: false self.commerce_code = [:commerce_code] self.webpay_cert = OpenSSL::X509::Certificate.new([:webpay_cert]) self.environment = [:environment] self.soap = WebpayRails::Soap.new() end |