diff --git a/CHANGELOG.md b/CHANGELOG.md index 542dcb1..d7e127a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ Changelog for Razorpay-Ruby SDK. ## Unreleased +## [3.2.0] - 2023-12-11 + +feat: Added generic access point + ## [3.1.0] - 2023-10-13 ### Added diff --git a/README.md b/README.md index 37574d6..7083803 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,8 @@ If you are using rails, the right place to do this might be `config/initializers - [Register NACH and Charge First Payment Together](documents/registerNach.md) - [Payment Verification](documents/paymentVerification.md) - [Webhook](documents/webhook.md) +- [Generic](documents/generic.md) + ## Development - Everything is namespaced under the Razorpay module diff --git a/documents/generic.md b/documents/generic.md new file mode 100644 index 0000000..fc1db53 --- /dev/null +++ b/documents/generic.md @@ -0,0 +1,150 @@ +## Generic Access point + + +```rb +Razorpay.setup('key_id', 'key_secret') +``` + +### Method Signature +```rb +Razorpay::Generic.new(entity).do(url, method, payload, version) +``` + +**Parameters:** + +| Name | Type | Description | +|---------------|-------------|---------------------------------------------| +| entity* | string | The endpoint to which the request will be made. (e.g., "contacts" or "accounts") | +| url* | string | Add params or query or query (e.g., "/order_000000000000001" or "?count=1") | +| method* | string | The HTTP method for the request (e.g., 'Get', 'Post', 'Put', 'Patch', 'Delete'). | +| payload | object | The data to be sent with the request.| +| version | string | Add version (e.g., "v1" or "v2") | + +------------------------------------------------------------------------------------------------------- + +### Create a contacts using POST + +```rb + +payload = { + "name": "Gaurav Kumar", + "email": "gaurav.kumar@example.com", + "contact": "9123456789", + "type": "employee", + "reference_id":"Acme Contact ID 12345", + "notes": { + "notes_key_1":"Tea, Earl Grey, Hot", + "notes_key_2":"Tea, Earl Grey… decaf.", + }, +} + +Razorpay::Generic.new("contacts").do("/", "Post", payload) +``` + +**Response:** + +```json +{ + "id": "cont_00000000000001", + "entity": "contact", + "name": "Gaurav Kumar", + "contact": "9123456789", + "email": "gaurav.kumar@example.com", + "type": "employee", + "reference_id": "Acme Contact ID 12345", + "batch_id": null, + "active": true, + "notes": { + "notes_key_1": "Tea, Earl Grey, Hot", + "notes_key_2": "Tea, Earl Grey… decaf." + }, + "created_at": 1545320320 +} +``` + +------------------------------------------------------------------------------------------------------- + +### Fetch an order using GET + +```rb +Razorpay::Generic.new("orders").do("/order_00000000000001", "Get", {}) +``` + +**Response:** + +```json +{ + "amount": 307, + "amount_due": 0, + "amount_paid": 307, + "attempts": 1, + "created_at": 1695625101, + "currency": "INR", + "entity": "order", + "id": "order_00000000000001", + "notes": [], + "offer_id": null, + "receipt": "851617", + "status": "paid" +} +``` + +------------------------------------------------------------------------------------------------------- + +### Fetch payments of a linked account using headers + +```rb +Razorpay.headers = {"X-Razorpay-Account" => "acc_00000000000001"} + +Razorpay::Generic.new("payments").do("/pay_00000000000001", "Get", {}) +``` + +**Response:** + +```json +{ + "entity": "collection", + "count": 2, + "items": [ + { + "id": "pay_00000000000001", + "entity": "payment", + "amount": 10000, + "currency": "INR", + "status": "captured", + "order_id": "order_00000000000001", + "invoice_id": null, + "international": false, + "method": "netbanking", + "amount_refunded": 0, + "refund_status": null, + "captured": true, + "description": "#JJCqaOhFihfkVE", + "card_id": null, + "bank": "YESB", + "wallet": null, + "vpa": null, + "email": "john.example@example.com", + "contact": "9999999999", + "notes": [], + "fee": 236, + "tax": 36, + "error_code": null, + "error_description": null, + "error_source": null, + "error_step": null, + "error_reason": null, + "acquirer_data": { + "bank_transaction_id": "2118867" + }, + "created_at": 1649932775 + } + ] +} +``` + +------------------------------------------------------------------------------------------------------- + +**PN: * indicates mandatory fields** +
+
diff --git a/lib/razorpay/constants.rb b/lib/razorpay/constants.rb index 5464889..fb07568 100644 --- a/lib/razorpay/constants.rb +++ b/lib/razorpay/constants.rb @@ -2,7 +2,7 @@ module Razorpay BASE_URI = 'https://api.razorpay.com'.freeze TEST_URL = 'https://api.razorpay.com/'.freeze - VERSION = '3.1.0'.freeze + VERSION = '3.2.0'.freeze ENTITIES_LIST = { "cards" => "card", "invoices" => "invoice",