ronin / payu Goto Github PK
View Code? Open in Web Editor NEWSimple integration with PayU gateway
License: MIT License
Simple integration with PayU gateway
License: MIT License
Niestety nie dziala generowanie sygnatury transakcji, po kliknieciu w przycisk mam zawsze blad 103:
- payu = Payu::Pos.new(:pos_id => ENV['PAYU_POS_ID'], :pos_auth_key => ENV['PAYU_POS_AUTH_KEY'], :key1 => ENV['PAYU_POS_KEY1'], :key2 => ENV['PAYU_POS_KEY1'])
(...)
- transaction = payu.new_transaction(:first_name => 'John', :last_name => 'Doe', :email => '[email protected]', :client_ip => request.remote_ip, :amount => 10000, :desc => 'xxx')
(...)
= form_tag(transaction.new_url) do
= payu_hidden_fields(transaction)
= submit_tag 'Zapłać', :class => 'btn btn-mini'
Transakcje w dokumentacji nie mają pola 'desc' (opis) które jest wymagane.
@transaction = pos.new_transaction(:first_name => 'John', :last_name => 'Doe', :email => '[email protected]', :client_ip => '1.2.3.4', :amount => 10000)
powinno być
@transaction = pos.new_transaction(:first_name => 'John', :last_name => 'Doe', :email => '[email protected]', :client_ip => '1.2.3.4', :amount => 10000, :desc => ' opis ')
Niestety, ale dostaję taki error Payu::PosNotFound (Payu::PosNotFound):app/controllers/payu_controller.rb w linijce:
response = Payu['main'].get params[:session_id]
Będę wdzięczna za pomoc :)
params_for_payu_pos = {order_id: 1, first_name: "ME", last_name: "Dummy", email: "[email protected]", client_ip: request.remote_ip, amount: @amount, desc: message, language: "pl"}
@payu_payment_helper = @pos.new_transaction(params_for_payu_pos)
render json: params_for_payu_pos
Problems:
render json: params_for_payu_pos IS Not called;
layout and action view is rendered neither.
Basically everything is not called anymore
The result is as if there would be simply called render nothing: true in new_transaction
Controller: http://pastebin.com/QXsJDRYu
Configuration: http://pastebin.com/gRqFtEq8
Rails v 4.2.0
Ruby v 2.2.0
Is there a known problem ?
Cześć, mam problem z integracja poprzez waszego gema, w celach edukacyjnych próbowałem podpiąć testowe płatności do apki i niestety nie mam pojęcia dlaczego payu wywali mi błąd 103 (brak lub błędna wartość parametru sig), parametr znajduje się w formularzu więc pewnie jest źle wyliczony, pytanie tylko dlaczego.
Kod jest raczej standardowy i wielkiej filozofii w nim nie ma. W kontrolerze mam:
pos = Payu::Pos.new(:pos_id => '145227', :pos_auth_key => 'abcdefghijk', :key1 => 'xxxxxxxx', :key2 => '13a980d4f851f3d9a1cfc792fb1f5e50', :add_signature => true)
@transaction = pos.new_transaction(:first_name => 'John', :last_name => 'Doe', :email => '[email protected]', :client_ip => '127.0.0.1', :amount => 10000, desc: 'sth')
w widoku to co podaliście w readme.
Macie jakieś pomysły na to co robię źle? próbowałem różnych kombinacji danych testowych, szukałem rozwiązania w dokumentacji do payu ale najwyraźniej coś za każdym razem musiałem przeoczyć. Z góry wielkie dzięki za pomoc! Pozdrawiam :)
I see this gem is not updated since 2014, is it still working? 😄
Hej,
Mam problem z użyciem waszego rozwiązania. Po przesłaniu formularza przekierowuje mnie na stronę payu i dostaję komunikat błędu 201. Jest to 201 inny chwilowy błąd bazy danych.
Controller:
` pos = Payu['bank']
@ip = request.remote_ip
@random_hex = random_string = SecureRandom.hex
@transaction = pos.new_transaction(
:first_name => 'Michal',
:last_name => 'Kroszka',
:email => '[email protected]',
:client_ip => @ip,
:amount => 10000,
:desc => 'Transaction description'
)`
View:
<%= form_tag(@transaction.new_url) do %> <%= payu_hidden_fields(@transaction) %> <%= submit_tag 'Pay' %> <% end %>
Proszę o info co może być nie tak.
Cześć ponownie!
Michał, mam będę dozgonnie wdzięczny za jeszcze jedną wskazówkę.
Staram się zrobić formularz gdzie User po wypełnieniu danych zamówienia / do faktury jest od razu przekierowany z controllera Orders do strony PayU linkiem ze wszystkimi wymaganymi parametrami (po udanym utworzeniu Order'a oczywiście). Czy korzystając z Twojego gema jest możliwość odpowiedniej konstrukcji akcji Orders#create i czy mógłbyś podrzucić jakąś wskazówkę jak to zrobić? Czy może sugerujesz lepiej żeby zrobić osobny widok (np. Orders#payment) z proponowanym w dokumentacji formularzem?
Dodam jeszcze, że znalazłem wątek na SO gdzie pada stwierdzenie, że nie można zrobić redirecta POST z controllera (http://stackoverflow.com/questions/10614502/post-and-redirect-to-external-site-from-rails-controller), jednak czekam na Twoją opinię :)
class OrdersController < ApplicationController
before_action :authenticate_user!
def new
@order = Order.new
end
def create
@order = Order.new(order_params)
@order.buyer = current_user
@order.total_price = 100
@order.status = 1
if @order.save
pos = Payu::Pos.new pos_id: Payu['test'].pos_id,
pos_auth_key: Payu['test'].pos_auth_key,
key1: Payu['test'].key1,
key2: Payu['test'].key2,
add_signature: true
transaction = pos.new_transaction(first_name: 'John',
last_name: 'Doe',
email: '[email protected]',
client_ip: '1.2.3.4',
amount: 10000,
desc: 'Transaction description')
# Net::HTTP ??????
else
render :new
end
end
private
def order_params
params.require(:order).permit(:buyer_type, :buyer_name, :buyer_street,
:buyer_city, :buyer_postal_code, :buyer_tax_no)
end
end
Cześć!
Gem działa bardzo dobrze, ale mam problem z bezpieczeństwem, a mianowicie chciałbym trzymać klucze (pos_id, pos_auth_key, key1, key2) w zmiennych ENV zamiast bezpośrednio w pliku payu.yml. Chciałem zrobić to gemem Figaro, ale niestety podczas startu serwera aplikacja wyrzuca błąd walidacji (kod jaki stosuję poniżej). Czy znasz rozwiązanie tego problemu, jak trzymać klucze bezpiecznej, ale wciąż korzystać np. z Pay['main'] i nie przerabiać/nadpisywać kodu gema?
//payu.rb
Payu.load_pos_from_yaml(Rails.root.join('config', 'payu.yml.erb'))
//payu.yml.erb
main:
pos_id: <%= ENV['payu_umedpoznan_pos_id'] %>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.