lib/helpers/controller_helpers.rb in wepay-rails-0.1.115 vs lib/helpers/controller_helpers.rb in wepay-rails-0.1.116

- old
+ new

@@ -1,19 +1,19 @@ module WepayRails module Helpers module ControllerHelpers - def redirect_to_wepay_for_auth(wepayable_object) + def redirect_to_wepay_for_auth(wepayable_object, params = {}) # Initially set a reference ID to the column created for the wepayable # so that when the redirect back from wepay happens, we can reference # the original wepayable, and then save the new auth code into the reference ID's # place ref_id = Digest::SHA1.hexdigest("#{Time.now.to_i+rand(4)}") session[unique_wepay_auth_token_key] = ref_id wepayable_object.update_attribute(WepayRails::Configuration.wepayable_column.to_sym, ref_id) - redirect_to wepay_gateway.auth_code_url(wepayable_object) + redirect_to wepay_gateway.auth_code_url(params) end # @deprecated Use wepay_gateway instead of gateway def gateway warn "[DEPRECATION] Use wepay_gateway instead of gateway" @@ -35,12 +35,10 @@ # Response # {"user_id":"123456","access_token":"1337h4x0rzabcd12345","token_type":"BEARER"} Example def initialize_wepay_access_token(wepayable_object) session[unique_wepay_access_token_key] = wepay_gateway.access_token(wepayable_object) return - rescue WepayRails::Exceptions::ExpiredTokenError => e - redirect_to_wepay_for_auth(wepayable_object) and return end # Since we are saving the access token in the session, # ensure key uniqueness. Might be a good idea to have this # be a setting in the wepay.yml file. @@ -57,11 +55,11 @@ def wepay_access_token session[unique_wepay_access_token_key] end def wepay_access_token_exists? - @access_token_exists ||= wepay_access_token.present? + wepay_access_token.present? end # Many of the settings you pass in here are already factored in from # the wepay.yml file and only need to be overridden if you insist on doing # so when this method is called. The following list of key values are pulled @@ -95,13 +93,14 @@ # :callback_uri No The uri that will receive any Instant Payment Notifications sent. Needs to be a full uri (ex https://www.wepay.com ) # :auto_capture No A boolean value (0 or 1). Default is 1. If set to 0 then the payment will not automatically be released to the account and will be held by WePay in payment state 'reserved'. To release funds to the account you must call /checkout/capture # :require_shipping No A boolean value (0 or 1). If set to 1 then the payer will be asked to enter a shipping address when they pay. After payment you can retrieve this shipping address by calling /checkout # :shipping_fee No The amount that you want to charge for shipping. # :charge_tax No A boolean value (0 or 1). If set to 1 and the account has a relevant tax entry (see /account/set_tax), then tax will be charged. - def init_checkout_and_send_user_to_wepay(parms) - response = wepay_gateway.perform_checkout(parms) - raise WepayRails::Exceptions::InitializeCheckoutError.new("A problem occurred while trying to checkout. Wepay didn't send us back a checkout uri. Response was: #{response.inspect}") unless response && response.has_key?('checkout_uri') + def init_checkout_and_send_user_to_wepay(params) + response = wepay_gateway.perform_checkout(params) + checkout = WepayCheckoutRecord.create(params.merge({ checkout_id: response['checkout_id'] })) + raise WepayRails::Exceptions::InitializeCheckoutError.new("A problem occurred while trying to checkout. Wepay didn't send us back a checkout uri. Response was: #{response.inspect}, Params were: #{params}, Token was: #{wepay_access_token}") unless response && response.has_key?('checkout_uri') redirect_to response['checkout_uri'] and return end end end -end \ No newline at end of file +end