Total Blog Views: 136
Blog Status: publish
Created By: swazahmad Created at: 08-13-2021
Tags: ruby on rails payment gateway integration UPI integration paytm inetgration ruby on rails ror paytm india integrate
Paytm Is the India's Top Payment Gateway And Ecommerce Platform
Today We will learn
To Configure Paytm In Ruby On Rails Application We will require Below Keys from Paytm
You Can Get Above Keys By Clicking on the paytm API console
Configure the keys in paytm_env_file.rb
WALLET_MID: "<MERCHANT_ID>"
WALLET_KEY: "<MERCHANT_KEY>"
WALLET_GUID: "<WALLET_GUID>"
Then We need to add a Service For Paytm which Will accept 2 params
We Will create a base service.
app/services/paytm/base_service.rb
module Paytm
class BaseService
private
def paytm_response
uri = URI.parse(paytm_url)
req = paytm_request(uri)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
res = http.request(req)
JSON.parse(res.body)
end
def paytm_request(uri)
headers = Hash.new
headers['Content-Type'] = 'application/json'
headers['x-mid'] = ENV['WALLET_MID']
headers['x-checksum'] = paytm_checksum
req = Net::HTTP::Post.new(uri.request_uri, headers)
req.body = paytm_params
return req
end
def paytm_checksum
::PaytmChecksum.new.generateSignature(paytm_params, ENV['WALLET_KEY'])
end
def paytm_base_url
paytm_env = Rails.env.development? ? 'staging-dashboard' : 'dashboard'
"https://#{paytm_env}.paytm.com/bpay/api/v1/disburse/order/"
end
end
end
#File name Will be base_service.rb
Add Paytm wallet transfer service which is derived from base_service
app/services/paytm/paytm_wallet_transfer.rb
module Paytm
class PaytmWalletTransfer < BaseService
attr_reader :phone_number, :amount, :order_id
def initialize(user_id: , amount: )
@phone_number = phone_number
@amount = amount.to_s
@order_id = SecureRandom.hex
end
def transfer
response_body = HashWithIndifferentAccess.new(paytm_response)
end
private
def paytm_params
'{"orderId":"' + order_id.to_s + '","beneficiaryPhoneNo":"' + phone_number.to_s + '","amount":"' + amount.to_s + '","subwalletGuid":"' + ENV['WALLET_GUID'] + '"}'
end
def paytm_url
paytm_base_url + 'wallet/gratification'
end
end
end
For example, If we need to transfer Money from Our wallet to a customer We Can Just call like below
PaytmWalletTransfer.new(phone_number: '9890135096', amount: 100).transfer
Above will generate a secure random Hex and Request to transfer Money Of a provided amount to Given Mobile Number
Response sample Like Below:
{
"status": "ACCEPTED",
"statusCode": "DE_002",
"statusMessage": "Request accepted"
}
Response to this above call having status as ACCEPTED or SUCCESS means your request is accepted or done successfully.
If it returns FAILURE, then there must be some issue with the request so please check the status message.
To know about paytm wallet transfer API, please visit
To know about paytm check order status API, please visit below link:
If You do have Some Question and Suggestion Please add-In Comments
we have the “Get things executed” lifestyle at our place of work. There are not any excuses, no if’s or however’s in our dictionary. committed to navigating the ship of creativity to create cell answers, we resolve the real-lifestyles troubles of our clients and their clients. Our passion for work has won us many awards, year after 12 months.
© Copyright Shadbox. All Rights Reserved
Rate Blog :
Share on :
Do you have any blog suggestion? please click on the link