= AmazonFlexPay
Library for Amazon's Flexible Payment Service.
== INITIALIZE
Initialize the gem, probably in config/initializers/amazon_flex_pay.rb (for Rails):
AmazonFlexPay.access_key = 'your access key'
AmazonFlexPay.secret_key = 'your secret key'
AmazonFlexPay.go_live! if Rails.env.production?
== CALL
=== AmazonFlexPay::Pipelines
Start here. You'll need tokens for API calls. These are generated by users via
parameterized pipelines.
==== Example
Construct a single-use pipeline for the user. This is where the user will agree
to pay a certain amount to a specific recipient (maybe you?).
redirect_to AmazonFlexPay.single_use_pipeline(
'mypipeline3292',
'http://example.com/return',
:recipient_token => 'RTOKEN',
:transaction_amount => '12.99'
)
=== AmazonFlexPay::API
With tokens, you can make API calls. Note that results are asynchronous via IPNs.
Payment and Refund examples are below. You can see all available API methods
here[https://github.com/kickstarter/amazon_flex_pay/blob/master/lib/amazon_flex_pay/api.rb].
==== Payment Example
Once you have a sender token, you can attempt to collect.
begin
response = AmazonFlexPay.pay('12.99', 'USD', 'senderToken123')
flash[:notice] = "Thanks! Your payment is processing."
rescue AmazonFlexPay::API::Error => e
flash[:error] = "Sorry, something went wrong."
e.errors.each do |error|
# notify yourself about error.code and error.message
end
end
redirect_to product_path
==== Refund Example
If you would like to give your last order a $10 refund, you can call the refund
method like this:
order = Order.last
AmazonFlexPay.refund(
order.transaction_id,
order.id,
caller_description: 'Friends and family discount.',
refund_amount: { value: 10, currency_code: 'USD' },
)
Note: In this example, we are using the order id as the caller reference. You
can pass any reference that you like. Also, the 'caller_description' and
'refund_amount' options are not required. The default refund amount is the
original transaction amount.
Copyright (c) 2013 Kickstarter, released under the MIT license.