Amazon Flex Pay AmazonFlexPay.Pay?

Итак, я использую SelfStarter, у меня полностью настроена учетная запись FlexPay и введена информация, которая необходима SelfStarter для работы, secret_key, access_key.

Никогда не использовал FlexPay раньше.

Теперь, после тестирования (в качестве спонсора), я могу разместить заказ, оформить заказ и получить электронное письмо, в котором говорится, что я санкционировал платеж. Однако деньги не переходят из рук в руки.

После дальнейших исследований я обнаружил, что мне нужно использовать AmazonFlexPay.Pay для пополнения счета, основываясь на собранном токене. Это круто, но я не могу найти много информации о том, как на самом деле реализовать этот код, как, например, где он идет по отношению к остальной части кода. Это большая часть информации, которую я могу найти на нем.

AmazonFlexPay.pay('12.99', 'USD', 'STOKEN', 'myrequest3292')

Это код для контроллера от SelfStarter,

class PreorderController < ApplicationController
  skip_before_filter :verify_authenticity_token, :only => :ipn

  def index
  end

  def checkout
  end

  def prefill
    @user  = User.find_or_create_by_email!(params[:email])

    if Settings.use_payment_options
      payment_option_id = params['payment_option']
      raise Exception.new("No payment option was selected") if payment_option_id.nil?
      payment_option = PaymentOption.find(payment_option_id)
      price = payment_option.amount
    else
      price = Settings.price
    end

    @order = Order.prefill!(:name => Settings.product_name, :price => price, :user_id => @user.id, :payment_option => payment_option)

    # This is where all the magic happens. We create a multi-use token with Amazon, letting us charge the user's Amazon account
    # Then, if they confirm the payment, Amazon POSTs us their shipping details and phone number
    # From there, we save it, and voila, we got ourselves a preorder!
    port = Rails.env.production? ? "" : ":3000"
    callback_url = "#{request.scheme}://#{request.host}#{port}/preorder/postfill"
    redirect_to AmazonFlexPay.multi_use_pipeline(@order.uuid, callback_url,
                                                 :transaction_amount => price,
                                                 :global_amount_limit => price + Settings.charge_limit,
                                                 :collect_shipping_address => "True",
                                                 :payment_reason => Settings.payment_description)
  end

  def postfill
    unless params[:callerReference].blank?
      @order = Order.postfill!(params)
    end
    # "A" means the user cancelled the preorder before clicking "Confirm" on Amazon Payments.
    if params['status'] != 'A' && @order.present?
      redirect_to :action => :share, :uuid => @order.uuid
    else
      redirect_to root_url
    end
  end

  def share
    @order = Order.find_by_uuid(params[:uuid])
  end

  def ipn
  end
end

Кроме того, рубин до сих пор остался нетронутым, поэтому все, что вам может понадобиться, можно найти здесь, https://github.com/lockitron/selfstarter.

На SelfStarter настаивали, потому что казалось, что он готов выйти из пакета. Похоже, что это не так, поэтому любая помощь будет принята с благодарностью. Я чувствую, что я, вероятно, пропускаю легкий шаг или что-то.

0 ответов

Другие вопросы по тегам