Poundpay
Poundpay is a payments platform for marketplaces
Adding Poundpay to Rails
-
Add the following to your Gemfile
gem 'poundpay', '~> 0.2.0'
-
At the command prompt, install the gem with bundler
bundle install
-
Create the file config/poundpay.yml and add your configurations. Note: Make sure your YAML file ends with a blank line; otherwise, Ruby will give you a completely unintelligible error message
development: developer_sid: DV0383d447360511e0bbac00264a09ff3c auth_token: c31155b9f944d7aed204bdb2a253fef13b4fdcc6ae1540200449cc4526b2381a callback_url: http://staging.awesomemarketplace.com/payments/callback www_url: https://www-sandbox.poundpay.com api_url: https://api-sandbox.poundpay.com production: developer_sid: DV8dd93f0f3c6411e0863f00264a09ff3c auth_token: d8c4ea1bafd3fcac8c1062a72c22bcdb09321deb1041df257165cd6449def0de callback_url: http://www.awesomemarketplace.com/payments/callback
-
Create the file config/initializers/poundpay.rb and add the following
Poundpay.configure_from_yaml "config/poundpay.yml"
-
Protect your callback controller
before_filter :verify_poundpay_callback
Creating a payment
@payment = Poundpay::Payment.create(
:amount => 20000,
:payer_fee_amount => 0,
:payer_email_address => "[email protected]",
:recipient_fee_amount => 500,
:recipient_email_address => "[email protected]",
:description => "Beats by Dr. Dre")
Serving IFRAME
<script src="https://www.poundpay.com/js/poundpay.js"></script>
<div id="pound-root"></div>
<script>
function handlePaymentSuccess() {
// do something
}
function handlePaymentError() {
// handle error
}
PoundPay.init({
payment_sid: "<%= @payment.sid %>",
success: handlePaymentSuccess,
error: handlePaymentError,
cardholder_name: "Fred Nietzsche", // Optional
server: "<%= Poundpay.www_url %>"
});
</script>
Payment methods
payment = Poundpay::Payment.find(payment_sid)
payment.escrow # AUTHORIZED -> ESCROWED. Credit card is charged
payment.release # ESCROWED -> RELEASED. Recipient receives money
payment.cancel # ESCROWED -> CANCELED. Payer receives refund