class Preauth

Public Instance Methods

capture(flwRef, amount=nil) click to toggle source

method to capture transaction

# File lib/rave_ruby/rave_objects/preauth.rb, line 49
def capture(flwRef, amount=nil)
    base_url = rave_object.base_url

    payload = {
        "flwRef" => flwRef,
        "SECKEY" => rave_object.secret_key.dup,
        "amount" => amount
    }

    payload = payload.to_json

    response = post_request("#{base_url}#{BASE_ENDPOINTS::CAPTURE_ENDPOINT}", payload)
    return handle_capture_response(response)
end
initiate_charge(data) click to toggle source

method to initiate preauth transaction

# File lib/rave_ruby/rave_objects/preauth.rb, line 7
def initiate_charge(data)

    base_url = rave_object.base_url
    secret_key = rave_object.secret_key.dup
    hashed_secret_key = get_hashed_key
    public_key = rave_object.public_key

    required_parameters = ["country", "amount", "currency", "email"]
    check_passed_parameters(required_parameters, data)


    # only update the payload with the transaction reference if it isn't already added to the payload
    if !data.key?("txRef")
        data.merge!({"txRef" => Util.transaction_reference_generator})
    end

    data.merge!({"PBFPubKey" => public_key, "charge_type" => "preauth"})

    # only update the payload with the transaction reference if it isn't already added to the payload
    if data.key?("token")
        data.merge!({"SECKEY" => secret_key})
        payload = data.to_json
        response = post_request("#{base_url}#{BASE_ENDPOINTS::PREAUTH_CHARGE_ENDPOINT}", payload) 
        return handle_charge_response(response)
    else
        encrypt_data = Util.encrypt(hashed_secret_key, data)

        payload = {
            "PBFPubKey" => public_key,
            "client" => encrypt_data,
            "alg" => "3DES-24"
        }

        payload = payload.to_json

        response = post_request("#{base_url}#{BASE_ENDPOINTS::CHARGE_ENDPOINT}", payload) 

        return handle_charge_response(response)
    end
end
refund(flwRef) click to toggle source

method to refund a transaction

# File lib/rave_ruby/rave_objects/preauth.rb, line 65
def refund(flwRef)
    base_url = rave_object.base_url

    payload = {
        "ref" => flwRef,
        "action" => "refund",
        "SECKEY" => rave_object.secret_key.dup,
    }

    payload = payload.to_json

    response = post_request("#{base_url}#{BASE_ENDPOINTS::REFUND_VOID_ENDPOINT}", payload)
    return handle_refund_void_response(response)
end
verify_preauth(txRef) click to toggle source

method to verify preauth transaction

# File lib/rave_ruby/rave_objects/preauth.rb, line 97
def verify_preauth(txRef)
    base_url = rave_object.base_url

    payload = {
        "txref" => txRef,
        "SECKEY" => rave_object.secret_key.dup,
    }

    payload = payload.to_json

    response = post_request("#{base_url}#{BASE_ENDPOINTS::VERIFY_ENDPOINT}", payload)
    return handle_verify_response(response)
end
void(flwRef) click to toggle source

method to void a transaction

# File lib/rave_ruby/rave_objects/preauth.rb, line 81
 def void(flwRef)
    base_url = rave_object.base_url

    payload = {
        "ref" => flwRef,
        "action" => "void",
        "SECKEY" => rave_object.secret_key.dup,
    }

    payload = payload.to_json

    response = post_request("#{base_url}#{BASE_ENDPOINTS::REFUND_VOID_ENDPOINT}", payload)
    return handle_refund_void_response(response)
end