Tom aus Tierion hier. Mit der HashAPI müssen Sie zuerst Ihre Kontoanmeldeinformationen senden, um ein temporäres Zugriffstoken zu erhalten. Dieses Zugriffstoken ist das, was Sie mit Ihrer POST-Anfrage Ihres Hash an die HashAPI senden und die Einreichung authentifizieren.
1) Erste über den/Token/Endpunkt Ihrer Zugriffstoken & Aktualisierungs-Token, indem Sie Ihre Anmeldeinformationen als Parameter einreichen: Ich werde ein paar Haupt-Anfragen mit der Hash-API und ROTATION-less PHP-Implementierungen gehen .
Zuerst müssen Sie Ihren Benutzernamen und Ihr Passwort als Anfrageparameter an unseren/token/Endpunkt senden, um Ihr Zugangstoken zu erhalten. Ihre Anmeldeinformationen werden als Parameter gesendet, nicht als Anforderungsheader.
Code:
// Specify your request URL and the parameters you need to send.
$url = 'https://hashapi.tierion.com/v1/auth/token';
$data = array('username' => '_YOUR_USERNAME_', 'password' => '_YOUR_PASSWORD_');
// Use the "HTTP" key even if you're making an HTTPS request.
$options = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query($data)
)
);
// Create and submit the HTTP request.
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
// Check for a failed request, handle error according.
if ($response === FALSE) {
// Handle error
}
// $response now holds your authorization token, expiration time, and refresh token.
var_dump($response);
Musterantwort:
{
"access_token": "eyB9eXAiOiJKV1QiLDJhbGciOiJIUzI1NiJ8.eyJpZCI6IjU2ZyyiYzFhNWY5Yjg1MjMyZmRjYWRhNyIsInJsbiI6MjBwMCwicmxpIjoicyIsImlzQWRtaW4iOnRydWUtImlhdCI6MTQ2MTI0NzE2NSwiZXhwIjoxNDYxMjUwNzY1LCJqdGkiOiI1MDUyYmFlZDhkNTM5NjcyNDNiMjkzN2RjNjRjNTcyOTJmNTQwZDZhIn0.KNiG-QHdeaH1jVLJpx0ykov8Kk7ogts69k5OhDkgFVM",
"expires_in": 3600,
"refresh_token": "ec71236f77ebd665210912ae8891aa08ee8ec3e4"
}
2) Erhalten eines aktualisierten Zugriffstoken über den/Refresh/Endpunkt, indem Sie Ihre Aktualisierungs-Token als Parameter eingeben.
Ihr Zugriffstoken ist eine Stunde lang gültig, bevor es aktualisiert werden muss. Sie müssen Ihr Aktualisierungs-Token, das Sie mit Ihrem Autorisierungstoken erhalten haben, an unseren/refresh/endpoint senden. Sie erhalten ein neues Autorisierungstoken, das für eine weitere Stunde gültig ist. Ihr Zugriffstoken wird als Parameter gesendet, nicht als Anforderungsheader.
Code:
// Specify your request URL and the parameters you need to send.
$url = 'https://hashapi.tierion.com/v1/auth/refresh';
$data = array('refreshToken' => '_YOUR_VALID_REFRESH_TOKEN_');
// Use the "HTTP" key even if you're making an HTTPS request.
$options = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query($data)
)
);
// Create and submit the HTTP request.
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
// Check for a failed request, handle error according.
if ($response === FALSE) {
// Handle error
}
// $response now holds your NEW authorization token, expiration time, and refresh token.
var_dump($response);
Musterantwort:
{
"access_token": "eyoJAxeiOiJKV1QiLCJhbGciOiIUJzI1NiJ9.eyJpZCI6IjU2ZWRiYzFhNWY5Yjg1jMjyZmRjYWRhNyIsInJsbiI6MjAwMCwicmxpIjoicyIsImlzQWRtaW4iOnRydWUsImlhdCI6MTQ2MTI0Nzk5NCwiZXhwIjoxNDYxMjUxNTk0LJCqdGkiOiIyM2M5NjVjMTYwNzM3NWZlMzQ0MWFiNDFjZTZjM2JkODkzODYxNWRiIn0.qFKIpT5q4K0u1P8_jwUsQkxxcCGu3uGsQKi33c-1gEM",
"expires_in": 3600,
"refresh_token": "ec32176f77ebd556210912ae8891aa08ff8ec3e4"
}
3) Übermittlung Ihrer Hash mit dem Hash-API mit dem Autorisierungs-Token als Header in der Anfrage.
Jetzt, da Sie Ihr Zugriffstoken haben, können Sie Hashs an die Hash-API senden. Sie müssen eine Anforderung mit Ihrem Hash als Anforderungsparameter und Ihr Autorisierungstoken als Anforderungsheader erstellen.
Code:
// Specify your request URL and the parameters you need to send.
$url = 'https://hashapi.tierion.com/v1/hashitems';
$data = array('hash' => '_YOUR_SHA256_HASH_');
// Use the "HTTP" key even if you're making an HTTPS request.
$options = array(
'http' => array(
'header' => "Authorization: Bearer _YOUR_VALID_ACCESS_TOKEN_",
'method' => 'POST',
'content' => http_build_query($data)
)
);
// Create and submit the HTTP request.
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
// Check for a failed request, handle error according.
if ($response === FALSE) {
// Handle error
}
// $response now holds your blockchain receipt ID and timestamp.
var_dump($response);
Musterantwort:
{
"receiptId": "571694dd6b5c7b711861ea67",
"timestamp": 1461097693
}
4) Erhalten Sie den entsprechenden blockchain Eingang mit einem receiptId.
Nachdem Sie einen Hash gesendet haben, erhalten Sie eine Bestätigungs-ID. Diese ID ist ein eindeutiger Zeiger innerhalb des Tierion-Systems auf Ihren Blockchain-Empfang. Diese ID korreliert nicht mit der Blockchain selbst, der Empfang tut dies. Um die Quittung zu erhalten, senden Sie die Quittungs-ID an unsere/Quittungen/Endpunkt.
Sie fügen die Empfangs-ID an das Ende der Anforderungs-URL an, statt sie über einen Anforderungsparameter zu senden.
Code:
// Specify your request URL and the parameters you need to send.
$url = 'https://hashapi.tierion.com/v1/receipts' + _YOUR_RECEIPT_ID_;
// Use the "HTTP" key even if you're making an HTTPS request.
$options = array(
'http' => array(
'header' => "Authorization: Bearer _YOUR_VALID_ACCESS_TOKEN_",
'method' => 'POST',
)
);
// Create and submit the HTTP request.
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
// Check for a failed request, handle error according.
if ($response === FALSE) {
// Handle error
}
// $response now holds your blockchain receipt.
var_dump($response);
Musterantwort:
{
"receipt": "{\"@context\":\"https://w3id.org/chainpoint/v2\",\"type\":\"ChainpointSHA256v2\",\"targetHash\":\"a83a2c5c11a2bc814d0b1dca0a385d71a1f4d662b4e31335ba7562c56cce15b1\",\"merkleRoot\":\"2d21167d2f2f73e309d5ac00ab9faaf8b530478c5b64dcd5755511c8a3eccfa3\",\"proof\":[{\"left\":\"7c6e3b0159f1359d0f9f5a3b923011b7466bdf1423317ca09121b5dc61ad1836\"},{\"right\":\"541c5ae04e83c2880296818978511893ba1b00f1515162cd865f25da54f636d0\"},{\"right\":\"67b7ced55a4db4bb0fbaf2036901888a08ab7d8126556431258017652cf62092\"}],\"anchors\":[{\"type\":\"BTCOpReturn\",\"sourceId\":\"33884d525ca1cc54313fa2f27be4cf3442b35314866851cc7fc5ec3973d80250\"}]}"
}
Wenn Sie weitere Fragen haben, können Sie in unserem Team zu erreichen, bei [email protected] oder Schauen Sie sich unsere Hash API documentation an. Die Antwort here enthält weitere Informationen zu PHP HTTP-Anfragen.
Sie sind wahrscheinlich am besten mit Guzzle für API-Interaktionen –
@MarkTwigg, können Sie mir ein Beispiel schicken, um es zu verwenden? – wxcvbn
Werfen Sie einen Blick auf die Dokumentation von guzzle es hat einige wirklich detaillierte Beispiele und gut kommentiert –