PDA

View Full Version : Payment Gateway e Server PHP su Linux


Herod2k
11-10-2005, 11:42
Ho a che fare in questi giorni con un sito che dovrebbe diventare un sito e-commerce il sito è in php con db mysql il tutto posto su un server Linux (credo Debian).

Stavo sudiando la documentazione quando arriva ad un punto in cui è scritto:
La piattaforma Payment Gateway del Consorzio Triveneto S.p.A. prevede la presenza di alcune comunicazioni dirette col server del Merchant per portare a termine le transazioni. Questo scambio di messaggi può essere implementato in due modi, tramite l’installazione di un apposito plug-in oppure creando una propria interfaccia di comunicazione:
Il plug-in si chiama e24PaymentPipe: è di facile integrazione ed è compatibile con tutti i siti sviluppati in Java, C/C++, ColdFusion, ActiveX/COM, VB, e ASP.

E allora mi è salito il dubbio: visto che il server dove è il sito è apache su linux, funzionerà 'sto plug-in?
Qualcuno di voi ha mai provato? Non vorrei studiarmi 38 pagine di manuale sulle transazioni e ritrovarmi con un sistema che non funziona, qualcuno di voi ha già avuto esperienze con questo payment gateway?

(Ma non potrebbero fare tutti come banca sella? :muro: :muro: :muro: :muro: )

cionci
11-10-2005, 19:27
E' una domandona...solitamente quello che chiamano plug-in è un form da implementare via HTML per inviare i dati secondo una certo schema al payment gateway che è su un server esterno....

Fatti inviare dei file con delle prove...

Herod2k
12-10-2005, 11:12
allora sono andato avanti a studiarmi il manuale mi sono fatto dare il plugin che consiste in files DLL e files ASP
Queste sono le istruzioni:

Installazione sito demo
Installare Microsoft IIS, se non presente.
Copiare i files forniti nel package DEMO_ASP.zip in una nuova directory, “c:\inetpub\wwwroot\demo”
Tramite la MMC di IIS creare un nuovo sito “MerchantDemo”:
a.Nella finestra “Properties->Home Directory” impostare nel Local Path il percorso della directory “demo”
b.In Execute Permissions impostare “Scripts only”
Ristartare IIS
Aprire un browser e puntare all’URL: http://localhost/demo/index.asp

e credo che io questo non possa farlo....;)
Poi leggendo meglio ho scoperto che esistono due tipi di transazioni buy e pure-buy.
La prima usa la dll la seconda no.
Vi posto la loro pagina ASP che fa il pure-buy.

<%@ Language=vbScript%>

<%

function separa(stringa,pid,url)



pid = ""

url = ""



dim separati

dim chrCarattere



chrCarattere = ":"



separati = split(stringa, chrCarattere, 2)



pid = separati(0)

url = separati(1)



end function





dim xmlhttp, DataToSend, DataToSend1, DataToSend2, DataToSend3, URL, varResponse, varPaymentID, varRedirectURL

dim ID, Password, Action, Amt, ResponseURL, ErrorUrl, TrackID



ID = "89025555"

Password = "test"

Action = "4"

Amt = Request.form("AMOUNT")



'Impostare i seguenti URL con quelli corretti del proprio server

ResponseURL = "http://www.my.server/Colors/Receipt.asp"

ErrorURL = "http://www.my.server/Colors/Error.asp"



TrackId = "Order-00001"



DataToSend1 = "id=" + ID + "&password=" + Password + "&action=" + Action + "&amt=" + Amt + "&"

DataToSend2 = "currencycode=978&langid=USA&responseURL=" + ResponseURL

DataToSend3 = "&errorURL=" + ErrorURL + "&trackid=" + TrackID + "&udf1=AA&udf2=BB&udf3=CC&udf4=DD&udf5=EE"



DataToSend = DataToSend1 + DataToSend2 + DataToSend3



URL = "http://test4.constriv.com/cg301/servlet/PaymentInitHTTPServlet"



set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP") 'da usare solo se XMLParser è installato sulla macchina

'Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP") 'Altrimenti usare questo metodo



'Apro la connessione

xmlhttp.Open "POST",URL,false



'Imposto gli headers HTTP

xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"



'Invio i dati

xmlhttp.send DataToSend



'Ricevo la risposta dal server

'Response.ContentType = "text/xml"

varResponse = xmlhttp.ResponseText



'Libero le risorse

Set xmlhttp = nothing



'Response.write varResponse 'Solo per Debug



'Separo il contenuto della stringa ricevuta

call separa(varResponse,varPaymentID,varRedirectURL)



'Creo l'URL di redirezione

varRedirectURL = varRedirectURL & "?PaymentID=" & varPaymentId



'Redirezione finale del browser sulla HPP

Response.Redirect varRedirectURL



%>


In "teoria" se io traduco questo in php "dovrei riuscire" a comunicare alla banca i dati della transazione, però comunque rimane una teoria...
Ho uploadato il tutto su un server IIS per fare una prova e vi posso dire che sto Payment Gateway fa un po' schifo... funziona solo con explorer, mozilla e Safari mi danno problemi, ma dove li trovano i programmatori questi?

Guarda se non mi tocca fargli cambiare banca...