Sha256: 1f17be5fd1979e2e49e345c1abde23e161f4f2744583f23d4bc995e22be447a7
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
require "httparty" require "datatrans/json/transaction/response" class Datatrans::JSON::Transaction class MerchantAuthorize # class to authorize a transaction without user interaction https://api-reference.datatrans.ch/#tag/v1transactions/operation/authorize attr_accessor :params, :datatrans def initialize(datatrans, params) @datatrans = datatrans @params = params end def post(url, options = {}) options = options .merge(datatrans.proxy) .merge(basic_auth: {username: datatrans.merchant_id, password: datatrans.password}) HTTParty.post(url, **options) end def process post(datatrans.url(:authorize_transaction), headers: {"Content-Type" => "application/json"}, body: request_body.to_json).parsed_response end def request_body auto_settle = params[:auto_settle].nil? ? true : params[:auto_settle] { currency: params[:currency], refno: params[:refno], amount: params[:amount], card: params[:card], autoSettle: auto_settle } end end class MerchantAuthorizeResponse < Response def successful? params["error"].blank? && params["transactionId"].present? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
datatrans-5.2.0 | lib/datatrans/json/transaction/merchant_authorize.rb |