From 6b58d14fc163cb81be12f4f9f1b4f9d72fdb460c Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Fri, 14 Sep 2012 20:01:44 -0700 Subject: [PATCH] URL-encode values (as well as keys) in GET params --- lib/stripe.rb | 2 +- lib/stripe/util.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/stripe.rb b/lib/stripe.rb index fb4a6a6c..edc490c9 100644 --- a/lib/stripe.rb +++ b/lib/stripe.rb @@ -116,7 +116,7 @@ module Stripe when :get, :head, :delete # Make params into GET parameters if params && params.count - query_string = Util.flatten_params(params).collect{|p| "#{p[0]}=#{p[1]}"}.join('&') + query_string = Util.flatten_params(params).collect{|key, value| "#{key}=#{Util.url_encode(value)}"}.join('&') url += "?#{query_string}" end payload = nil diff --git a/lib/stripe/util.rb b/lib/stripe/util.rb index 3623556f..6cf96ed0 100644 --- a/lib/stripe/util.rb +++ b/lib/stripe/util.rb @@ -67,14 +67,14 @@ module Stripe end end - def self.encode_key(key) + def self.url_encode(key) URI.escape(key.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) end def self.flatten_params(params, parent_key=nil) result = [] params.each do |key, value| - calculated_key = parent_key ? "#{parent_key}[#{encode_key(key)}]" : encode_key(key) + calculated_key = parent_key ? "#{parent_key}[#{url_encode(key)}]" : url_encode(key) if value.is_a?(Hash) result += flatten_params(value, calculated_key) elsif value.is_a?(Array)