I'm trying to connect the payment via liqpay to the site, but I get this error:
public_key is a required field
She points to the line
<%=liqpay_button @liqpay_request %> In show file
<% if @place.status == false %> <p>If you have paid already, the response didn't come in yet from LiqPAY. Refresh this page later.</p> <%=liqpay_button @liqpay_request %> <% elsif @place.status == true %> <p>Payment succeeded.</p> <% else %> <p>Payment failed.</p> <% end %> Controller code places_controller.rb
if @place.status == false @liqpay_request = Liqpay::Request.new( :amount => @searched_film_session_price, :currency => 'UAH', :name => @place_title, :order_id => @place.id, :result_url => place_url(@place) # :server_url => liqpay_payment_place_url(@place) ) In the config / initializers / liqpay.rb file I wrote:
Liqpay.default_options = { public_key: ENV['публичный ключ полученный при регистрации'], private_key: ENV['приватный ключ полученный при регистрации'], currency: 'UAH' } Code payments_controller.rb
class PaymentsController < ApplicationController protect_from_forgery :except => :liqpay_payment def liqpay_payment @liqpay_response = Liqpay::Response.new(params) @place = Place.find(@liqpay_response.order_id) @place.data = {} (Liqpay::Response::ATTRIBUTES - %w(public_key sender_phone transaction_id)).each do |attribute| @place.data[attribute] = @liqpay_response.send(attribute) end if @liqpay_response.success? @place.update_attributes!(:status => true) else @place.update_attributes!(:status => false) end redirect_to @place rescue Liqpay::InvalidResponse render text: 'Payment error', status: 500 end end