This website uses cookies to ensure you get the best experience. ❤️
OK

PRIZM-Integration

Das PRIZM-Zahlungssystem ist der einfachste Weg, Krypto-Zahlungen zu empfangen und zu senden.

Prizm paramining, парамайнинг, призм парамайнинг, paratax, паратакс, параметры парамайнинга

PRIZM Servlet

Prizm Paramining
факторы парамайнинга
paratax, паратакс
парамайнинг призм
prizm space

Beschreibung

PHP Implementierungsbeispiel

Das Grundprinzip der Arbeitsweise

Funktionsbeispiel

LERNPROGRAMM
PRIZM-Integration
Um mit PRIZM arbeiten zu können, müssen Sie den Netzwerkknoten (Node) und API_Servlet starten
Netzwerkknoten

PrizmCore wallet
Easy API Gateway

Die Software kann sowohl auf einem Server als auch auf verschiedenen Servern ausgeführt werden. Aus praktischen Gründen ist es jedoch besser, sie auf einem Server auszuführen.

Starten Sie zuerst die Node und warten Sie, bis sie synchronisiert ist. Fahren Sie dann mit der Konfiguration des PrizmAPIServlet-Moduls fort

Im Archiv befindet sich eine Datei PrizmAPIServlet.properties

  • in the line passphrase: NONE
Anstelle von NONE tragen wir den privaten Brieftaschenschlüssel ein, der von Ihrem Projekt verwendet ffwird.

  • in the line sendkey: NONE
Anstelle von NONE tragen wir Ihr Passwort ein (die Funktion zum Versenden von Münzen verwendet es als zusätzlichen Schutz vor nicht autorisierten Transaktionen).

Führen Sie nach dem Ausfüllen der Felder das Servlet aus
run-servlet.sh

PHP Implementierungsbeispiel

Beschreibung der Arbeit mit dem Empfang und Versenden von Münzen, mit Beispielen für vorgefertigte Funktionen und einer Beschreibung der Arbeitsprinzipien.

Zum Speichern der Transaktionsliste wird die Mysql-Basis verwendet. Nachfolgend werden eine Speicherauszugstabelle und Codebeispiele für die Arbeit mit dieser angezeigt (mithilfe von QueryBilder - dies ist kein Problem).

Das Grundprinzip der Arbeitsweise:


In der Cron-Task hängt ein Skript, das alle 2-5 Minuten eine Anforderung an das Servlet sendet, um neue Transaktionen in der Brieftasche des Geschäfts zu erhalten. Nachdem wir die Liste der Transaktionen erhalten haben, speichern wir sie in unserer lokalen Datenbank. Wenn die Datenbank keine Operationen enthält, führen wir den Befehl ohne Parameter aus, und wenn wir neue Transaktionen empfangen möchten, dann senden wir als Parameter,die Nummer der letzten Transaktion, die wir bereits haben.

Funktionsbeispiel:

<?php
function historyPZM($last_id = 0)
{
	if ($last_id) {
		$url = 'http://localhost:8888/history?fromid=' . $last_id;
	} else {
		$url = 'http://localhost:8888/history';
	}
	$page = '';
	$result = get_web_page($url);
	if (($result['errno'] != 0) || ($result['http_code'] != 200)) {
		$error = $result['errmsg'];
	} else {
		$page = $result['content'];
	}
	$array_new = array();
	$xcmorewrite = explode("\n", str_replace("\r", '', $page));
	foreach ($xcmorewrite as $value) {
		if ($value) {
			$array_new[] = explode(";", $value);
		}
	}
	return $array_new;
}

?>

Funktion zum Abrufen von Seiteninhalten:

<?php

function get_web_page($url)
{
	$uagent = "Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.14";
	$ch = curl_init($url);
	curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); // holt die Webseite zurück
       curl_setopt ($ ch, CURLOPT_HEADER, 0); // holt keine Überschrifte zurück
       curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, 1); // folgt den Umleitungen
      curl_setopt ($ ch, CURLOPT_ENCODING, ""); // verarbeitet alle Kodierungen
      curl_setopt ($ ch, CURLOPT_USERAGENT, $ uagent); // useragent
     curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 20); // Verbindungs-Timeout
     curl_setopt ($ ch, CURLOPT_TIMEOUT, 20); // Antwortzeit-Überschreitung
     curl_setopt ($ ch, CURLOPT_MAXREDIRS, 2); // Nach der 10. Umleitung anhalten

           $content = curl_exec($ch);
	$err = curl_errno($ch);
	$errmsg = curl_error($ch);
	$header = curl_getinfo($ch);
	curl_close($ch);

	$header['errno'] = $err;
	$header['errmsg'] = $errmsg;
	$header['content'] = $content;
	return $header;
}

?>

Als Beispiel können Sie über die Konsole versuchen:
locken http: // localhost: 8888 / history

Beispielskript für einen Job Crown eines Bearbeiters zum Empfangen neuer Transaktionen und Tabellenstrukturen

CREATE TABLE `pzm_history` (
  `id` bigint(20) NOT NULL,
  `tarif_id` int(1) NOT NULL,
  `tr_id` varchar(255) NOT NULL,
  `tr_date` varchar(255) NOT NULL,
  `tr_timestamp` int(11) NOT NULL,
  `pzm` varchar(50) NOT NULL,
  `summa` decimal(16,2) NOT NULL,
  `mess` varchar(255) NOT NULL,
  `status` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


* Fügen Sie in die Tabelle die erforderlichen Schlüssel und die automatische Inkrementierung für die ID hinzu.

Bearbeiter:

<?php

$nomer = getLastPrmHistory();
$historys = historyPZM($nomer);

foreach ($historys as $item) {
    if ($item['0'] != "No transactions!") {


// In dieser Zeile wird eine Ergänzung in die Tabelle `pzm_history`  mithilfe INSERT IGNORE hinzugefügt.


PzmHistory::find()->insertIgnore([
            'tr_id' => $item['0'],
            'tr_date' => $item['1'],
            'tr_timestamp' => $item['2'],
            'pzm' => $item['3'],
            'summa' => $item['4'],
            'mess' => $item['5'],
            'status' => 0
        ]);
    }
}


function getLastPrmHistory()
{

// In dieser Zeile wird  nach der letzten Zeile in der Tabelle gesucht, um die letzte Transaktions-ID zu erhalten, die in unserer Tabelle enthalten ist.

if (!empty($pzmHistory = PzmHistory::find()->orderBy('id', "DESC")->first())) {
		return $pzmHistory->tr_id;            
	};
	return 0;
}

?>


In diesem Beispiel erhalten wir eine Liste neuer Transaktionen und speichern sie in einer lokalen Datenbank.


Auf diese Weise führen wir eine Historie aller Transaktionen der jeweiligen Brieftasche und werden sie in Zukunft anhand von Schlüsseldaten in unserer lokalen Datenbank suchen.

Ihr Projekt sollte mit einer Prizm-Brieftasche arbeiten, deswegen bekommen alle Kunden die gleichen Details/Angaben, um das interne Konto und die Hash-ID des Vorgangs aufzufüllen. Stellen Sie sicher, dass Sie den Kunden darüber informieren, dass er die Transaktion mit der Angabe der Hash-ID der Operation ausführen muss. Stellen Sie sicher, dass Sie den Kunden darüber informieren, dass er die Transaktion streng nach den Angaben durchführen muss, als auch die Hash-Kennung im Zahlungs-Kommentar angeben muss.

Daher sollte es einen anderen Prozess geben, der neue eingehende Transaktionen analysiert. Wenn im Zahlungs Kommentar die Hash-ID des Kunden enthält, werden die Münzen dem internen Konto gutgeschrieben. Außerdem müssen Sie für den Kunden eine separate Schaltfläche "I PAYED" (Ich habe bezahlt) erstellen. Wenn Sie auf diese Schaltfläche klicken, werden für diesen Benutzer neue Transaktionen gesucht und abgerechnet.

Hilfsfunktionen und Funktionen zum Versenden von Münzen.
Erhalten einer öffentlichen Schlüssel für eine Brieftasche (funktioniert nur für aktivierte Brieftaschen mit Guthaben)

<?php
	
	function destinationPZM($pzm)
    {
        $url = 'http://localhost:8888/publickey?destination=' . $pzm;
        $page = '';
        $result = get_web_page($url);
        if (($result['errno'] != 0) || ($result['http_code'] != 200)) {
            $error = $result['errmsg'];
            return '';
        } else {
            $page = $result['content'];
            $haystack = "Public key absent";
            $haystack2 = "Send error!";
            $pos = strripos($page, $haystack);
            $pos2 = strripos($page, $haystack2);
            if ($pos === false AND $pos2 === false) {
                $xcmorewrite = explode(' ', $page);
                $page = trim($xcmorewrite[0]);
                return $page;
            } else {
                return '';
            }
        }
        return $page;
    }

?>

So rufen Sie den aktuellen Brieftaschen-Kontostand ab:

<?php

	function getBalancePZM($pzm)
    {
        $ip = '*******';  // Beispiel mit Angabe des ports 192.168.1.1:9976  
		$url = 'http://'.$ip.'/prizm?requestType=getAccount&account=' . $pzm;
        $page = '';
        $result = get_web_page($url);
		//print_r($result); die;
        if (($result['errno'] != 0) || ($result['http_code'] != 200)) {
            $error = $result['errmsg'];
            return '';
        } else {
            $page = $result['content'];
            $page = json_decode($page, true);
            if ( isset($page['balanceNQT']) ) {
              return $page['balanceNQT'] / 100;
            } else {
              return 0;
            }
        }
    }

?>

Methode zum Versenden von Münzen:

<?php

public function payPZM($summa, $pzm, $public_key, $text)
{
	$p2 = SENDKEY;   //  Dies ist das Kennwort, das Sie bei der Konfiguration des Servlets angegeben haben
	$return = false;
	$url = 'http://localhost:8888/send?sendkey=' . $p2 . '&amount=' . $summa . '&comment=' . urlencode($text) . '&destination=' . $pzm . '&publickey=' . $public_key;
	$page = '';
	$result = get_web_page($url);

	if (($result['errno'] != 0) || ($result['http_code'] != 200)) {
		$error = $result['errmsg'];
	} else {
		$page = $result['content'];
	}

	if (preg_match('/^\+?\d+$/', $page)) {
		$return = true;
	} else {
		$return = false;
	}
	return $return;
}

?>