Medlar aiuta gli imprenditori ad usare il Web come strumento per la crescita aziendale.
Chi Siamo

Lascia la tua email

Ti contatteremo per farti scoprire come persone appassionate e tecnologie giuste possono aiutare la tua impresa a crescere, di più e meglio.

RGestPay

Una libreria per il commercio elettronico

Durante lo sviluppo del sito di commercio elettronico per il cliente That's Gentile è nata la necessità di potersi interfacciare con GestPay, il servizio di commercio elettronico di Banca Sella, uno dei più diffusi in Italia.

EasyNolo fornisce una classe Java, GestPayCryptHS, per gestire questo tipo di transazioni, ma noi preferiamo lavorare in Ruby, e così abbiamo scritto RGestPay.

RGestPay è un porting in Ruby delle funzionalità offerte da GestPayCryptHS. Porting solo delle funzionalità, e non della classe, perché abbiamo un pò cambiato l'approccio al problema, rendendolo più "Ruby".

Struttura di RGestPay

RGestPay è un modulo che contiene due classi:

GestPay::TransactionData
GestPay::CryptRequest

GestPay::TransactionData contiene informazioni relative alla transazione, ai dati del cliente e alle risposte del server, mentre GestPay::CryptRequest si occupa di gestire gli scambi di informazioni crittate con il server.

Utilizzo

require 'gest_pay'

# Istanziamo un nuovo CryptRequest
c = GestPay::CryptRequest.new(il_mio_login)

# Istanziamo un nuovo TransactionData
# Amount va indicato secondo il formato nnn.xx 
# Currency richiede un codice, 242 corrisponde  
# all'euro, gli altri codici sono disponibili 
# nel manuale di integrazione di GestPay, che 
# potete trovare su EasyNolo.it
t = GestPay::TransactionData.new(
      :amount => 1.34  
      :currency => 242 
      :shop_transaction_id => "id_transazione"
    )
    
# Validiamo i dati della transazione ed otteniamo 
# la stringa crittata
t = c.encrypt(t)

# Controlliamo che tutto sia andato a buon fine e  
# non ci siano errori
unless t[:error_code].nil?
  raise "ERROR"
end

# Questa è la stringa crittata che deve essere usata 
# come parametro della chiamata al sito di GestPay 
# per ilpagamento vero e proprio
puts t[:encrypted_str] # => "VERY LONG STRING"

# Una volta che l'utente effettua la transazione  
# otteniamo da GestPay una stringa crittata (sia 
# mediante la chiamata s2s che mediante la
# chiamata ok / notok)
t = c.decrypt("enorme_stringa_crittata")
puts t[:transaction_result] # => "OK"

Licenza

RGestPay è rilasciato con la GNU General Public License.

Download