btc-pay-checker/cmd/http/views/index.hbs

171 lines
5.6 KiB
Handlebars

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BTC Pay Checker</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f4;
}
.container {
width: 80%;
margin: auto;
overflow: hidden;
}
header {
background: #50b3a2;
color: white;
padding-top: 30px;
min-height: 70px;
border-bottom: #e8491d 3px solid;
}
header a {
color: #ffffff;
text-decoration: none;
text-transform: uppercase;
font-size: 16px;
}
header li {
float: left;
display: inline;
padding: 0 20px 0 20px;
}
header #branding {
float: left;
}
header #branding h1 {
margin: 0;
}
header nav {
float: right;
margin-top: 10px;
}
header .highlight, header .current a {
color: #e8491d;
font-weight: bold;
}
header a:hover {
color: #cccccc;
font-weight: bold;
}
</style>
</head>
<body>
<header>
<div class="container">
<div id="branding">
<h1><span class="highlight">BTC</span> Pay Checker</h1>
</div>
<nav>
<ul>
<li class="current"><a href="/">Home</a></li>
</ul>
</nav>
</div>
</header>
<div class="container">
<h2>How to use the /order POST endpoint</h2>
<p>This endpoint allows you to create a new order. It requires a JSON body with the following fields:</p>
<ul>
<li><strong>order_id:</strong> The ID of the order.</li>
<li><strong>client_id:</strong> The ID of the client.</li>
<li><strong>amount:</strong> The amount in USD that the client wants to pay.</li>
<li><strong>currency:</strong> The currency in which the payment will be made. This should be a valid FiatCurrency value.</li>
<li><strong>client_email:</strong> The email of the client.</li>
</ul>
<p>The endpoint will return a JSON response with the following fields:</p>
<ul>
<li><strong>order_id:</strong> The ID of the order.</li>
<li><strong>amount:</strong> The amount in BTC that the client needs to pay.</li>
<li><strong>wallet_address:</strong> The wallet address to which the payment should be made.</li>
<li><strong>expires_at:</strong> The time at which the order will expire.</li>
</ul>
<h3>Examples</h3>
<h4>Go</h4>
<pre>
<code>
package main
import (
"bytes"
"encoding/json"
"net/http"
)
type Order struct {
OrderID string `json:"order_id"`
ClientID string `json:"client_id"`
Amount float64 `json:"amount"`
Currency string `json:"currency"`
ClientEmail string `json:"client_email"`
}
func main() {
order := &Order{
OrderID: "123",
ClientID: "456",
Amount: 100.0,
Currency: "USD",
ClientEmail: "client@example.com",
}
jsonValue, _ := json.Marshal(order)
_, err := http.Post("https://yourwebsite.com/order", "application/json", bytes.NewBuffer(jsonValue))
if err != nil {
// handle error
}
}
</code>
</pre>
<h4>Node.js</h4>
<pre>
<code>
const axios = require('axios');
const order = {
order_id: '123',
client_id: '456',
amount: 100.0,
currency: 'USD',
client_email: 'client@example.com'
};
axios.post('https://yourwebsite.com/order', order)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
</code>
</pre>
<h4>CURL</h4>
<pre>
<code>
curl -X POST https://yourwebsite.com/order \
-H 'Content-Type: application/json' \
-d '{
"order_id": "123",
"client_id": "456",
"amount": 100.0,
"currency": "USD",
"client_email": "client@example.com"
}'
</code>
</pre>
<h3>Handling the Response</h3>
<p>The response from the /order endpoint is an HTML page that should be displayed to the user. This can be done by embedding the response in an iframe, loading it in a new browser window or tab, or by replacing the current page with the response HTML.</p>
<p>Please note that the exact method of displaying the response will depend on the specifics of your application and its user interface.</p>
</div>
</body>
</html>