README.md in razorpay-2.4.1 vs README.md in razorpay-3.0.0

- old
+ new

@@ -1,8 +1,8 @@ # Razorpay Ruby bindings -[![Build Status](https://travis-ci.org/razorpay/razorpay-ruby.svg?branch=master)](https://travis-ci.org/razorpay/razorpay-ruby) [![Gem Version](https://badge.fury.io/rb/razorpay.svg)](http://badge.fury.io/rb/razorpay) [![Coverage Status](https://coveralls.io/repos/github/Razorpay/razorpay-ruby/badge.svg?branch=master)](https://coveralls.io/github/Razorpay/razorpay-ruby?branch=master) [![License](http://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org) +[![Build Status](https://travis-ci.org/razorpay/razorpay-ruby.svg?branch=master)](https://travis-ci.org/razorpay/razorpay-ruby) [![Gem Version](https://img.shields.io/badge/gem%20version-v3.0.0-dark%20green.svg)](http://badge.fury.io/rb/razorpay) [![Coverage Status](https://coveralls.io/repos/github/Razorpay/razorpay-ruby/badge.svg?branch=master)](https://coveralls.io/github/Razorpay/razorpay-ruby?branch=master) [![License](http://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org) This is the base ruby gem for interacting with the Razorpay API. This is primarily meant for users who wish to perform interactions with the Razorpay API programatically. ## Installation @@ -18,13 +18,16 @@ Or install it yourself as: $ gem install razorpay +## Requirements + +Ruby 2.6.8 or later ## Usage -Remember to `require razorpay` before anything else. +Remember to `require 'razorpay'` before anything else. Next, you need to setup your key and secret using the following: ```rb Razorpay.setup('key_id', 'key_secret') @@ -37,135 +40,34 @@ You can find your API keys at <https://dashboard.razorpay.com/#/app/keys>. If you are using rails, the right place to do this might be `config/initializers/razorpay.rb`. -The most common construct is capturing a payment, which you do via the following: - -```rb -Razorpay::Payment.fetch("payment_id").capture({amount:500}) -# Note that the amount should come from your session, so as to verify -# that the purchase was correctly done and not tampered -``` - -You can refund a payment via the following: - -```rb -Razorpay::Payment.fetch("payment_id").refund({amount:500}) -refunds = Razorpay::Payment.fetch("payment_id").refunds -``` - -A payment can also be refunded without fetching it: -```rb -refund = Razorpay::Refund.create(payment_id:"payment_id") -Razorpay::Refund.fetch(refund.id) -``` - -If payment is captured or refunded via `capture!` or `refund!`, then the calling object is also updated: -```rb -payment = Razorpay::Payment.fetch('payment_id') -payment.status -# 'authorized' -payment.capture! -payment.status -# 'captured' -payment.refund! -payment.status -# 'refunded' -``` - -For other applications (such as fetching payments and refunds), -see our online documentation on <https://docs.razorpay.com> - -### Orders API - -You can use the orders API using the following constructs: - -You can find docs at <https://docs.razorpay.com/v1/page/orders> - -```rb -order = Razorpay::Order.create amount: 5000, currency: 'INR', receipt: 'TEST' -# order.id = order_50sX9hGHZJvjjI - -# Same collection as Refunds or Payments -orders = Razorpay::Order.all - -# Fetching an Order -order = Razorpay::Order.fetch('order_50sX9hGHZJvjjI') -puts order.amount - -# Fetching payments corresponding to an order -payments = order.payments -``` - -### Verification -You can use the Utility class to verify the signature received in response to a payment made using Orders API -```rb -puts payment_response -# { -# :razorpay_order_id => "fake_order_id", -# :razorpay_payment_id => "fake_payment_id", -# :razorpay_signature => "signature" -# } -Razorpay::Utility.verify_payment_signature(payment_response) -``` -You can also [verify the signature](https://github.com/razorpay/razorpay-ruby/wiki/Webhooks) received in a webhook: -```rb -Razorpay::Utility.verify_webhook_signature(webhook_body, webhook_signature, webhook_secret) -``` - -### Customers -```rb -# Create a customer -customer = Razorpay::Customer.create email: 'test@razorpay.com', contact: '9876543210' -puts customer.id #cust_6vRXClWqnLhV14 -``` - -### Cards -```rb -# Fetch a card -card = Razorpay::Card.fetch('card_7EZLhWkDt05n7V') -puts card.network #VISA -``` - -You can find cards API documentation at <https://docs.razorpay.com/v1/page/cards>. - -### Invoices -```rb -# Creating an invoice -invoice = Razorpay::Invoice.create customer_id: customer.id, amount: 100, currency: 'INR', description: 'Test description', type: 'link' -``` - -You can find invoices API documentation at <https://docs.razorpay.com/v1/page/invoices>. - -### Plan -```rb -# Creating a plan -plan = Razorpay::Plan.create interval: 1, period: 'monthly', item: { name: 'fake_plan', description: 'fake_desc', currency: 'INR', amount: 500 }, notes: { identifier: 'plan_monthly_super' } -``` - -You can find plan API documentation at <https://razorpay.com/docs/subscriptions/api/#plan>. - -### Subscription -```rb -# Creating a subscription and starting after 24 hours (24 hours = 60 * 60 * 24) -subscription = Razorpay::Subscription.create plan_id: plan.id, customer_id: customer.id, start_at: (Time.now + (60 * 60 * 24)).to_i, total_count: 3 -``` - -You can find subscription API documentation at <https://razorpay.com/docs/subscriptions/api/#subscription>. - -### Addon -```rb -# Creating an addon -subscription_addon = Razorpay::Addon.create subscription.id, item: { name: 'fake_plan', description: 'fake_desc', currency: 'INR', amount: 500 }, quantity: 1 - -# Fetching an addon -addon = Razorpay::Addon.fetch subscription_addon.id -``` - -You can find addon API documentation at <https://razorpay.com/docs/subscriptions/api/#add-on>. - +## Supported Resources +- [Customer](documents/customer.md) +- [Token](documents/tokens.md) +- [Order](documents/order.md) +- [Payments](documents/payment.md) +- [Settlements](documents/settlement.md) +- [Fund](documents/fund.md) +- [Refunds](documents/refund.md) +- [Invoice](documents/Invoice.md) +- [Plan](documents/plan.md) +- [Item](documents/items.md) +- [Subscriptions](documents/subscriptions.md) +- [Add-on](documents/addon.md) +- [Payment Links](documents/paymentLink.md) +- [Smart Collect](documents/virtualAccount.md) +- [Transfer](documents/transfers.md) +- [QR Code](documents/qrcode.md) +- [Emandate](documents/emandate.md) +- [Cards](documents/card.md) +- [Paper NACH](documents/papernach.md) +- [UPI](documents/upi.md) +- [Register Emandate and Charge First Payment Together](documents/registerEmandate.md) +- [Register NACH and Charge First Payment Together](documents/registerNach.md) +- [Payment Verification](documents/paymentVerification.md) ## Development - Everything is namespaced under the Razorpay module - We use rubocop for checking style guidelines - Rake + MiniTest is using as the testrunner @@ -180,22 +82,9 @@ 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Run `rake` and `rubocop` after making your changes to make sure you didn't break anything 4. Commit your changes (`git commit -am 'Add some feature'`) 5. Push to the branch (`git push origin my-new-feature`) 6. Create a new Pull Request - -## Supported Versions - -While we support [all currently supported versions of Ruby](https://www.ruby-lang.org/en/downloads/branches/) -only, the code is tested against the following versions: - -* 1.9.3 -* 2.0.0 -* 2.1.10 -* 2.3.8 -* 2.4.6 -* 2.5.5 -* 2.6.2 ## Release Steps to follow for a release: