require 'net/http'
require 'json'
require 'securerandom'

url = URI("https://api.zwitch.io/icp/upi/intent")

access_key = "{{access_key}}"
auth_token = "{{access_key:secret_key}}"

# Unique mtx
mtx = "mtx_#{Time.now.to_i}_#{SecureRandom.hex(4)}"

payload = {
  amount: "5.00", #amount to be collected
  contact_number: "8900223344", #customer's mobile number
  email_id: "john.doe@gmail.com", #customer's email
  currency: "INR", 
  mtx: mtx
}

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

req = Net::HTTP::Post.new(url)
req["Access-Key"] = access_key
req["Authorization"] = "Bearer #{auth_token}"
req["Accept"] = "application/json"
req["Content-Type"] = "application/json"
req.body = payload.to_json

res = http.request(req)

puts "Status: #{res.code}"
puts "Response: #{res.body}"
