Skip to content

Instantly share code, notes, and snippets.

@johndel
Created October 27, 2014 16:16
Show Gist options
  • Save johndel/e31ca57249e4fccfd28f to your computer and use it in GitHub Desktop.
Save johndel/e31ca57249e4fccfd28f to your computer and use it in GitHub Desktop.
Viva Payment
if Rails.env.production?
@viva_url = "https://www.vivapayments.com"
@rest = RestClient::Resource.new "#{@viva_url}/api/orders", :user => "user_id4", :password => "password"
else
@viva_url = "http://demo.vivapayments.com"
@rest = RestClient::Resource.new "#{@viva_url}/api/orders", :user => "user_id", :password => "password"
end
email = @order.email
phone = @order.phone
name = @order.name
send_amount = (@order.calculate_total * 100).to_i
querystring = "Amount=#{send_amount}&Email=#{email}&Phone=#{phone}&FullName=#{name}&PaymentTimeOut=65535"
@response = @rest.post querystring rescue nil
if @response.blank?
5.times do
@response = @rest.post querystring rescue nil
break if @response
sleep 2
end
end
if @response.nil?
redirect_to review_orders_path(order:{name: @order.name}), alert: "Υπήρξε κάποιο πρόβλημα, προσπαθήστε ξανά."
else
@order.payment_code = JSON.parse(@response)['OrderCode']
@order.error_code = JSON.parse(@response)['ErrorCode']
@order.error_text = JSON.parse(@response)['ErrorText']
@order.status = "payment_progress"
@order.save
if @order.error_code == 0
redirect_to "#{@viva_url}/web/checkout?displaycash=true&ref=#{@order.payment_code.to_s}"
else
redirect_to review_orders_path(order:{name: @order.name}), alert: "Υπήρξε κάποιο πρόβλημα, προσπαθήστε ξανά."
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment