Sha256: 355b706bb7091ae9d5cda4170c16f3934f2201389d326e5c7020514c414b96d5

Contents?: true

Size: 933 Bytes

Versions: 1

Compression:

Stored size: 933 Bytes

Contents

require 'base64'
require 'digest/sha1'
require 'json'

module ActiveMerchant #:nodoc:
  module Billing #:nodoc:
    class Liqpay < Gateway

      def initialize public_key, private_key
        @public_key = public_key
        @private_key = private_key
      end

      def cnb_form_fields options
        params = {version: 3, public_key: @public_key}.merge options
        data = encode params
        {
          data: data,
          signature: encode_signature(data)
        }
      end

      def encode data
        encode64 encode_json data
      end

      def encode64 param
        Base64.strict_encode64 param
      end

      def encode_json params
        JSON.generate params
      end

      def encode_signature param
        encode64 Digest::SHA1.digest @private_key + param + @private_key
      end

      def check_signature data, signature
        signature == encode_signature(data)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spree_liqpay-0.1.0 lib/active_merchant/billing/liqpay.rb