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