Powerful, flexible, lightweight interface to the BitPay Bitcoin Payment Gateway API.
gem install bitpay-client
In your Gemfile:
gem 'bitpay-client', :require => 'bitpay'
Or directly:
require 'bitpay'
The bitpay client creates a cryptographically secure connection to your server by pairing an API code with keys stored on your server. The library generates the keys as a .pem file, which is stored in $HOME/.bitpay/bitpay.pem
or preferentially in an environment variable.
The client will generate a key when initialized if one does not already exist.
To pair with bitpay.com you need to have an approved merchant account.
- Login to your account
- Navigate to bitpay.com/api-tokens (Dashboard > My Account > API Tokens)
- Copy an existing pairing code or create a new token and copy the pairing code.
- Use the bitpay command line tool to pair with bitpay.com
bitpay pair <pairing_code>
The command line utility will save a PEM file in the file $HOME/.bitpay/bitpay.pem. When creating new clients, this pem file is needed in order to have an authorized client.
client = BitPay::Client.new(pem: File.read("#{ENV['HOME']}/.bitpay/bitpay.pem"))
invoice = client.create_invoice (id: <id>, price: <price>, currency: <currency>, facade: <facade>)
With invoice creation, price
and currency
are the only required fields. If you are sending a customer from your website to make a purchase, setting redirectURL
will redirect the customer to your website when the invoice is paid.
Response will be a hash with information on your newly created invoice. Send your customer to the url
to complete payment:
{
"id" => "DGrAEmbsXe9bavBPMJ8kuk",
"url" => "https://bitpay.com/invoice?id=DGrAEmbsXe9bavBPMJ8kuk",
"status" => "new",
"btcPrice" => "0.0495",
"price" => 10,
"currency" => "USD",
"invoiceTime" => 1383265343674,
"expirationTime" => 1383266243674,
"currentTime" => 1383265957613
}
There are many options available when creating invoices, which are listed in the BitPay API documentation.
To get updated information on this invoice, make a get call with the id returned:
invoice = client.get_public_invoice(DGrAEmbsXe9bavBPMJ8kuk)'
The BitPay CLI gem requires the BitPay SDK gem. See the BitPay SDK Gem documentation for more details on using the BitPay Client SDK.
In order to pair with testnet, you will need a pairing code from test.bitpay.com and will need to use the bitpay client with the --test option.
API Documentation is available on the BitPay site.
$ bundle install
$ bundle exec rake
jj
Let us know! Send a pull request or a patch. Questions? Ask! We're here to help. We will respond to all filed issues.
Click here to see a list of the contributors to this library.