-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tutorial #2
Comments
Zdravím, podrobněji se na to podívám někdy v týdnu, nicméně tuším, že problém není v neodeslání dat - problém je v tom, že platba nebyla správně ověřena. Také se asi tedy podívám na GoPay-API-Example, nedávno jsem jej sám využíval jako šablonu a je možné, že jsem něco v šabloně neopravil a v ostré aplikaci ano. |
Diky, ona bude nejpravdepodobneji chyba u me, nejak se do toho nemohu dostat. |
Zkuste tohle, to je aktuální verze funkčního modelu Order class Order < ActiveRecord::Base
validates :client_name, :presence => true
validates :email,
:presence => true,
:format => {:with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i}
include AASM
aasm_column :state
aasm_initial_state :new
aasm_state :new
aasm_state :waiting
aasm_state :payment_done
aasm_state :timeouted
aasm_state :canceled
aasm_event :submit do
transitions :to => :waiting, :from => [:new]
end
aasm_event :cancel do
transitions :to => :canceled, :from => [:waiting]
end
aasm_event :timeout do
transitions :to => :timeouted, :from => [:waiting]
end
aasm_event :pay do
transitions :to => :payment_done, :from => [:waiting]
end
def name
"Pernamentka pro 6 vstupů"
end
def price
490000
end
def save_on_gopay
vs = "gopay_#{'test_' if configatron.environment != :production }#{GoPay.configuration.goid}"
payment = GoPay::EshopPayment.new({:variable_symbol => vs,
:total_price_in_cents => price.to_i,
:product_name => name,
:payment_channels => payment_method_code.present? ? [payment_method_code] : GoPay::PaymentMethod.all.map(&:code)}).create
self.payment_session_id = payment.payment_session_id
save!
end
def payment
vs = "gopay_#{'test_' if configatron.environment != :production }#{GoPay.configuration.goid}"
GoPay::EshopPayment.new(:variable_symbol => vs,
:total_price_in_cents => price.to_i,
:product_name => name,
:payment_session_id => payment_session_id,
:payment_channels => []).actual
end
def payment_attrs
response = payment.last_response
ppayment_chanel = response[:payment_channel].is_a?(Hash) ? "" : payment.last_response[:payment_channel]
{:payment_channel => ppayment_chanel,
:session_state => response[:session_state]}
end
def gopay_url
GoPay::Payment.new(:payment_session_id => payment_session_id,
:payment_channel => "eu_mb_a").gopay_url
end
end |
Porad stejne (musel jsem smazat validaci a 'configatron'). Config mam nastaveny do :test, tudiz by mela byt pouzivana testovaci brana a objednavky to vytvori ( http://cl.ly/2L3L1k2u0M191u1E382m ) |
Nene, nejsou. Máte aktuální verzi gemu? Tuším, že jedna z posledních oprav se týkala právě toho, že jel pouze v testovacím provozu... |
Mel jsem 0.0.5 z defactory.net, pak jsem tam dal 0.0.6 z github. undefined method orders_controller.rb:6 Zkusim si s tim jeste pohrat, treba na neco prijdu |
0.0.6 je určitě lepší, ta už je na ostrém provozu. Tohle by zrovna mělo fungovat jako první - podle mě pořád nemáte gem správně nakonfigurovaný. Příklad toho, co vložit do config/initializers/gopay.rb: GoPay.configure do |config|
config.environment = :test #důležité, pokud jste skutečně v testovacím módu GoPay
config.goid = "xxxxx"
config.secret = "yyyy"
config.success_url = "http://test.example.com/orders/success"
config.failed_url = "http://test.example.com/orders/failed"
end
|
Ano, presne takto to mam. Environment v test a zbytek jsem zkousel jak rovnou, tak pres yml |
Skoro mi z toho vychází, že máte problém někde v instalaci závislostí. Mně následující skript (umístěný pro bezproblémový bundle install přímo do rootu GoPay-API gemu) bezproblémově vyhodí seznam platebních metod. require 'rubygems'
require 'bundler/setup'
require 'gopay'
GoPay.configure do |config|
config.environment = :test
config.goid = "xxxxxxxx"
config.secret = "yyyyyyy"
config.success_url = "http://example.com/success"
config.failed_url = "http://example.com/failed"
end
puts GoPay::PaymentMethod.all.inspect
|
Maly uspech, je potreba mit wasabi ve verzi 2.0.0, s vyssi verzi to nejde a vyhazuje to error :"undefined method attribute' for nil:NilClass" Nyni uz mi to seznam platebnich metod vypise, ale vratil jsem se k prvnimu problemu: "undefined method `payment_session_id' for false:FalseClass" Jake pouzivate verze vsech gems vazanych ke gopay? |
Toto je můj Gemfile.lock: PATH
remote: .
specs:
gopay (0.0.6)
savon
GEM
remote: http://rubygems.org/
specs:
akami (1.0.0)
gyoku (>= 0.4.0)
builder (3.0.0)
gyoku (0.4.4)
builder (>= 2.1.2)
httpi (0.9.7)
rack
metaclass (0.0.1)
mocha (0.11.4)
metaclass (~> 0.0.1)
nokogiri (1.5.2)
nori (1.1.0)
rack (1.4.1)
savon (0.9.9)
akami (~> 1.0)
builder (>= 2.1.2)
gyoku (>= 0.4.0)
httpi (~> 0.9)
nokogiri (>= 1.4.0)
nori (~> 1.1)
wasabi (~> 2.1)
shoulda (3.0.1)
shoulda-context (~> 1.0.0)
shoulda-matchers (~> 1.0.0)
shoulda-context (1.0.0)
shoulda-matchers (1.0.0)
wasabi (2.1.0)
nokogiri (>= 1.4.0)
PLATFORMS
ruby
DEPENDENCIES
gopay!
mocha
shoulda |
Porad stejne... Started POST "/orders" for 127.0.0.1 at 2012-06-15 19:25:12 +0200
Processing by OrdersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"SUSs32LUQeofenGuMWP9GHnmGx4xdTQiNGpGm4Qxj8s=", "order"=>{"name"=>"", "payment_method_code"=>"", "price"=>""}, "commit"=>"Vytvořit platbu na GoPay bráně"}
(0.1ms) begin transaction
SQL (1.1ms) INSERT INTO "orders" ("created_at", "delivery_data", "name", "payed", "payment_data", "payment_method_code", "payment_session_id", "price", "state", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["created_at", Fri, 15 Jun 2012 17:25:13 UTC +00:00], ["delivery_data", nil], ["name", ""], ["payed", false], ["payment_data", nil], ["payment_method_code", ""], ["payment_session_id", nil], ["price", nil], ["state", "new"], ["updated_at", Fri, 15 Jun 2012 17:25:13 UTC +00:00]]
(1.7ms) commit transaction
Completed 500 Internal Server Error in 1657ms
NoMethodError (undefined method `payment_session_id' for false:FalseClass):
app/models/order.rb:49:in `save_on_gopay'
app/controllers/orders_controller.rb:12:in `create' Nevraci mi to payment_session_id. Kdyz upravim EshopPayment aby vracel pouze response[:payment_session_id], tak mi to vrati u kazde objednavky: "f" |
Ještě to řešíte? Asi budu mít brzo hotový upgrade na novou verzí paygate... |
Zatím nijak, není to nutné. Až budete mít hotový upgrade, určitě to rád zkusím znovu. |
Dobry den,
bylo by mozne pripravit nejaky kratsi tutorial?
Pokusil jsem se to rozjet na GoPay-API-Example. To se mi podarilo po par upravach rozjet, nicmene jsem se zasekl na:
undefined method `payment_session_id' for false:FalseClass ( http://cl.ly/2L1O3H1r3D0n1x3b2z2l )
Predpokladam ze je to zpusobeno tim, ze data nejsou odesilany na testovaci branu, proto mi to nevraci payment_session_id, mozna take ne.
Diky za odpoved
The text was updated successfully, but these errors were encountered: