diff --git a/Gemfile b/Gemfile index f70f08194..d90ec0dc3 100644 --- a/Gemfile +++ b/Gemfile @@ -45,7 +45,7 @@ gem 'capistrano-ext' gem 'radix62', '~> 1.0.1' gem 'streamio-ffmpeg' gem 'rubyzip', :require => "zip" -gem 'stripe', :git => "https://github.com/stripe/stripe-ruby" +gem 'coinbase' # needed for looser jpeg header compat gem 'ruby-imagespec', :require => "image_spec", :git => "https://github.com/r888888888/ruby-imagespec.git", :branch => "exif-fixes" diff --git a/Gemfile.lock b/Gemfile.lock index 7581f49dc..8e901e66c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,15 +14,6 @@ GIT specs: ruby-imagespec (0.3.1) -GIT - remote: https://github.com/stripe/stripe-ruby - revision: da216fd53b7a5386c136e93bdfe5efaff20682b7 - specs: - stripe (1.16.0) - json (~> 1.8.1) - mime-types (>= 1.25, < 3.0) - rest-client (~> 1.4) - GEM remote: https://rubygems.org/ specs: @@ -78,6 +69,13 @@ GEM coffee-script-source execjs coffee-script-source (1.7.0) + coinbase (2.1.1) + hashie (>= 1.2.0) + httparty (>= 0.8.3) + monetize (~> 0.3.0) + money (~> 6.0) + multi_json (>= 1.3.4) + oauth2 (~> 1.0) columnize (0.8.9) crack (0.4.2) safe_yaml (~> 1.0.0) @@ -102,13 +100,20 @@ GEM execjs (2.0.2) factory_girl (4.4.0) activesupport (>= 3.0.0) + faraday (0.9.0) + multipart-post (>= 1.2, < 3) ffaker (1.24.0) + hashie (3.3.1) highline (1.6.21) hike (1.2.3) http-cookie (1.0.2) domain_name (~> 0.5) + httparty (0.13.3) + json (~> 1.8) + multi_xml (>= 0.5.2) i18n (0.6.11) json (1.8.1) + jwt (1.2.0) kgio (2.9.2) libv8 (3.16.14.3) mail (2.5.4) @@ -130,7 +135,13 @@ GEM minitest (5.4.0) mocha (1.0.0) metaclass (~> 0.0.1) + monetize (0.3.0) + money (~> 6.1.0.beta1) + money (6.1.1) + i18n (~> 0.6.4) multi_json (1.10.1) + multi_xml (0.5.5) + multipart-post (2.0.0) net-http-digest_auth (1.4) net-http-persistent (2.9.4) net-scp (1.2.0) @@ -140,11 +151,16 @@ GEM net-ssh (2.8.0) net-ssh-gateway (1.2.0) net-ssh (>= 2.6.5) - netrc (0.8.0) newrelic_rpm (3.9.6.257) nokogiri (1.6.1) mini_portile (~> 0.5.0) ntlm-http (0.1.1) + oauth2 (1.0.0) + faraday (>= 0.8, < 0.10) + jwt (~> 1.0) + multi_json (~> 1.3) + multi_xml (~> 0.5) + rack (~> 1.2) pg (0.17.1) polyglot (0.3.5) protected_attributes (1.0.7) @@ -178,9 +194,6 @@ GEM raindrops (0.13.0) rake (10.3.2) ref (1.0.5) - rest-client (1.7.2) - mime-types (>= 1.16, < 3.0) - netrc (~> 0.7) rmagick (2.13.3) ruby-prof (0.14.2) rubyzip (1.1.6) @@ -265,6 +278,7 @@ DEPENDENCIES capistrano-ext capistrano-unicorn coffee-rails + coinbase daemons dalli delayed_job @@ -297,7 +311,6 @@ DEPENDENCIES sprockets-rails statistics2 streamio-ffmpeg - stripe! term-ansicolor therubyracer timecop diff --git a/app/controllers/user_upgrades_controller.rb b/app/controllers/user_upgrades_controller.rb index 52db53a94..0903889bb 100644 --- a/app/controllers/user_upgrades_controller.rb +++ b/app/controllers/user_upgrades_controller.rb @@ -1,41 +1,21 @@ class UserUpgradesController < ApplicationController - before_filter :member_only + before_filter :member_only, :only => [:new, :show] + helper_method :encrypt_custom, :coinbase + force_ssl :if => :ssl_enabled? def create - if params[:desc] == "Upgrade to Gold" - level = User::Levels::GOLD - cost = 2000 + if params[:order][:status] == "completed" + user_id, level = decrypt_custom + user = User.find(user_id) - elsif params[:desc] == "Upgrade to Platinum" - level = User::Levels::PLATINUM - cost = 4000 + if user.level < User::Levels::PLATINUM && level >= User::Levels::GOLD && level <= User::Levels::PLATINUM + user.promote_to!(level, :skip_feedback => true) + end - elsif params[:desc] == "Upgrade Gold to Platinum" && CurrentUser.user.level == User::Levels::GOLD - level = User::Levels::PLATINUM - cost = 2000 - - else - render :text => "invalid desc", :status => 422 - return - end - - @user = CurrentUser.user - stripe_token = params[:stripeToken] - - begin - charge = Stripe::Charge.create( - :amount => cost, - :currency => "usd", - :card => params[:stripeToken], - :description => params[:desc] - ) - @user.promote_to!(level, :skip_feedback => true) - UserMailer.upgrade(@user, params[:email]).deliver flash[:success] = true - rescue Stripe::CardError => e - flash[:error] = e.message + else + flash[:error] = true end - redirect_to user_upgrade_path end @@ -47,4 +27,26 @@ class UserUpgradesController < ApplicationController def show end + + def encrypt_custom(level) + crypt.encrypt_and_sign("#{CurrentUser.user.id},#{level}") + end + + def coinbase + @coinbase_api ||= Coinbase::Client.new(Danbooru.config.coinbase_api_key, Danbooru.config.coinbase_api_secret) + end + + private + + def decrypt_custom + crypt.decrypt_and_verify(params[:order][:custom]).split(/,/).map(&:to_i) + end + + def crypt + ActiveSupport::MessageEncryptor.new(Danbooru.config.coinbase_secret) + end + + def ssl_enabled? + !Rails.env.development? && !Rails.env.test? + end end diff --git a/app/views/user_upgrades/_coinbase_payment.html.erb b/app/views/user_upgrades/_coinbase_payment.html.erb new file mode 100644 index 000000000..0a3c0e0ea --- /dev/null +++ b/app/views/user_upgrades/_coinbase_payment.html.erb @@ -0,0 +1,8 @@ +

You can pay with Bitcoin. You will pay either $20 USD or $40 USD equivalent in Bitcoin. Danbooru uses Coinbase as a payment intermediary so none of your personal information will be stored on the site.

+ +<% if CurrentUser.user.level < User::Levels::GOLD %> + <%= raw coinbase.create_button("Upgrade to Gold", 20.to_money("USD"), "Upgrade your Basic Account to a Gold Account", encrypt_custom(User::Levels::GOLD), :button => {:style => "custom_small", :text => "Upgrade to Gold", :callback_url => user_upgrade_path(:only_path => false, :host => Danbooru.config.hostname, :protocol => "https")}).embed_html %> + <%= raw coinbase.create_button("Upgrade to Platinum", 40.to_money("USD"), "Upgrade your Basic Account to a Platinum Account", encrypt_custom(User::Levels::PLATINUM), :button => {:style => "custom_small", :text => "Upgrade to Platinum", :callback_url => user_upgrade_path(:only_path => false, :host => Danbooru.config.hostname, :protocol => "https")}).embed_html %> +<% elsif CurrentUser.level < User::Levels::PLATINUM %> + <%= raw coinbase.create_button("Upgrade to Platinum", 20.to_money("USD"), "Upgrade your Gold Account to a Platinum Account", encrypt_custom(User::Levels::PLATINUM), :button => {:style => "custom_small", :text => "Upgrade to Platinum", :callback_url => user_upgrade_path(:only_path => false, :host => Danbooru.config.hostname, :protocol => "https")}).embed_html %> +<% end %> diff --git a/app/views/user_upgrades/_stripe_payment.html.erb b/app/views/user_upgrades/_stripe_payment.html.erb deleted file mode 100644 index a26c8ae68..000000000 --- a/app/views/user_upgrades/_stripe_payment.html.erb +++ /dev/null @@ -1,8 +0,0 @@ -

Upgrading from Gold to Platinum will only cost $20. If you have any further questions or concerns, feel free to contact me at <%= mail_to Danbooru.config.contact_email, nil, :encode => :javascript %>.

- -<% if CurrentUser.user.level < User::Levels::GOLD %> - <%= stripe_button("Upgrade to Gold", 2000) %> - <%= stripe_button("Upgrade to Platinum", 4000) %> -<% elsif CurrentUser.user.level < User::Levels::PLATINUM %> - <%= stripe_button("Upgrade Gold to Platinum", 2000) %> -<% end %> diff --git a/app/views/user_upgrades/_unavailable_payment.html.erb b/app/views/user_upgrades/_unavailable_payment.html.erb deleted file mode 100644 index 404cc5672..000000000 --- a/app/views/user_upgrades/_unavailable_payment.html.erb +++ /dev/null @@ -1,4 +0,0 @@ - -

Account upgrades are presently not available.

\ No newline at end of file diff --git a/app/views/user_upgrades/new.html.erb b/app/views/user_upgrades/new.html.erb index bc07910bf..b0187e501 100644 --- a/app/views/user_upgrades/new.html.erb +++ b/app/views/user_upgrades/new.html.erb @@ -83,10 +83,8 @@ - <% if CurrentUser.safe_mode? %> - <%= render "stripe_payment" %> - <% else %> - <%= render "unavailable_payment" %> + <% if Danbooru.config.coinbase_api_key %> + <%= render "coinbase_payment" %> <% end %> diff --git a/app/views/user_upgrades/show.html.erb b/app/views/user_upgrades/show.html.erb index 443c54920..9c691f7f7 100644 --- a/app/views/user_upgrades/show.html.erb +++ b/app/views/user_upgrades/show.html.erb @@ -1,8 +1,6 @@
- <% if flash[:disable] %> -

You can upgrade your account at <%= link_to "Safebooru", new_user_upgrade_path(:protocol => "https", :host => "safebooru.donmai.us", :only_path => false) %>.

- <% elsif flash[:success] %> + <% if flash[:success] %>

Congradulations!

You are now a <%= CurrentUser.user.level_string %> level account. Thanks for supporting the site!

diff --git a/config/danbooru_default_config.rb b/config/danbooru_default_config.rb index 6146d35bb..b2276380d 100644 --- a/config/danbooru_default_config.rb +++ b/config/danbooru_default_config.rb @@ -327,12 +327,13 @@ module Danbooru "/var/www/danbooru2/shared" end - def stripe_secret_key - "sk_test_kHviyCxbt9kBxeu46TeefJQH" + def coinbase_secret end - def stripe_publishable_key - "pk_test_5lKN65jYpUw8EActq8RMkQxH" + def coinbase_api_key + end + + def coinbase_api_secret end end end diff --git a/config/initializers/stripe.rb b/config/initializers/stripe.rb deleted file mode 100644 index 43495044b..000000000 --- a/config/initializers/stripe.rb +++ /dev/null @@ -1 +0,0 @@ -Stripe.api_key = Danbooru.config.stripe_secret_key diff --git a/test/fixtures/vcr_cassettes/stripe-basic-to-gold.yml b/test/fixtures/vcr_cassettes/stripe-basic-to-gold.yml deleted file mode 100644 index 1fa1c7d7f..000000000 --- a/test/fixtures/vcr_cassettes/stripe-basic-to-gold.yml +++ /dev/null @@ -1,169 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://api.stripe.com/v1/tokens - body: - encoding: US-ASCII - string: card[number]=4242424242424242&card[exp_month]=1&card[exp_year]=2015&card[cvc]=123 - headers: - Accept: - - ! '*/*; q=0.5, application/xml' - Accept-Encoding: - - gzip, deflate - User-Agent: - - Stripe/v1 RubyBindings/1.16.0 - Authorization: - - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH - Content-Type: - - application/x-www-form-urlencoded - X-Stripe-Client-User-Agent: - - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin - ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun - Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' - Content-Length: - - '81' - response: - status: - code: 200 - message: OK - headers: - Server: - - nginx - Date: - - Fri, 07 Nov 2014 01:42:31 GMT - Content-Type: - - application/json;charset=utf-8 - Content-Length: - - '623' - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Allow-Methods: - - GET, POST, HEAD, OPTIONS, DELETE - Access-Control-Max-Age: - - '300' - Cache-Control: - - no-cache, no-store - Request-Id: - - ea64b1f2-9b94-4b6f-bb1c-c6e3784007b3 - Stripe-Version: - - '2014-10-07' - Strict-Transport-Security: - - max-age=31556926; includeSubDomains - body: - encoding: US-ASCII - string: ! "{\n \"id\": \"tok_14w1lj2Od3yiQVdJdZtBSbXI\",\n \"livemode\": false,\n - \ \"created\": 1415324551,\n \"used\": false,\n \"object\": \"token\",\n - \ \"type\": \"card\",\n \"card\": {\n \"id\": \"card_14w1lj2Od3yiQVdJ1fiG5eGJ\",\n - \ \"object\": \"card\",\n \"last4\": \"4242\",\n \"brand\": \"Visa\",\n - \ \"funding\": \"credit\",\n \"exp_month\": 1,\n \"exp_year\": 2015,\n - \ \"fingerprint\": \"xrSmurPsZCJllxXR\",\n \"country\": \"US\",\n \"name\": - null,\n \"address_line1\": null,\n \"address_line2\": null,\n \"address_city\": - null,\n \"address_state\": null,\n \"address_zip\": null,\n \"address_country\": - null,\n \"dynamic_last4\": null,\n \"customer\": null\n }\n}\n" - http_version: - recorded_at: Fri, 07 Nov 2014 01:42:31 GMT -- request: - method: post - uri: https://api.stripe.com/v1/charges - body: - encoding: US-ASCII - string: amount=2000¤cy=usd&card=tok_14w1lj2Od3yiQVdJdZtBSbXI&description=Upgrade%20to%20Gold - headers: - Accept: - - ! '*/*; q=0.5, application/xml' - Accept-Encoding: - - gzip, deflate - User-Agent: - - Stripe/v1 RubyBindings/1.16.0 - Authorization: - - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH - Content-Type: - - application/x-www-form-urlencoded - X-Stripe-Client-User-Agent: - - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin - ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun - Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' - Content-Length: - - '90' - response: - status: - code: 200 - message: OK - headers: - Server: - - nginx - Date: - - Fri, 07 Nov 2014 01:42:32 GMT - Content-Type: - - application/json;charset=utf-8 - Content-Length: - - '1362' - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Allow-Methods: - - GET, POST, HEAD, OPTIONS, DELETE - Access-Control-Max-Age: - - '300' - Cache-Control: - - no-cache, no-store - Request-Id: - - dad96b4a-bcc7-4537-9ddb-dd3b6093a0d2 - Stripe-Version: - - '2014-10-07' - Strict-Transport-Security: - - max-age=31556926; includeSubDomains - body: - encoding: US-ASCII - string: ! "{\n \"id\": \"ch_14w1lk2Od3yiQVdJuaBrKoSb\",\n \"object\": \"charge\",\n - \ \"created\": 1415324552,\n \"livemode\": false,\n \"paid\": true,\n \"amount\": - 2000,\n \"currency\": \"usd\",\n \"refunded\": false,\n \"card\": {\n \"id\": - \"card_14w1lj2Od3yiQVdJ1fiG5eGJ\",\n \"object\": \"card\",\n \"last4\": - \"4242\",\n \"brand\": \"Visa\",\n \"funding\": \"credit\",\n \"exp_month\": - 1,\n \"exp_year\": 2015,\n \"fingerprint\": \"xrSmurPsZCJllxXR\",\n - \ \"country\": \"US\",\n \"name\": null,\n \"address_line1\": null,\n - \ \"address_line2\": null,\n \"address_city\": null,\n \"address_state\": - null,\n \"address_zip\": null,\n \"address_country\": null,\n \"cvc_check\": - \"pass\",\n \"address_line1_check\": null,\n \"address_zip_check\": - null,\n \"dynamic_last4\": null,\n \"customer\": null\n },\n \"captured\": - true,\n \"refunds\": {\n \"object\": \"list\",\n \"total_count\": 0,\n - \ \"has_more\": false,\n \"url\": \"/v1/charges/ch_14w1lk2Od3yiQVdJuaBrKoSb/refunds\",\n - \ \"data\": []\n },\n \"balance_transaction\": \"txn_14w1lk2Od3yiQVdJ4tGMRyec\",\n - \ \"failure_message\": null,\n \"failure_code\": null,\n \"amount_refunded\": - 0,\n \"customer\": null,\n \"invoice\": null,\n \"description\": \"Upgrade - to Gold\",\n \"dispute\": null,\n \"metadata\": {},\n \"statement_description\": - null,\n \"fraud_details\": {\n \"stripe_report\": null,\n \"user_report\": - null\n },\n \"receipt_email\": null,\n \"receipt_number\": null,\n \"shipping\": - null\n}\n" - http_version: - recorded_at: Fri, 07 Nov 2014 01:42:32 GMT -- request: - method: post - uri: https://collector.newrelic.com/agent_listener/14//get_redirect_host?marshal_format=json - body: - encoding: UTF-8 - string: ! '[]' - headers: - Content-Encoding: - - identity - Host: - - collector.newrelic.com - Accept: - - ! '*/*' - User-Agent: - - NewRelic-RubyAgent/3.9.6.257 (ruby 1.9.3 x86_64-darwin13.1.0) zlib/1.2.5 - Content-Type: - - application/octet-stream - response: - status: - code: 200 - message: OK - headers: - Content-Length: - - '133' - body: - encoding: US-ASCII - string: ! '{"exception":{"message":"Invalid license key, please contact support@newrelic.com","error_type":"NewRelic::Agent::LicenseException"}}' - http_version: - recorded_at: Fri, 07 Nov 2014 01:42:32 GMT -recorded_with: VCR 2.9.0 diff --git a/test/fixtures/vcr_cassettes/stripe-basic-to-plat.yml b/test/fixtures/vcr_cassettes/stripe-basic-to-plat.yml deleted file mode 100644 index 0f3787329..000000000 --- a/test/fixtures/vcr_cassettes/stripe-basic-to-plat.yml +++ /dev/null @@ -1,140 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://api.stripe.com/v1/tokens - body: - encoding: US-ASCII - string: card[number]=4242424242424242&card[exp_month]=1&card[exp_year]=2015&card[cvc]=123 - headers: - Accept: - - ! '*/*; q=0.5, application/xml' - Accept-Encoding: - - gzip, deflate - User-Agent: - - Stripe/v1 RubyBindings/1.16.0 - Authorization: - - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH - Content-Type: - - application/x-www-form-urlencoded - X-Stripe-Client-User-Agent: - - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin - ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun - Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' - Content-Length: - - '81' - response: - status: - code: 200 - message: OK - headers: - Server: - - nginx - Date: - - Fri, 07 Nov 2014 01:42:32 GMT - Content-Type: - - application/json;charset=utf-8 - Content-Length: - - '623' - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Allow-Methods: - - GET, POST, HEAD, OPTIONS, DELETE - Access-Control-Max-Age: - - '300' - Cache-Control: - - no-cache, no-store - Request-Id: - - 1110fe22-457d-495f-9a80-1d5d595cc99c - Stripe-Version: - - '2014-10-07' - Strict-Transport-Security: - - max-age=31556926; includeSubDomains - body: - encoding: US-ASCII - string: ! "{\n \"id\": \"tok_14w1lk2Od3yiQVdJJ3XzlTSH\",\n \"livemode\": false,\n - \ \"created\": 1415324552,\n \"used\": false,\n \"object\": \"token\",\n - \ \"type\": \"card\",\n \"card\": {\n \"id\": \"card_14w1lk2Od3yiQVdJ8ddU76Aq\",\n - \ \"object\": \"card\",\n \"last4\": \"4242\",\n \"brand\": \"Visa\",\n - \ \"funding\": \"credit\",\n \"exp_month\": 1,\n \"exp_year\": 2015,\n - \ \"fingerprint\": \"xrSmurPsZCJllxXR\",\n \"country\": \"US\",\n \"name\": - null,\n \"address_line1\": null,\n \"address_line2\": null,\n \"address_city\": - null,\n \"address_state\": null,\n \"address_zip\": null,\n \"address_country\": - null,\n \"dynamic_last4\": null,\n \"customer\": null\n }\n}\n" - http_version: - recorded_at: Fri, 07 Nov 2014 01:42:32 GMT -- request: - method: post - uri: https://api.stripe.com/v1/charges - body: - encoding: US-ASCII - string: amount=4000¤cy=usd&card=tok_14w1lk2Od3yiQVdJJ3XzlTSH&description=Upgrade%20to%20Platinum - headers: - Accept: - - ! '*/*; q=0.5, application/xml' - Accept-Encoding: - - gzip, deflate - User-Agent: - - Stripe/v1 RubyBindings/1.16.0 - Authorization: - - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH - Content-Type: - - application/x-www-form-urlencoded - X-Stripe-Client-User-Agent: - - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin - ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun - Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' - Content-Length: - - '94' - response: - status: - code: 200 - message: OK - headers: - Server: - - nginx - Date: - - Fri, 07 Nov 2014 01:42:32 GMT - Content-Type: - - application/json;charset=utf-8 - Content-Length: - - '1366' - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Allow-Methods: - - GET, POST, HEAD, OPTIONS, DELETE - Access-Control-Max-Age: - - '300' - Cache-Control: - - no-cache, no-store - Request-Id: - - fcf2b1e8-ce3c-4f1d-8742-a422cc0a1d3a - Stripe-Version: - - '2014-10-07' - Strict-Transport-Security: - - max-age=31556926; includeSubDomains - body: - encoding: US-ASCII - string: ! "{\n \"id\": \"ch_14w1lk2Od3yiQVdJAQwoEXgF\",\n \"object\": \"charge\",\n - \ \"created\": 1415324552,\n \"livemode\": false,\n \"paid\": true,\n \"amount\": - 4000,\n \"currency\": \"usd\",\n \"refunded\": false,\n \"card\": {\n \"id\": - \"card_14w1lk2Od3yiQVdJ8ddU76Aq\",\n \"object\": \"card\",\n \"last4\": - \"4242\",\n \"brand\": \"Visa\",\n \"funding\": \"credit\",\n \"exp_month\": - 1,\n \"exp_year\": 2015,\n \"fingerprint\": \"xrSmurPsZCJllxXR\",\n - \ \"country\": \"US\",\n \"name\": null,\n \"address_line1\": null,\n - \ \"address_line2\": null,\n \"address_city\": null,\n \"address_state\": - null,\n \"address_zip\": null,\n \"address_country\": null,\n \"cvc_check\": - \"pass\",\n \"address_line1_check\": null,\n \"address_zip_check\": - null,\n \"dynamic_last4\": null,\n \"customer\": null\n },\n \"captured\": - true,\n \"refunds\": {\n \"object\": \"list\",\n \"total_count\": 0,\n - \ \"has_more\": false,\n \"url\": \"/v1/charges/ch_14w1lk2Od3yiQVdJAQwoEXgF/refunds\",\n - \ \"data\": []\n },\n \"balance_transaction\": \"txn_14w1lk2Od3yiQVdJjDRDaKkC\",\n - \ \"failure_message\": null,\n \"failure_code\": null,\n \"amount_refunded\": - 0,\n \"customer\": null,\n \"invoice\": null,\n \"description\": \"Upgrade - to Platinum\",\n \"dispute\": null,\n \"metadata\": {},\n \"statement_description\": - null,\n \"fraud_details\": {\n \"stripe_report\": null,\n \"user_report\": - null\n },\n \"receipt_email\": null,\n \"receipt_number\": null,\n \"shipping\": - null\n}\n" - http_version: - recorded_at: Fri, 07 Nov 2014 01:42:32 GMT -recorded_with: VCR 2.9.0 diff --git a/test/fixtures/vcr_cassettes/stripe-gold-to-plat-bad.yml b/test/fixtures/vcr_cassettes/stripe-gold-to-plat-bad.yml deleted file mode 100644 index b7a12f94b..000000000 --- a/test/fixtures/vcr_cassettes/stripe-gold-to-plat-bad.yml +++ /dev/null @@ -1,66 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://api.stripe.com/v1/tokens - body: - encoding: US-ASCII - string: card[number]=4242424242424242&card[exp_month]=1&card[exp_year]=2015&card[cvc]=123 - headers: - Accept: - - ! '*/*; q=0.5, application/xml' - Accept-Encoding: - - gzip, deflate - User-Agent: - - Stripe/v1 RubyBindings/1.16.0 - Authorization: - - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH - Content-Type: - - application/x-www-form-urlencoded - X-Stripe-Client-User-Agent: - - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin - ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun - Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' - Content-Length: - - '81' - response: - status: - code: 200 - message: OK - headers: - Server: - - nginx - Date: - - Fri, 07 Nov 2014 01:42:34 GMT - Content-Type: - - application/json;charset=utf-8 - Content-Length: - - '623' - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Allow-Methods: - - GET, POST, HEAD, OPTIONS, DELETE - Access-Control-Max-Age: - - '300' - Cache-Control: - - no-cache, no-store - Request-Id: - - 131d3a38-43aa-4ae1-9740-e745bbec695d - Stripe-Version: - - '2014-10-07' - Strict-Transport-Security: - - max-age=31556926; includeSubDomains - body: - encoding: US-ASCII - string: ! "{\n \"id\": \"tok_14w1lm2Od3yiQVdJsgew67au\",\n \"livemode\": false,\n - \ \"created\": 1415324554,\n \"used\": false,\n \"object\": \"token\",\n - \ \"type\": \"card\",\n \"card\": {\n \"id\": \"card_14w1ll2Od3yiQVdJbLrKD9YV\",\n - \ \"object\": \"card\",\n \"last4\": \"4242\",\n \"brand\": \"Visa\",\n - \ \"funding\": \"credit\",\n \"exp_month\": 1,\n \"exp_year\": 2015,\n - \ \"fingerprint\": \"xrSmurPsZCJllxXR\",\n \"country\": \"US\",\n \"name\": - null,\n \"address_line1\": null,\n \"address_line2\": null,\n \"address_city\": - null,\n \"address_state\": null,\n \"address_zip\": null,\n \"address_country\": - null,\n \"dynamic_last4\": null,\n \"customer\": null\n }\n}\n" - http_version: - recorded_at: Fri, 07 Nov 2014 01:42:33 GMT -recorded_with: VCR 2.9.0 diff --git a/test/fixtures/vcr_cassettes/stripe-gold-to-plat.yml b/test/fixtures/vcr_cassettes/stripe-gold-to-plat.yml deleted file mode 100644 index 6f0bf6a82..000000000 --- a/test/fixtures/vcr_cassettes/stripe-gold-to-plat.yml +++ /dev/null @@ -1,140 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://api.stripe.com/v1/tokens - body: - encoding: US-ASCII - string: card[number]=4242424242424242&card[exp_month]=1&card[exp_year]=2015&card[cvc]=123 - headers: - Accept: - - ! '*/*; q=0.5, application/xml' - Accept-Encoding: - - gzip, deflate - User-Agent: - - Stripe/v1 RubyBindings/1.16.0 - Authorization: - - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH - Content-Type: - - application/x-www-form-urlencoded - X-Stripe-Client-User-Agent: - - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin - ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun - Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' - Content-Length: - - '81' - response: - status: - code: 200 - message: OK - headers: - Server: - - nginx - Date: - - Fri, 07 Nov 2014 01:42:33 GMT - Content-Type: - - application/json;charset=utf-8 - Content-Length: - - '623' - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Allow-Methods: - - GET, POST, HEAD, OPTIONS, DELETE - Access-Control-Max-Age: - - '300' - Cache-Control: - - no-cache, no-store - Request-Id: - - 26c76792-4ff5-4154-b226-a309d79bdb0e - Stripe-Version: - - '2014-10-07' - Strict-Transport-Security: - - max-age=31556926; includeSubDomains - body: - encoding: US-ASCII - string: ! "{\n \"id\": \"tok_14w1ll2Od3yiQVdJ6kLDgI43\",\n \"livemode\": false,\n - \ \"created\": 1415324553,\n \"used\": false,\n \"object\": \"token\",\n - \ \"type\": \"card\",\n \"card\": {\n \"id\": \"card_14w1ll2Od3yiQVdJy4qdhKMh\",\n - \ \"object\": \"card\",\n \"last4\": \"4242\",\n \"brand\": \"Visa\",\n - \ \"funding\": \"credit\",\n \"exp_month\": 1,\n \"exp_year\": 2015,\n - \ \"fingerprint\": \"xrSmurPsZCJllxXR\",\n \"country\": \"US\",\n \"name\": - null,\n \"address_line1\": null,\n \"address_line2\": null,\n \"address_city\": - null,\n \"address_state\": null,\n \"address_zip\": null,\n \"address_country\": - null,\n \"dynamic_last4\": null,\n \"customer\": null\n }\n}\n" - http_version: - recorded_at: Fri, 07 Nov 2014 01:42:33 GMT -- request: - method: post - uri: https://api.stripe.com/v1/charges - body: - encoding: US-ASCII - string: amount=2000¤cy=usd&card=tok_14w1ll2Od3yiQVdJ6kLDgI43&description=Upgrade%20Gold%20to%20Platinum - headers: - Accept: - - ! '*/*; q=0.5, application/xml' - Accept-Encoding: - - gzip, deflate - User-Agent: - - Stripe/v1 RubyBindings/1.16.0 - Authorization: - - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH - Content-Type: - - application/x-www-form-urlencoded - X-Stripe-Client-User-Agent: - - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin - ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun - Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' - Content-Length: - - '101' - response: - status: - code: 200 - message: OK - headers: - Server: - - nginx - Date: - - Fri, 07 Nov 2014 01:42:33 GMT - Content-Type: - - application/json;charset=utf-8 - Content-Length: - - '1371' - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Allow-Methods: - - GET, POST, HEAD, OPTIONS, DELETE - Access-Control-Max-Age: - - '300' - Cache-Control: - - no-cache, no-store - Request-Id: - - a3e5cda9-d4c4-47f6-8c4f-9f3638399300 - Stripe-Version: - - '2014-10-07' - Strict-Transport-Security: - - max-age=31556926; includeSubDomains - body: - encoding: US-ASCII - string: ! "{\n \"id\": \"ch_14w1ll2Od3yiQVdJcu6dUs9x\",\n \"object\": \"charge\",\n - \ \"created\": 1415324553,\n \"livemode\": false,\n \"paid\": true,\n \"amount\": - 2000,\n \"currency\": \"usd\",\n \"refunded\": false,\n \"card\": {\n \"id\": - \"card_14w1ll2Od3yiQVdJy4qdhKMh\",\n \"object\": \"card\",\n \"last4\": - \"4242\",\n \"brand\": \"Visa\",\n \"funding\": \"credit\",\n \"exp_month\": - 1,\n \"exp_year\": 2015,\n \"fingerprint\": \"xrSmurPsZCJllxXR\",\n - \ \"country\": \"US\",\n \"name\": null,\n \"address_line1\": null,\n - \ \"address_line2\": null,\n \"address_city\": null,\n \"address_state\": - null,\n \"address_zip\": null,\n \"address_country\": null,\n \"cvc_check\": - \"pass\",\n \"address_line1_check\": null,\n \"address_zip_check\": - null,\n \"dynamic_last4\": null,\n \"customer\": null\n },\n \"captured\": - true,\n \"refunds\": {\n \"object\": \"list\",\n \"total_count\": 0,\n - \ \"has_more\": false,\n \"url\": \"/v1/charges/ch_14w1ll2Od3yiQVdJcu6dUs9x/refunds\",\n - \ \"data\": []\n },\n \"balance_transaction\": \"txn_14w1ll2Od3yiQVdJ34rCa0xY\",\n - \ \"failure_message\": null,\n \"failure_code\": null,\n \"amount_refunded\": - 0,\n \"customer\": null,\n \"invoice\": null,\n \"description\": \"Upgrade - Gold to Platinum\",\n \"dispute\": null,\n \"metadata\": {},\n \"statement_description\": - null,\n \"fraud_details\": {\n \"stripe_report\": null,\n \"user_report\": - null\n },\n \"receipt_email\": null,\n \"receipt_number\": null,\n \"shipping\": - null\n}\n" - http_version: - recorded_at: Fri, 07 Nov 2014 01:42:33 GMT -recorded_with: VCR 2.9.0