Καλημέρα
Σε συνέχεια προηγούμενου post που έχει κλείσει
- Ερώτηση
Για κάθε μια επιτυχημένη πληρωμή το σύστημα σας επιστρέφει στην σελίδα που έχουμε δηλώσει ( σελίδα επιτυχημένης συναλλαγής ) . Υπάρχει κάποια περίπτωση που το σύστημα σας επιστρέφει στην σελίδα επιτυχημένης συναλλαγής χωρίς η συναλλαγή να είναι επιτυχημένη = έχει γίνει η χρέωση ?
Όσο αφορά την επιλογή Ακύρωσης της πληρωμής είναι μια πρόταση που θα μπορούσε να κάνει το σύστημα σας ποιο φιλικό και σωστό. Θα μπορούσατε να το προωθήσετε σαν ιδέα στο αντίστοιχο τμήμα που ασχολείται με την υλοποίησης του συστήματος σας.
- Η απάντηση λάθους ErrorCode":400, μπορείτε να μου πείτε τι σημαίνει ?
- Έχετε κάποια παράδειγμα κλήσης GetTransactions call σε κάποια γλώσσα προγραμματισμού ? Θα με βοηθούσατε εάν είχατε ένα παράδειγμα σε γλώσσα classic asp. Στο github δεν υπάρχουν παραδείγματα GetTransactions η τουλάχιστον εγώ δεν έχω βρει κάτι.
Σας επισυνάπτω τον κώδικα της σελίδας επιτυχημένης πληρωμής /bp/bankViva_ok.asp
Και όπως έρχεται από το σύστημα σας η επιστροφή στην σελίδα επιτυχημένης πληρωμής
http://www.euroalarm.2easy.gr/bp/bankViva_ok.asp?t=87b27951-12f5-4253-bdff-4e43ee7b9bf3&s=8243103019172607&lang=el-GR
bankViva_ok.asp
<%if sxNobody then%>
<%end if
openConn
function NzInt(int)
NzInt = int
if isNull(int) OR isEmpty(int) OR lenb(int) = 0 OR Not isNumeric(int) then
NzInt = 0
end if
end function
Dim radioContinue
radioContinue = True
Dim radioVivaReturn
radioVivaReturn = True
Dim OrderCode, strTransactionID, strLang
OrderCode = request.querystring("s")
strTransactionID = request.querystring("t")
strLang = request.querystring("Lang")
if OrderCode = "" then radioVivaReturn = False
if radioVivaReturn then
if radioContinue then
sql = "SELECT * FROM PB_Viva WHERE InUse = True "
set rs = conn.execute(sql)
if not rs.eof then
strMerchanID = rs("MerchanID")
strAPIKey = rs("APIKey")
strPublicKey = rs("PublicKey")
strVivaUrltTansaction = rs("VivaUrlTransaction")
strVivaUrlGetTransaction = rs("VivaUrlGetTransaction")
radioContinue = True
else
radioContinue = False
end if
rs.close
set rs = nothing
end if
if radioContinue then
Set http = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
http.open "GET", strVivaUrlGetTransaction, False', strMerchanID, strAPIKey
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.setRequestHeader "Authorization", "Basic "&Base64Encode(strMerchanID&":"&strAPIKey)
response.write "ordercode=" & ordercode & " strTransactionID=" & strTransactionID & " MerchanID=" & strMerchanID &" APIkey=" & strAPIKey & " url=" & strVivaUrlGetTransaction &"
"
http.send("ordercode=" & OrderCode )
response.write http.responsetext
Response.End
end if
%>
και η απάντηση που παίρνω είναι
α) τα στοιχεία που χρησιμοποιώ είναι τα παρακάτω για την κλήση
response.write "ordercode=" & ordercode & " strTransactionID=" & strTransactionID & " MerchanID=" & strMerchanID &" APIkey=" & strAPIKey & " url=" & strVivaUrlGetTransaction &"
"
ordercode=8243103019172607
strTransactionID=87b27951-12f5-4253-bdff-4e43ee7b9bf3 MerchanID=f9f3f5f4-f222-48c9-be5a-ea6ae727e88a
APIkey=;d]z7:
url=http://demo.vivapayments.com/api/transactions/?
response.write http.responsetext
{"Transactions":[],"ErrorCode":400,"ErrorText":"Empty options","TimeStamp":"2016-02-10T10:49:03.228726+02:00"}
Αυτό που υποψιάζομαι ότι είναι το λάθος είναι ότι η τιμή που στέλνετε στο σύστημα σας με την εντολή http.send("ordercode=" & OrderCode ) Το OrderCode έρχεται σαν sting και φυσικά στέλνετε σαν sting ενώ εσείς το εξετάζετε σαν Int64. H μετατροπή του με την εντολή CDbl OrderCode = CDbl(OrderCode) το αλλάζει από 8243103019172607 σε 8.24310301917261E+15 η εντολή OrderCode = Cint(OrderCode) κάνει Overflow: 'cInt' Δεν έχω βρει τρόπο να μετατρέψω το string σε int64 μήπως ξέρετε εσείς κάποιο τρόπο ?
Πραγματικά δουλεύει η επιλογή GetTransactions call στο σύστημα σας ? Είναι κάποια εφαρμογή που την χρησιμοποιεί ?
Εάν δεν μπορείτε να με πληροφορήσετε εσείς ίσως υπάρχει κάποιος άλλος στο τεχνικό τμήμα που ίσως θα μπορούσε ? ή μήπως θα πρέπει να απευθυνθώ στον υπεύθυνο του τεχνικού τμήματος της vivawallet.
Ευχαριστώ