module Cmbpay::Sign
Constants
- CMBPAY_RSA_PUBLIC_KEY
Public Class Methods
generate(params, options={})
click to toggle source
# File lib/cmbpay/sign.rb, line 5 def self.generate(params, options={}) key = options.delete(:key) query = params.sort.map do |k, v| "#{k}=#{v}" end.compact.join('&') p query Digest::SHA256.hexdigest("#{query}&#{key || Cmbpay.key}") end
params_to_string(params)
click to toggle source
# File lib/cmbpay/sign.rb, line 35 def self.params_to_string(params) params.sort.map { |item| item.join('=') }.join('&') end
verify?(params, options = {})
click to toggle source
# File lib/cmbpay/sign.rb, line 24 def self.verify?(params, options = {}) params = Utils.stringify_keys(params) sign_type = params.delete('sign_type') sign = params.delete('sign') string = params_to_string(params['noticeData']) public_key = options['public_key'] || CMBPAY_RSA_PUBLIC_KEY RSA.verify?(public_key, string, sign) end