class Midpay::Strategies::Kuaiqian

Constants

GATEWAY
REQUEST_PARAM_KEYS
RETURN_PARAM_KEYS

Public Instance Methods

callback_phase(pi) click to toggle source
# File lib/midpay/strategies/kuaiqian.rb, line 32
def callback_phase pi
  raise Midpay::Errors::InvalidSignature.new unless request_params[:sign] == request_params.sign(:signType){|h| kuaiqian_sign_str(RETURN_PARAM_KEYS,h) }
  pi.raw_data = request_params.symbolize_keys
  pi.success = (pi.raw_data['payResult'] == "10")
end
kuaiqian_request_params() click to toggle source
# File lib/midpay/strategies/kuaiqian.rb, line 38
def kuaiqian_request_params
  params = request_data
  params.merge_if!(arguments.merge(merchantAcctId: options.app_key, pageUrl: callback_url))
  params.sign!(:signMsg, kuaiqian_sign_type(params[:signType])) do |hash|
    kuaiqian_sign_str(REQUEST_PARAM_KEYS, hash)
  end
end
kuaiqian_request_url() click to toggle source
# File lib/midpay/strategies/kuaiqian.rb, line 46
def kuaiqian_request_url
  GATEWAY + '?' + kuaiqian_request_params.to_query
end
kuaiqian_sign_str(keys, hash) click to toggle source
# File lib/midpay/strategies/kuaiqian.rb, line 50
def kuaiqian_sign_str keys, hash
  keys.collect{|k| hash[k].to_s.empty? ? nil : [k, hash[k]]}.compact.push(["key",options.app_secret]).collect{|i| i.join("=") }.join("&")
end
kuaiqian_sign_type(sign_type) click to toggle source
# File lib/midpay/strategies/kuaiqian.rb, line 54
def kuaiqian_sign_type sign_type
  {
    "1" => "MD5"
  }[sign_type.to_s]
end
request_phase(response) click to toggle source
# File lib/midpay/strategies/kuaiqian.rb, line 28
def request_phase response
  response.redirect kuaiqian_request_url
end