Discussions

Ask a Question
ANSWERED

Problemi con account Sandbox su ambiente WooCommerce.

Salve, abbiamo un account Business su un nostro sito di staging basato su WooCommerce. Sito registrato sulla piattaforma, codice di attivazione generato e collegato correttamente. Dato che il ns cliente ha riscontrato problemi col pagamento tramite Satispay ho richiesto l'attivazione di un account Sandbox per poter fare dei test. Account attivato. Se però provo ad abilitare la versione "Sandbox" sul plugin, lo stesso mi genera un errore di configurazione dicendo che il codice di attivazione non è più valido... allo stesso tempo se non attivo la modalità sandbox e provo a pagare con l'account sandbox un ordine, il sistema mi dice che l'account non è abilitato per il pagamento. Ho provato a controllare nelle guide ma non ho trovato nulla di utile. Come posso fare per testare in modo semplice il funzionamento del flusso di pagamento in modalità sandbox? Grazie mille in anticipo.

Plugin VirtueMart 4

Buona sera, ho necessità di integrare il plugin di Satispay come metodo di pagamento all'interno della piattaforma VirtueMart 4. Desidero pertanto conoscere la vostra eventuale intenzione di sviluppare un plug-in dedicato per VirtueMart 4, analogamente a quanto avete realizzato per altre piattaforme. L'implementazione di questa funzionalità consentirebbe di offrire ai nostri clienti un'ulteriore modalità di pagamento, contribuendo così a migliorare l'esperienza d'acquisto nei siti di nostra produzione. Nell'attesa di un vostro cortese riscontro, porgo distinti saluti.

Web button Uncaught Error: Missing payment details

Ciao, ho seguito la guida <https://developers.satispay.com/docs/web-button-pay> e ho integrato il web button nella mia applicazione usando `<script src="https://staging.online.satispay.com/web-button.js"></script>` come specificato nella guida. Tuttavia ottengo l'errore: `Uncaught Error: Missing payment details` nella console del browser. A cosa è dovuto? Grazie, Daniele
ANSWERED

status pending

Salve, sto integrando nella mia appicazione web in Laravel il pagamento con Satispay, in particolare con la soluzione Web-redirect. Sembra funzionare correttamente ma ho un dubbio, quando compare la finestra con il qr code per effettuare il pagamento e clicco sulla x in alto per annullarlo, mi verrebbe da pensare che il pagamento dovrebbe passare allo stato CANCELED, invece passa allo stato PENDING e ci rimane. Ho sbagliato qualcosa o è giusto che sia in quello stato? Nella documentazione non ho trovato dettagli riguardanti lo stato dei pagamenti quindi non riesco a capire.
ANSWERED

Generazione qr code su sito per pagamento

Buongiorno, non so se sto procedendo correttamente all'utilizzo della APi di Satispay ma attraverso la libreria PHP che ho trovato qui: <https://github.com/satispay/gbusiness-api-php-sdk> sono arrivato a usare l'API di creazione pagamento (<https://developers.satispay.com/reference/create-a-payment>). Mi viene ritornato un record JSON che contiene questi dati: ``` object(stdClass)#2 (14) { ["id"]=> string(36) "d77eab64-00b7-49e3-9ca7-a9ff074603b0" ["code_identifier"]=> string(45) "S6Y-PAY--D77EAB64-00B7-49E3-9CA7-A9FF074603B0" ["type"]=> string(11) "TO_BUSINESS" ["amount_unit"]=> int(199) ["currency"]=> string(3) "EUR" ["status"]=> string(7) "PENDING" ["expired"]=> bool(false) ["metadata"]=> object(stdClass)#3 (0) { } ["sender"]=> object(stdClass)#4 (1) { ["type"]=> string(8) "CONSUMER" } ["receiver"]=> object(stdClass)#5 (2) { ["id"]=> string(36) "15061cfb-b655-46f1-97b3-bfe1c2fbc7c7" ["type"]=> string(4) "SHOP" } ["insert_date"]=> string(24) "2023-08-02T12:05:50.094Z" ["expire_date"]=> string(24) "2023-08-02T14:05:50.080Z" ["flow"]=> string(6) "CHARGE" ["redirect_url"]=> string(76) "https://staging-online.satispay.com/pay/d77eab64-00b7-49e3-9ca7-a9ff074603b0" } ``` Il redirect_url dovrebbe essere la pagina che contiene il qr code o mi sbaglio? Perchè se provo a visitare subito il link mi viene restituita una pagina di errore con "risorsa non trovata", quello che mi fa pensare è la data di scadenza che è praticamente il momento stesso in cui creo il pagamento. Dove sto sbagliando?
ANSWERED

Role: public

Salve, sto mandando una richiesta come da guida: <https://developers.satispay.com/reference/testinput> ho fatto anche il check per il digest e signature e mi risultano ok. Endpoint: <https://staging.authservices.satispay.com/wally-services/protocol/tests/signature> Method: POST Body: {"flow":"MATCH_CODE","amount_unit":100,"currency":"EUR"} Headers: accept: application/json host: staging.authservices.satispay.com date: Fri, 21 Jul 2023 12:50:05 +0000 authorization: Signature keyId ="**_ key ID _**", algorithm="rsa-sha256", headers="(request-target) host date digest", signature="JmRmfdIw2hwlykiU/XHCuHyZ5pAhRq/o4tqNKmeOrcLBbmgNCOeYuP54p4OSMHGyxbV4EAabMUy6+a+lS+UMmtxgnrF8ZGS4lqMNA7z0jw+fVoJ0FCmOJvwl5NYe9TtUgiXRo8i0kW0mVG0CGS/4Je3W5DESjxUDptPHuv0Js17MQAHZ9udVUQdemIuh/sqi3VwebKgm3+JNUBh3JsHxBAhSNRZo8VvKUYLKYbSpRP27ppj3tDcRj+9oEIcFmEaB0OaldFcsfTK5fBSzuA5LHsb+rzbG0sKnAcGra6xV9hamdJqNuJC3c9ONqjY7eUjBSBpVSZp+1CFnpAwdMyME7Kk3zu+8XB5+3W9l6+lXaWHjpKZLeaW25mTugGyguTWhOkI0Qf4sNsQyEzypHh7AiqTnjahNiVdKhS4Xn/aDRahbCQLFXlqdwimgaU22mScjtY7FFghnA1tL7db2fcvWIvwbgCKviPZLxm+IcR47yrlOtqN2xquxMUL3W7V6xZIiwpixYwAiIS9rz+ucPvh7Ftiay/f1JKOBMIX0svprbf46DIwk6fj3LCMe7mcAdBkZlKwV9K7XXSD2nJa/IQIU92E0usxxl2wPKBWChmbSr0MxNLaLhPzIiN58XqLCDIXEzCKgY2UjaRwApXAOcrLK3rZF8YYWSuJD+aLGNpnQz6Y=" Content-Type: application/json Il ritorno è { "authentication_key": { "role": "PUBLIC" }, "signature": { "algorithm": "RSA_SHA256", "headers": [ "(request-target)", "host", "date", "digest" ], "signature": "JmRmfdIw2hwlykiU/XHCuHyZ5pAhRq/o4tqNKmeOrcLBbmgNCOeYuP54p4OSMHGyxbV4EAabMUy6+a+lS+UMmtxgnrF8ZGS4lqMNA7z0jw+fVoJ0FCmOJvwl5NYe9TtUgiXRo8i0kW0mVG0CGS/4Je3W5DESjxUDptPHuv0Js17MQAHZ9udVUQdemIuh/sqi3VwebKgm3+JNUBh3JsHxBAhSNRZo8VvKUYLKYbSpRP27ppj3tDcRj+9oEIcFmEaB0OaldFcsfTK5fBSzuA5LHsb+rzbG0sKnAcGra6xV9hamdJqNuJC3c9ONqjY7eUjBSBpVSZp+1CFnpAwdMyME7Kk3zu+8XB5+3W9l6+lXaWHjpKZLeaW25mTugGyguTWhOkI0Qf4sNsQyEzypHh7AiqTnjahNiVdKhS4Xn/aDRahbCQLFXlqdwimgaU22mScjtY7FFghnA1tL7db2fcvWIvwbgCKviPZLxm+IcR47yrlOtqN2xquxMUL3W7V6xZIiwpixYwAiIS9rz+ucPvh7Ftiay/f1JKOBMIX0svprbf46DIwk6fj3LCMe7mcAdBkZlKwV9K7XXSD2nJa/IQIU92E0usxxl2wPKBWChmbSr0MxNLaLhPzIiN58XqLCDIXEzCKgY2UjaRwApXAOcrLK3rZF8YYWSuJD+aLGNpnQz6Y=", "resign_required": false, "iteration_count": 2617, "valid": false }, "signed_string": "(request-target): post /wally-services/protocol/tests/signature\\nhost: staging.authservices.satispay.com\\ndate: Fri, 21 Jul 2023 12:50:05 +0000\\ndigest: " } Avete modo di indicarmi cosa sto sbagliando. Grazie mille in anticipo.
ANSWERED

Delay to consider redirect form timed out

Hi, I am using Web-Redirect and Funds-Redirect, and I am wondering how long can the customer stays on the form and use it to pay? In other words, after how long can I consider the link unusable and consider that the customer abandoned the payment, leading to order cancellation? Thanks
ANSWERED

Differenza tra produzione e sviluppo

Buongiorno, ho sviluppato una pagina per l'acquisizione di donazioni e sto riscontrando una anomalia di comportamento tra il funzionamento dell'App di sviluppo e quella di produzione quando si effettua un pagamento da dispositivo mobile. Da desktop tutto funziona regolarmente mentre da mobile il comportamento cambia: il sistema rimanda all'appello regolarmente e la trasmissione avviene correttamente. Tuttavia tornando al browser, mentre in sviluppo il sistema correttamente rimanda alla pagina di ringraziamento, in produzione questo non avviene. Le uniche differenze tra i due sistemi sono l'url della pagina e i parametri di satispay che in un caso sono quelli di sviluppo e nell'altro quelli di produzione. Non riesco a capire che cosa non vada. Lato server non riscontro alcun errore nei log. Qualcuno ha idea di che cosa possa determinare questo comportamento? Grazie
ANSWERED

jimdo

Buonasera a tutti, c'è modo di integrare satispay in un sito creato con jimdo? Grazie
ANSWERED

Authorisation fails

Hello, we are trying to authorise against the staging environment following the guide in the API documentation with a generated keyId but we constantly get the public role back, meaning the authorisation failed: {"authentication_key":{"role":"PUBLIC"}, "status_code": 200} The authorisation is done through a python script which i attached below. I tried different body formatting because apparently the digest always turns out different and also not as expected as in the provided digest checker. ```python python import hashlib import base64 import json import requests from datetime import datetime from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.primitives.asymmetric import padding # Setup AUTH_HOST = "staging.authservices.satispay.com" KEY_ID = "XXX" # Body format 1 body = { "flow": "MATCH_CODE", "amount_unit": 100, "currency": "EUR" } body = json.dumps(body) # Body format 2 # body2 = "{\n \"flow\": \"MATCH_CODE\",\n \"amount_unit\": 100,\n \"currency\": \"EUR\"\n}" # Body format 3 # body3 = ''' # { # "flow": "MATCH_CODE", # "amount_unit": 100, # "currency": "EUR" # } # ''' # Create a digest of the body digest = base64.b64encode(hashlib.sha256(body.encode("utf-8")).digest()).decode() digest = f"SHA-256={digest}" print(digest) # Create string for signing now = datetime.strftime(datetime.utcnow(), "%a, %d %b %Y %H:%M:%S +0000") print(now) string = f"(request-target): post /wally-services/protocol/tests/signature\nhost: {AUTH_HOST}\n" \ f"date: {now}\ndigest: {digest}" # Same thing # string2 = f'''(request-target): post /wally-services/protocol/tests/signature # host: staging.authservices.satispay.com # date: {now} # digest: {digest}''' # Sign the string key_path = "/PATH/TO/PRIVATE/KEY" with open(key_path, "rb") as key_file: # Load the private key from a PEM file private_key = serialization.load_pem_private_key( key_file.read(), password=None # Replace with the password if the key is encrypted ) signature = private_key.sign( string.encode("utf-8"), padding.PKCS1v15(), hashes.SHA256() ) # Convert the signature to Base64 format signature_b64 = base64.b64encode(signature).decode() # Create Authorisation header authorisation_header = f'Signature keyId="{KEY_ID}", ' \ f'algorithm="rsa-sha256", ' \ f'headers="(request-target) host date digest", ' \ f'signature="{signature_b64}"' # Compose all headers headers = { "accept": "application/json", "content-type": "application/json", "host": AUTH_HOST, "date": now, "digest": digest, "authorisation": authorisation_header, } resp = requests.post( "https://staging.authservices.satispay.com/wally-services/protocol/tests/signature", headers=headers, data=body ) print(resp.text) print(resp.status_code) #YIELDS THE FOLLOWING #{"authentication_key":{"role":"PUBLIC"}} #200 ``` What are we doing wrong or did we oversee something? Can you please provide some help?