/payjp-ruby

Primary LanguageRubyMIT LicenseMIT

PAY.JP for Ruby

How to Use

require 'payjp'
Payjp.api_key = 'sk_test_c62fade9d045b54cd76d7036'
Payjp.open_timeout = 30 # optionally
Payjp.read_timeout = 90 # optionally

# ex, create charge
charge = Payjp::Charge.create(
  :amount => 3500,
  :card => 'token_id',
  :currency => 'jpy',
)
Payjp variables type required description
api_key String yes your secret key
open_timeout Integer no the second to wait for TCP connection opening (default 30)
read_timeout Integer no the second to wait from request to reading response (default 90)

For detail, See PAY.JP API Docs

Installation

gem install payjp

If you want to build the gem from source:

gem build payjp.gemspec

Requirements

  • Ruby 2.0.0 or above.
  • rest-client

Retry on HTTP Status Code 429

  • See Rate Limit Guideline
  • When you exceeded rate-limit, you can retry request by setting max_retry like Payjp.max_retry = 3 .
  • The retry interval base value is retry_initial_delay Adjust the value like Payjp.retry_initial_delay = 4 The smaller is shorter.
  • The Maximum retry time is retry_max_delay. Adjust the value like 'Payjp.retry_max_delay = 32'
  • The retry interval calcurating is based on "Exponential backoff with equal jitter" algorithm. See https://aws.amazon.com/jp/blogs/architecture/exponential-backoff-and-jitter/

how to use

require 'payjp'
Payjp.api_key = 'sk_test_c62fade9d045b54cd76d7036'
Payjp.max_retry = 3
Payjp.retry_initial_delay = 2
Payjp.retry_max_delay = 32

charge = Payjp::Charge.create(
  :amount => 3500,
  :card => 'token_id',
  :currency => 'jpy',
)

Bundler

If you are installing via bundler, you should be sure to use the https rubygems source in your Gemfile, as any gems fetched over http could potentially be compromised in transit and alter the code of gems fetched securely over https:

source 'https://rubygems.org'

gem 'rails'
gem 'payjp'

Development

Test cases can be run with: bundle exec rake test