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