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