gmo_payment_gem

Github
Unofficial wrapper for GMO Payment Gateway API
Easy to make request to GMO Payment Gateway

Background

  • Need a simple scenario about payment, eg: Register member and credit card info, then execute monthly payment
  • Do not want to know others api with a ton of documents
  • Lightweight library with no dependency, simple configurations, and extend easily

Install

  • In Gemfile: gem 'gmo_payment_gem' then $bundle install
  • Or directly with: $gem install gmo_payment_gem

Configuration

  • For rails app: In config/environment.rb, insert: require 'gmo_payment' unless defined?(GmoPayment)
    then in config/environments/env_file.rb (Eg: config/environments/development.rb):
   config.after_initialize do
       GmoPayment::Configurations.all = {
         site_id: ENV['DEV_PAYMENT_SITE_ID'],
         site_pass: ENV['DEV_PAYMENT_SITE_PASS'],
         shop_id: ENV['DEV_PAYMENT_SHOP_ID'],
         shop_pass: ENV['DEV_PAYMENT_SHOP_PASS'],
         log_path: "#{Rails.root.to_s}/log/dev.log",
         base_url: ENV['DEV_PAYMENT_BASE_URL'],
         more_urls: {},
         more_errors: {}
       }
       GmoPayment::Configurations.check_valid!
   end
  • For other apps/libs:

    require 'gmo_payment'
    

    then fill above config to where init your app.

  • Configurations description

Key Required? Value format Description
site_id Yes String
site_pass Yes String
shop_id Yes String
shop_pass Yes String
log_path Yes String Use for log file
base_url Yes String Use for base url of request endpoint.
Eg: With endpoint: https://pt01.mul-pay.jp/payment/SaveCard.idPass
then base_url is https://pt01.mul-pay.jp/payment
more_urls No Hash Use for extend/overwrite existing api urls endpoint
more_errors No Hash Use for extend/overwrite existing api errors

Usage

Wherever you need to execute a request to GMO Payment

# options = {}, type_site = true, logger = nil is default params
gmo_payment = GmoPayment.new
# Prepare your params here
params = {}
#List support_request see as bellow
response = gmo_payment.support_request(params)
if response.success?
  # Do your stuff here
end
  • List support_request :register_member
    :delete_member
    :search_member
    :save_card
    :delete_card
    :register_transaction
    :submit_transaction
    :confirm_transaction
    :transaction_status

Extend

If you don't see what request you need in list support_request, you can define your request with simple code as below:

class YourPayment < GmoPayment
  def request_your_api(params = {})
    # You can define request url to above config in more_urls hash
    api_url = GmoPayment::ApiUrls.fetch('YOUR_API_REQUEST_KEY')
    call_api(api_url, params)
  end
end

then

your_payment = YourPayment.new
params = {} # Define your request params here
response = your_payment.request_your_api(params)
response.success do |api_url, response_http_code, response_body, response_body_parsed|
 # Your code to define how is success
end

Development

All PR are welcome. Make sure all test cases are passed by command: $rake test

TODO

  • RDoc
  • validate request params base on each type of request

License

MIT.