Sha256: 60200657bbe887f45ef07e351cc44e8df5d37910fbc0f8c42c9d5f0fde2f605f
Contents?: true
Size: 1.17 KB
Versions: 1
Compression:
Stored size: 1.17 KB
Contents
require "httparty" require "datatrans/json/transaction/response" class Datatrans::JSON::Transaction class Status # class to check a transaction status and get a transaction info: https://api-reference.datatrans.ch/#tag/v1transactions/operation/status attr_accessor :params, :datatrans def initialize(datatrans, params) @datatrans = datatrans @params = params end def get(url, options = {}) options = options .merge(datatrans.proxy) .merge(basic_auth: {username: datatrans.merchant_id, password: datatrans.password}) HTTParty.get(url, **options) end def process get(datatrans.url(:json_status_url, transaction_id: params[:transaction_id]), headers: {"Content-Type" => "application/json"}).parsed_response end end class StatusResponse < Response def successful? params["error"].blank? && ["settled", "transmitted"].include?(response_code) end def response_code params["status"] rescue nil end def reference_number params["refno"] rescue nil end def amount params["detail"]["settle"]["amount"] rescue nil end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
datatrans-5.2.0 | lib/datatrans/json/transaction/status.rb |