[Logo] Spazio Aperto Sella.it
[Register] Registrati   [Login] Login    
[Search] Ricerca   [Recent Topics] Argomenti Recenti   [Hottest Topics] Argomenti vivaci  
[Banner Pubblicitario]
iFrame e token  XML
Indice dei Forum » GestPay Sviluppatori
Autore Messaggio
CloudPark


Registrato: 21/04/2014 18:27:22
Messaggi: 6
Offline

Buongiorno,

avrei bisogno di alcune delucidazioni per quanto riguarda l'uso dei token all'interno di un approccio iFrame. Una volta ottenuto il token, come posso utilizzarlo per passare direttamente all'autenticazione 3D da parte di verified by visa o matercard securecode? Eventualmente potrei aver bisogno di permettere di inserire all'utente unicamente il codice CVV, quindi avrei bisogno di continuare a utilizzare l'approccio iFrame. Vi ringrazio anticipatamente per la risposta.

Buona giornata

C.S
paolo.mologni


Registrato: 22/03/2013 09:49:31
Messaggi: 420
Offline

Buongiorno,
una volta generato il token può essere utilizzato al posto del numero di carta all'interno del metodo callPagamS2S del web service WSs2s.
Il metodo callPagamS2S consente anche di inviare il CVV, in caso di carte abilitate ai protocolli 3D (Visa VBV e Mastercard Securecode), analogamente a quanto avviene con iFrame, la prima richiesta di autorizzazione risponderà con errore 8006, VBVRisp e TransKey.
Il titolare dovrà essere inviato all'autenticazione e successivamente il pagamento dovrà essere finalizzato tramite una seconda chiamata al metodo callPagamS2S inviando PARes e Transkey.

La documentazione tecnica é disponibile ai seguenti link:

https://www.gestpay.it/gestpay/specifiche-tecniche/index.jsp

https://www.gestpay.it/gestpay/doc/specifiche-tecniche/unlimited/gestpay_specifiche_tecniche_transazioni_server_server_webservices_2012.pdf

https://www.gestpay.it/gestpay/doc/specifiche-tecniche/tokenization/gestpay_tokenization_technical_specifications_for_merchants.pdf

Paolo Mologni


CloudPark


Registrato: 21/04/2014 18:27:22
Messaggi: 6
Offline

Buongiorno, ho capito, quindi nel mio script dovrei inviare una callPagamS2s che poi mi dovrebbe reindirazzere come se avesse ricevuto un error 8006 nel caso di autenticazione 3d e rientrare nel workflow classico. Vedo però sul forum thread che indicano il possibile utilizzo del WS solo ad account unlimited. Mi confermate quindi che devo cambiare tipo di sottoscrizione per poter utilizzare il webservice per offrire tale esperienza utente al mio applicativo? L'unica alternativa sarebbe rinunciare completamente alla tokenizzazione e fare immettere direttamente i vari campi all'utente? Attualmente, cercando di chiamare la funzione tramite il client nusoap mi viene restituito l'errore 1133: Mismatched tag. Il mio codice esercente di test è GESPAY59476.

Cordiali saluti,

C.S.
paolo.mologni


Registrato: 22/03/2013 09:49:31
Messaggi: 420
Offline

[quote]Mi confermate quindi che devo cambiare tipo di sottoscrizione per poter utilizzare il webservice per offrire tale esperienza utente al mio applicativo?[/quote]

L'utilizzo delle funzionalità menzionate é possibile solamente con versione Unlimited

[quote]L'unica alternativa sarebbe rinunciare completamente alla tokenizzazione e fare immettere direttamente i vari campi all'utente?[/quote]
Si, utilizzando la pagina di pagamento residente sui server di GestPay


[quote]Attualmente, cercando di chiamare la funzione tramite il client nusoap mi viene restituito l'errore 1133: Mismatched tag. [/quote]

Le chiederei di verificare che il nome dei parametri inviati sia corrispondente a quello indicato nel wsdl.

https://testecomm.sella.it/gestpay/gestpayws/WSCryptDecrypt.asmx?wsdl



Paolo Mologni
CloudPark


Registrato: 21/04/2014 18:27:22
Messaggi: 6
Offline

Scusi ma sto cominciando a non capire più nulla... Per richiamare la funzione callPagamS2S non dovrei fare riferimento a questo servizio https://testecomm.sella.it/gestpay/gestpayws/WSs2s.asmx?wsdl ?

Inoltre dopo aver scritto a ecommerce@sella.it mi è stato riferito che anche con account Starter e professional è possibile accedere al web service. Inoltre: l'approccio iFrame esclude gli altri a livello di sottoscrizione? Voglio dire: se mi sono iscritto e ho richiesto l'attivazione della funzionalità iFrame, le altre modalità di comunicazione server to server mi sono escluse?

C.S.
paolo.mologni


Registrato: 22/03/2013 09:49:31
Messaggi: 420
Offline

[quote]Per richiamare la funzione callPagamS2S non dovrei fare riferimento a questo servizio https://testecomm.sella.it/gestpay/gestpayws/WSs2s.asmx?wsdl ?[/quote]
Corretto.
Nel messaggio precedente non era specificato il web service che restituiva l'errore 1133, ho pensato che si riferisse al web service per generare la stringa necessaria per utilizzare iFrame WSCryptDecrypt.

[quote]Inoltre dopo aver scritto a ecommerce@sella.it mi è stato riferito che anche con account Starter e professional è possibile accedere al web service. [/quote]

Credo che si riferissero al web service WSCryptDecrypt, necessario per poter generare la stringa crittografata richiesta dalla pagina di pagamento di GestPay.

L'utilizzo delle funzionalità messe a disposizione tramite il web service WSs2s é consentito alle versioni Unlimited.

[quote]Inoltre: l'approccio iFrame esclude gli altri a livello di sottoscrizione? [/quote]

No, iFrame é un servizio accessorio, come la funzionalità di tokenization

Qui di seguito il link con i dettagli della versione unlimited ed i prezzi dei servizi accessori

https://www.gestpay.it/gestpay/offerta/unlimited.jsp

Paolo Mologni
CloudPark


Registrato: 21/04/2014 18:27:22
Messaggi: 6
Offline

Buongiorno,

Scusate ma non riesco proprio a venirne fuori e la documentazione non mi aiuta a comprendere come utilizzare i webservice. Questo è lo scenario: Utilizzo iFrame per eseguire un pagamento da iPhone tramite carta di credito. Richiedo la tokenizzazione dell'utente al webservice, che mi restituisce correttamente un token MASKEDPAN che riesco già a salvare nel DB. A questo punto, se l'utente vorrà effettuare un secondo pagamento, voglio che sia reindirizzato direttamente alla pagina della banca emittente la carta che richiede l'autenticazione 3d. Come faccio ad ottenere questo risultato? Ho provato chiamando la funzione callPagamS2S, ma non vado molto lontano in quanto mi risponde parametro B mancante, ovviamente il parametro PAY1_TOKEN è impostato. Ho provato a reindirizzare alla pagina di pagamento fornendo come parametro b la stringa criptata tramite l'apposito servizio, all'interno della quale sono presenti i parametri PAY1_CVV e PAY1_TOKEN, ma apre la pagina di inserimento dati della carta di credito. I parametri sono impostati correttamente, in quanto viene letto l'ammontare della spesa e anche la moneta, oltre il nome dell'esercente. Per favore, potreste indicarmi passo passo come procedere, dato che ne l'esempio PHP è delucidante a riguardo e nemmeno la documentazione è chiara su questa procedura, a mio avviso. Vi ringrazio anticipatamente!

Cordiali saluti,

C.S.
paolo.mologni


Registrato: 22/03/2013 09:49:31
Messaggi: 420
Offline

[quote]Utilizzo iFrame per eseguire un pagamento da iPhone tramite carta di credito. Richiedo la tokenizzazione dell'utente al webservice, che mi restituisce correttamente un token MASKEDPAN che riesco già a salvare nel DB. A questo punto, se l'utente vorrà effettuare un secondo pagamento, voglio che sia reindirizzato direttamente alla pagina della banca emittente la carta che richiede l'autenticazione 3d. Come faccio ad ottenere questo risultato? [/quote]

[b]Tramite l'utilizzo del metodo callPagams2s del web service WSs2s[/b], valorizzando il tag tokenValue (che corrisponde al parametro Pay1_Token)

qui il link alla documentazione tecnica:
https://www.gestpay.it/gestpay/doc/specifiche-tecniche/unlimited/gestpay_specifiche_tecniche_transazioni_server_server_webservices_2012.pdf

[quote]Ho provato chiamando la funzione callPagamS2S, ma non vado molto lontano in quanto mi risponde parametro B mancante[/quote]

L'errore che indica è restituito dalla pagina di pagamento non dal web service WSs2s.

Il web service (https://ecomms2s.sella.it/gestpay/gestpayws/wss2s.asmx) si aspetta di ricevere un file XML formattato come indicato nel rispettivo wsdl

https://ecomms2s.sella.it/gestpay/gestpayws/wss2s.asmx?wsdl

<s:element minOccurs="0" maxOccurs="1" name="shopLogin" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="uicCode" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="amount" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="shopTransactionId" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="cardNumber" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="expiryMonth" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="expiryYear" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="buyerName" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="buyerEmail" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="languageId" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="cvv" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="min" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="transKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="PARes" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="customInfo" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="IDEA" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="requestToken" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="tokenValue" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="redFraudPrevention" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Red_CustomerInfo" type="tns:RedCustomerInfo"/>
<s:element minOccurs="0" maxOccurs="1" name="Red_ShippingInfo" type="tns:RedShippingInfo"/>
<s:element minOccurs="0" maxOccurs="1" name="Red_BillingInfo" type="tns:RedBillingInfo"/>
<s:element minOccurs="0" maxOccurs="1" name="Red_CustomerData" type="tns:RedCustomerData"/>
<s:element minOccurs="0" maxOccurs="1" name="Red_CustomInfo" type="tns:RedCustomInfo"/>
<s:element minOccurs="0" maxOccurs="1" name="Red_Items" type="tns:RedItems"/>

[quote]Ho provato a reindirizzare alla pagina di pagamento fornendo come parametro b la stringa criptata tramite l'apposito servizio, all'interno della quale sono presenti i parametri PAY1_CVV e PAY1_TOKEN, ma apre la pagina di inserimento dati della carta di credito.[/quote]
Questa operazione serve se il titolare di carta viene inviato alla pagina di pagamento di GestPay, in questo caso lei é in possesso del token relativo alla carta e quindi non ha senso inviare il cliente alla pagina di pagamento di GestPay.

La chiamata da effettuare é relativa al metodo callPagams2s del web service WSs2s, la chiamata restituirà errore 8006 (che significa che la carta è risultata enrolled e pertanto il titolare deve autenticarsi), TansKey e VBVRisp.

Successivamente sarà necessario inviare il titolare verso l'URL

https://ecomm.sella.it/pagam/pagam3d.aspx

con i seguenti parametri:

a) shoplogin
b) VBVRisp
c) URL di landing post autenticazione

Il titolare effettuerà l'autenticazione e verrà inviato all'URL indicata nel parametro C.

Nella landing page post autenticazione sarà necessario recuperare il valore del parametro inviato dalla pagina di autenticazione PARes ed effettuare una seconda chiamata al metodo callPagamS2S valorizzando i seguenti tag definiti nel WSLD:

<s:element minOccurs="0" maxOccurs="1" name="shopLogin" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="uicCode" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="amount" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="shopTransactionId" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="transKey" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="PARes" type="s:string"/>

il valore del parametro TransKey é quello ricevuto in risposta alla prima chiamata del metodo callPagamS2S

il valore del parametro PARes é quello recuperato nella landing page post autenticazione

La chiamata cosi definita finalizzerà la richiesta di autorizzazione restituendone l'esito.

Ricapitolando:

1) Primo pagamento e generazione del Token (iFrame)

1.a chiamata al web service WSCryptDecrypt per generazione stringa crittografata per pagina iFrame
1.b richiesta autorizzazione tramite iFrame e recupero Token

2) Pagamento con Token

2.a richiesta di autorizzazione tramite metodo callPagamS2S del web service WSs2s
2.b autenticazione titolare
2.c finalizzazione richiesta di autorizzazione post autenticazione tramite chiamata al metodo callPagamS2S del web service WSs2s


Paolo Mologni
CloudPark


Registrato: 21/04/2014 18:27:22
Messaggi: 6
Offline

Buongiorno,

chiedo scusa per l'insistenza, ma mi vedo costretto a scrivere nuovamente.

questo è l'estratto di codice in PHP che utilizzo per la chiamata della funzione callPagamS2S:

$wsdl = "https://testecomm.sella.it/gestpay/gestpayws/WSs2s.asmx?WSDL";

$client = new nusoap_client($wsdl,true);

$param = array('shopLogin' => $shopLogin, 'PAY1_UICCODE' => $currency, 'PAY1_AMOUNT' => $amount, 'PAY1_SHOPTRANSACTIONID' => $shopTransactionID,'PAY1_TOKEN'=>$token,'PAY1_CVV'=>'253'; //,'buyerName' => '', 'buyerEmail' => '', 'languageId' => '1', 'customInfo' => '';

$objectresult = $client->call('callPagamS2S', $param);
$err = $client->getError();
if ($err) {

echo '<h2>Error</h2><pre>' . $err . '</pre>';
}
else {
echo json_encode($objectresult);
return;
}

e questo è la risposta che ricevo tradotta in JSON:

{
"callPagamS2SResult":
{
"GestPayS2S":
{
"AlertCode":
"",
"AlertDescription":
"",
"Amount":
"",
"AuthorizationCode":
"",
"BankTransactionID":
"",
"Buyer":
{
"BuyerEmail":
"",
"BuyerName":
""
},
"Country":
"",
"Currency":
"",
"CustomInfo":
"",
"ErrorCode":
"1133",
"ErrorDescription":
"Chiamata non accettata, manca il parametro B",
"ShopTransactionID":
"",
"TDLevel":
"",
"TransactionKey":
"0",
"TransactionResult":
"KO",
"TransactionType":
"PAGAM",
"VbV":
{
"VbVBuyer":
"KO",
"VbVFlag":
"",
"VbVRisp":
""
}
}
}
}

se provo ad utilizzare i parametri coi nomi specificati nel wsdl mi restituisce sempre l'errore o di parametro mancante o di nome parametro errato.
Potete illuminarmi per favore? Ho un'urgenza di consegna abbastanza imminente e vorrei uscire da questo intoppo...
Vi ringrazio anticipatamente.

Cordiali saluti,

C.S.
paolo.mologni


Registrato: 22/03/2013 09:49:31
Messaggi: 420
Offline

Buongiorno,
l'errore é nella definizione dei nomi dei parametri da inviare, i nomi devono essere quelli relativi all'XML

es.

$param = array('shopLogin' => $shopLogin, 'uicCode' => $currency, 'amount' => $amount, 'shopTransactionId' => $shopTransactionID, 'tokenValue' =>$token,'cvv'=>'253');



Paolo Mologni
CloudPark


Registrato: 21/04/2014 18:27:22
Messaggi: 6
Offline

Buongiorno,

ho provato a inserire i parametri come da voi indicati, anche se tale prova era già stata fatta. Questa è la risposta che ottengo tradotta in json:

{
"callPagamS2SResult":
{
"GestPayS2S":
{
"AlertCode":
"",
"AlertDescription":
"",
"Amount":
"",
"AuthorizationCode":
"",
"BankTransactionID":
"",
"Buyer":
{
"BuyerEmail":
"",
"BuyerName":
""
},
"Country":
"",
"Currency":
"",
"CustomInfo":
"",
"ErrorCode":
"1107",
"ErrorDescription":
"Nome parametro non previsto. Verificare la configurazione Campi e Parametri nel Back Office.",
"ShopTransactionID":
"",
"TDLevel":
"",
"TransactionKey":
"0",
"TransactionResult":
"KO",
"TransactionType":
"PAGAM",
"VbV":
{
"VbVBuyer":
"KO",
"VbVFlag":
"",
"VbVRisp":
""
}
}
}
}

Vi ringrazio anticipatamente per la risposta,

Cordiali saluti,

C.S.
paolo.mologni


Registrato: 22/03/2013 09:49:31
Messaggi: 420
Offline

L'errore "1107 - Nome parametro non previsto" indica che il negozio non è configurato correttamente per ricevere i parametri inviati nella richiesta di autorizzazione.

Le chiederei di contattare il nostro servizio di assistenza clienti, al numero 015.24.34.640 oppure inviando un messaggio all'indirizzo ecommerce@sella.it , indicando il codice esercente utilizzato per verificare le configurazioni del negozio rispetto alle funzionalità iFrame, autorizzazione server to server e Tokenization.


Paolo Mologni
francesco.sessa@eclettica


Registrato: 09/05/2014 11:50:18
Messaggi: 11
Offline

Salve,
anch'io sono interessato a questo approccio ma avrei alcune domande, in particolare:
- una volta ottenuto il token, è possibile effettuare pagamenti ricorrenti senza passare quindi attraverso l'autenticazione 3d?
- è possibile ottenere il token anche attraverso la procedura "standard" [non iFrame] o solo tramite WS2S e iFrame?
- quanto e in che modo è possibile customizzare la pagina nell'iFrame?
- come attivare il servizio iFrame, tokenizzazione e pagamenti ricorrenti?

Grazie!
paolo.mologni


Registrato: 22/03/2013 09:49:31
Messaggi: 420
Offline

Buongiorno,

[quote]- una volta ottenuto il token, è possibile effettuare pagamenti ricorrenti senza passare quindi attraverso l'autenticazione 3d? [/quote]

Attualmente la funzionalità non permette di discriminare i pagamenti ricorrenti, pertanto se il negozio abilitato alla funzionalità di tokenization é abilitato ai protocolli 3D in caso di carte enrolled sarà necessaria l'autenticazione del titolare per poter inoltrare la richiesta di autorizzazione.

[quote]è possibile ottenere il token anche attraverso la procedura "standard" [non iFrame] o solo tramite WS2S e iFrame? [/quote]

la generazione dei token é consentita solamente attraverso l'utilizzo di iFrame e WSS2S

[quote]quanto e in che modo è possibile customizzare la pagina nell'iFrame? [/quote]

la pagina iFrame verrà inclusa nella pagina di checkout in modo non visibile al titolare della carta, le comunicazioni tra la pagina di check out e la pagina iFrame residente su GestPay avverrà tramite javascript, pertanto la pagina di check out potrà essere sviluppata senza nessun vincolo rispetto al layout.

[quote]come attivare il servizio iFrame, tokenizzazione e pagamenti ricorrenti? [/quote]

può contattare il nostro servizio di assistenza clienti al numero +39 015.24.34.640 oppure inviare una email all'indirizzo ecommerce@sella.it richiedendo l'abilitazione alle funzionalità desiderate, le comunicheranno l'iter da seguire per poterle attivare sul negozio desiderato.




Paolo Mologni
francesco.sessa@eclettica


Registrato: 09/05/2014 11:50:18
Messaggi: 11
Offline

Grazie per la celere risposta!

giusto per un ulteriore [e forse superfluo] chiarimento, mi puoi confermare che in caso di carte 3d enrolled e di pagamento con il meccanismo di tokenization, ottenendo il token tramite iframe all'atto del primo pagamento [ovviamente effettuando anche l'autorizzazione sul sito Visa-Mastercard-Cartasì-Pincopallino], anche per i successivi pagamenti sarà necessaria l'autorizzazione sul sito di Visa-Mastercard-Cartasì-Pincopallino?

In tal caso come si possono gestire i pagamenti successivi tramite WS2S? Dovrei effettuare comunque un redirect esterno?

Non esiste alcun modo per gestire i pagamenti ricorrenti?

Grazie ancora!
 
Indice dei Forum » GestPay Sviluppatori
Vai a:   
E.t.v.s.p.b WLS11G