module ZipMoney::WebHook

Constants

EVENT_AUTH_DECLINED
EVENT_AUTH_FAIL
EVENT_AUTH_REVIEW
EVENT_AUTH_SUCCESS
EVENT_CANCEL_FAIL
EVENT_CANCEL_SUCCESS
EVENT_CAPTURE_FAIL
EVENT_CAPTURE_SUCCESS
EVENT_CHARGE_FAIL
EVENT_CHARGE_SUCCESS
EVENT_CONFIG_UPDATE
EVENT_ORDER_CANCELLED
EVENT_REFUND_FAIL
EVENT_REFUND_SUCCESS
TYPE_NOTIFICATION
TYPE_SUBSCRIPTION_CONFIRMATION

Attributes

merchant_id[RW]
merchant_key[RW]

Public Class Methods

process(request,&block) click to toggle source

Process the webhook

@param [request] WebHook's request @param [block] Actions to be taken for respective notifications

# File lib/zipMoney/webhook.rb, line 27
def self.process(request,&block)
            raise WebHookRequestError, "Payload emtpy" if request.nil? 
            request = Util.json_parse(request)
            if request["Type"] == TYPE_SUBSCRIPTION_CONFIRMATION
                    subscribe(request["SubscribeURL"])
            elsif request["Type"] == TYPE_NOTIFICATION  
                    process_notifications(request, &block)
            end 
    end
process_notifications(request, &block) click to toggle source

Process the webhook notifications

@param [request] WebHook's request @param [block] Actions to be taken for respective notifications

# File lib/zipMoney/webhook.rb, line 41
def self.process_notifications(request, &block)
        raise ArgumentError, "Invalid params provided" if request["Message"].nil?
        message = Util.json_parse(request["Message"])
        Configuration.credentials_valid(message["response"]["merchant_id"], message["response"]["merchant_key"])
        raise ArgumentError, "Response empty" if message["response"].nil?
        
        if (block.arity > 0)
        block.call(message['type'], message["response"])
        end 
end
subscribe(url) click to toggle source

Subscribes for the webhook notifications by calling the subscription url

@param [request] WebHook's request @param [block] Actions to be taken for respective notifications

# File lib/zipMoney/webhook.rb, line 56
def self.subscribe(url)                      
        raise WebHookError, "Url emtpy" if url.nil? 
        
        begin
                response = RestClient.get(url)
        rescue
                raise WebHookError, "Unable to reach the subscription url #{url}" if response.nil?
        end 
response.code == 200 || response.code == 201
end