Implemented gateway interactions
This commit is contained in:
1 parent
80602afe58
commit
5dbf767863
16 files changed
+811
-30
No files matched your search
@@ -0,0 +1,35 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Obrada odgovora</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
|
||||
<style>
|
||||
th {text-align: left}
|
||||
h2 {
|
||||
margin-top: 16px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="container">
|
||||
|
||||
<p>Obrada odgovora...</p>
|
||||
<div id="error"></div>
|
||||
|
||||
<script>
|
||||
window.onload = () => {
|
||||
setTimeout(() => {
|
||||
window?.top?.postMessage(JSON.stringify({"success": true}), {targetOrigin: "*"});
|
||||
if(window?.top) {
|
||||
document.querySelector("#error").innerHTML = `<p>Izgleda da je došlo do greške, jer stranica nije otvorena u iframe-u</p><a href="/">Stisnite ovdje da se vratite na naslovnicu</a>`;
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,57 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Index</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
|
||||
<style>
|
||||
th {text-align: left}
|
||||
tr > td:nth-child(2) {
|
||||
text-align: right;
|
||||
}
|
||||
td, th {
|
||||
padding: 0 8px;
|
||||
}
|
||||
h2 {
|
||||
margin-top: 16px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="container">
|
||||
<h2>Novo plačanje</h2>
|
||||
|
||||
<form method="get" action="/initial">
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="amount">Vrijednost</label>
|
||||
<input class="form-control" id="amount" required name="amount" type="number" step="0.01" min="0">
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Izradi novo plačanje</button>
|
||||
</form>
|
||||
|
||||
<div>
|
||||
<h2>Plačanja</h2>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Vrijednost</th>
|
||||
<th>Stanje</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Entries}}
|
||||
<tr>
|
||||
<td><a class="link-primary" href="/info/{{.Id}}">{{.Id}}</a></td>
|
||||
<td>{{formatCurrency .TotalAmount}}</td>
|
||||
<td>{{formatState .State}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,49 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Info</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
|
||||
<style>
|
||||
th {text-align: left}
|
||||
h2 {
|
||||
margin-top: 16px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="container">
|
||||
<h2>Plačanje {{.Entry.Id}}</h2>
|
||||
|
||||
<table class="table">
|
||||
<tr><th>CartId: </th><td>{{.Entry.ShoppingCartID}}</td></tr>
|
||||
<tr><th>Ukupna vrijednost: </th><td>{{formatCurrency .Entry.TotalAmount}}</td></tr>
|
||||
<tr><th>Jezik: </th><td>{{omitempty .Entry.Lang}}</td></tr>
|
||||
|
||||
<tr><th>Ime: </th><td>{{omitempty .Entry.CustomerFirstName}}</td></tr>
|
||||
<tr><th>Prezime: </th><td>{{omitempty .Entry.CustomerLastName}}</td></tr>
|
||||
<tr><th>Adresa: </th><td>{{omitempty .Entry.CustomerAddress}}</td></tr>
|
||||
<tr><th>Grad: </th><td>{{omitempty .Entry.CustomerCity}}</td></tr>
|
||||
<tr><th>ZIP: </th><td>{{omitempty .Entry.CustomerZIP}}</td></tr>
|
||||
<tr><th>Zemlja: </th><td>{{omitempty .Entry.CustomerCountry}}</td></tr>
|
||||
<tr><th>Broj telefona: </th><td>{{omitempty .Entry.CustomerPhone}}</td></tr>
|
||||
|
||||
<tr><th>Plan plačanja: </th><td>{{omitempty .Entry.PaymentPlan}}</td></tr>
|
||||
<tr><th>Ime kartice: </th><td>{{omitempty .Entry.CreditCardName}}</td></tr>
|
||||
<tr><th>Broj kartice: </th><td>{{omitempty .Entry.CreditCardNumber}}</td></tr>
|
||||
<tr><th>Metoda plačanja: </th><td>{{omitempty .Entry.PaymentMethod}}</td></tr>
|
||||
<tr><th>Oznaka valute: </th><td>{{.Entry.CurrencyCode}}</td></tr>
|
||||
|
||||
<tr><th>Datum i vrijeme: </th><td>{{.Entry.DateTime.Format "Jan 02, 2006 15:04:05 UTC"}}</td></tr>
|
||||
<tr><th>Uspjeh: </th> <td>{{.Entry.Success}}</td></tr>
|
||||
<tr><th>Kod: </th> <td>{{omitempty .Entry.ApprovalCode}}</td></tr>
|
||||
<tr><th>Poruka greške: </th> <td>{{omitempty .Entry.ErrorMessage}}</td></tr>
|
||||
<tr><th>Kodovi greške: </th> <td>{{omitempty .Entry.ErrorCodes}}</td></tr>
|
||||
|
||||
<tr><th>Stanje: </th><td>{{formatState .Entry.State}}</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,61 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Izradi plančanje</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
|
||||
<style>
|
||||
h2 {
|
||||
margin-top: 16px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="container" style="margin-top: 32px">
|
||||
<h2>Započni proces plačanja</h2>
|
||||
|
||||
<form action="{{.Action}}" method="POST">
|
||||
<input type="hidden" name="ShopID" value="{{.Form.ShopID}}">
|
||||
<input type="hidden" name="ShoppingCartID" value="{{.Form.ShoppingCartID}}">
|
||||
<input type="hidden" name="Version" value="{{.Form.Version}}">
|
||||
<input type="hidden" name="TotalAmount" value="{{formatCurrency .Form.TotalAmount}}">
|
||||
<input type="hidden" name="Signature" value="{{.Form.Signature}}">
|
||||
<input type="hidden" name="ReturnURL" value="{{.Form.ReturnURL}}">
|
||||
<input type="hidden" name="CancelURL" value="{{.Form.CancelURL}}">
|
||||
<input type="hidden" name="ReturnErrorURL" value="{{.Form.ReturnErrorURL}}">
|
||||
<input type="submit" class="btn btn-primary" value="Koristi normalni redirect">
|
||||
</form>
|
||||
|
||||
<h2>Započni normalni proces u iframe-u</h2>
|
||||
|
||||
<form target="payment-frame" name="pay" action="{{.Action}}" method="POST">
|
||||
<input type="hidden" name="Iframe" value="True">
|
||||
<input type="hidden" name="IframeResponseTarget" value="SELF">
|
||||
|
||||
<input type="hidden" name="ShopID" value="{{.Form.ShopID}}">
|
||||
<input type="hidden" name="ShoppingCartID" value="{{.Form.ShoppingCartID}}">
|
||||
<input type="hidden" name="Version" value="{{.Form.Version}}">
|
||||
<input type="hidden" name="TotalAmount" value="{{formatCurrency .Form.TotalAmount}}">
|
||||
<input type="hidden" name="Signature" value="{{.Form.Signature}}">
|
||||
<input type="hidden" name="ReturnURL" value="{{.Form.ReturnURL}}?iframe=true">
|
||||
<input type="hidden" name="CancelURL" value="{{.Form.CancelURL}}?iframe=true">
|
||||
<input type="hidden" name="ReturnErrorURL" value="{{.Form.ReturnErrorURL}}?iframe=true">
|
||||
<input type="submit" class="btn btn-primary" value="Koristi navigaciju u iframe-u">
|
||||
</form>
|
||||
<iframe id="payment-frame" name="payment-frame" style="width: 100%; min-height: 600px"></iframe>
|
||||
|
||||
<script>
|
||||
window.addEventListener(
|
||||
"message",
|
||||
(event) => {
|
||||
console.log("received response")
|
||||
window.location.href = "/";
|
||||
},
|
||||
false
|
||||
);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user