Discussions
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.
Posted by Max Cavalli Cocch 3 months ago
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.
Posted by Massimo 4 months ago
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
Posted by Daniele Verì 4 months ago
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.
Posted by Francesca 4 months ago
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?
Posted by Marco 4 months ago
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.
Posted by Maurizio Grifasi 5 months ago
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
Posted by Vincent 6 months ago
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
Posted by Alberto Almagioni 7 months ago
jimdo
Buonasera a tutti, c'è modo di integrare satispay in un sito creato con jimdo?
Grazie
Posted by Davide 7 months ago
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?
Posted by Christoph Koch 7 months ago