This website uses cookies to ensure you get the best experience. ❤️
OK
Prizm Space Cryptocurrency
Prizm Space Cryptocurrency
Prizm Space Cryptocurrency
Prizm Space Cryptocurrency
Prizm API
Prizm Space Cryptocurrency
Prizm Space Cryptocurrency
Prizm Space Cryptocurrency
Prizm Space Cryptocurrency

PRIZM API

Ενσωμάτωση PRIZM
Prizm Space Cryptocurrency
Prizm Space Cryptocurrency
ΦΡΟΝΤΙΣΤΗΡΙΟ
Ένταξη συστήματος πληρωμών Prizm
Το σύστημα πληρωμών PRIZM είναι ο ευκολότερος τρόπος λήψης και αποστολής πληρωμών κρυπτογράφησης.
  • Περιγραφή
  • Παράδειγμα λειτουργίας
  • Η Βασική αρχή λειτουργίας
  • Το παράδειγμα της υλοποίησης στο PHP
Για να αρχίσετε να εργάζεστε με το PRIZM, θα χρειαστεί να εκκινήσετε τον κόμβο δικτύου (Κόμβος) και το API_Servlet.
Κόμβος δικτύου

Prizm Core
Easy API Gateway
Prizm API Doc

Το λογισμικό μπορεί να λειτουργεί σε ένα διακομιστή καθώς επίσης και σε διαφορετικούς διακομιστές. Ωστόσο, είναι καλύτερο να το ξεκινήσετε σε αυτόν που σας διευκολύνει.


Πρώτον, πρέπει να εκκινήσετε τον κόμβο και να περιμένετε να συγχρονιστεί. Το επόμενο βήμα είναι η διαμόρφωση της μονάδας PrizmAPIServlet.


Μέσα στη συλλογή υπάρχει ένα αρχείο που ονομάζεται PrizmAPIServlet.properties


Στη γραμμή passphrase: NONE

αντί για NONE θα πρέπει να γράψετε το προσωπικό κλειδί του πορτοφολιού που θα χρησιμοποιηθεί από το έργο σας..

Στη γραμμή sendkey: NONE

αντί για NONE θα πρέπει να γράψετε τον κωδικό πρόσβασης (θα χρησιμοποιηθεί από τη διεκπεραίωση αποστολής νομισμάτων ως πρόσθετη προστασία από μη εξουσιοδοτημένες συναλλαγές).


Αφού συμπληρώσετε τα πεδία, θα πρέπει να εκκινήσετε το servlet run-servlet.sh

Το παράδειγμα της υλοποίησης στο PHP

Η περιγραφή της διαδικασίας για την λήψη και αποστολή νομισμάτων, με παραδείγματα έτοιμων λειτουργιών και περιγραφή της αρχής λειτουργίας. Η βάση δεδομένων Mysql χρησιμοποιείται για την αποθήκευση της λίστας συναλλαγών, υπάρχει ένα κομμάτι του πίνακα αποθήκευσης παρακάτω, μαζί με παραδείγματα του κώδικα για να δουλέψουν με τον πίνακα (αν εφαρμόσετε το QueryBuilder, δεν θα είναι πρόβλημα).

Η Βασική αρχή λειτουργίας:

Υπάρχει ένα σενάριο στην εργασία-Cron το οποίο κάνει ένα αίτημα προς το servlet κάθε 2-5 λεπτά, ώστε να μπορεί να λάβει νέες συναλλαγές στο αποθηκευμένο πορτοφόλι. Αφού λάβετε τη λίστα των συναλλαγών, θα πρέπει να τα αποθηκεύσετε στην τοπική βάση δεδομένων. Εάν δεν υπάρχουν καταγραφές στη βάση δεδομένων, θα πρέπει να εκτελέσετε την εντολή χωρίς καμία παράμετρο. Ωστόσο, εάν θέλετε να λάβετε νέες συναλλαγές, θα πρέπει να στείλετε τον αριθμό της τελευταίας συναλλαγής που έχετε ως παράμετρο.


Παράδειγμα λειτουργίας:

<?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;
}

?>

Η λειτουργία ανάκτησης περιεχομένου σελίδας:

<?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); // Ανακτά την ιστοσελίδα         
           curl_setopt($ch, CURLOPT_HEADER, 0); // δεν ανακτά τις κεφαλίδες   
           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // ακολουθεί τις ανακατευθύνσεις 
           curl_setopt($ch, CURLOPT_ENCODING, ""); // διαχειρίζεται όλες τις κωδικοποιήσεις 
          curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // μέσο χρήστη 
          curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); // τέλος χρόνου σύνδεσης   
          curl_setopt($ch, CURLOPT_TIMEOUT, 20); // τέλος χρόνου απάντησης
          curl_setopt($ch, CURLOPT_MAXREDIRS, 2); // σταματά μετά την 10η ανακατεύθυνση

           $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;
}

?>

Μπορείτε να το δοκιμάσετε μέσω της κονσόλας, για παράδειγμα: curl http://localhost:8888/history

Το παράδειγμα του σεναρίου χειρισμού εργασιών-Cron για λήψη νέων συναλλαγών και της δομής του πίνακα

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;


* Όλα τα απαραίτητα πλήκτρα και η αυτόματη αύξηση του ID θα πρέπει να προστεθούν στον πίνακα:

Χειριστής :

<?php

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

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


// αυτή η γραμμή προσθέτει δεδομένα στον πίνακα ‘pzm_history’ χρησιμοποιώντας INSERT IGNORE


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()
{

// αυτή η γραμμή αναζητά την τελευταία γραμμή στον πίνακα για να πάρει το τελευταίο ID των συναλλαγών που βρίσκονται στον πίνακα

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

?>

Σε αυτό το παράδειγμα λαμβάνετε τη λίστα των νέων συναλλαγών που πρέπει να αποθηκευτούν στην τοπική βάση δεδομένων.


Για το λόγο αυτό, διατηρήστε το ιστορικό όλων των συναλλαγών στο πορτοφόλι και στο μέλλον θα αναζητήσετε τις συναλλαγές στην τοπική βάση δεδομένων μας χρησιμοποιώντας τα χαρακτηριστικά δεδομένα.


Το έργο σας πρέπει να λειτουργεί με το ίδιο Πορτοφόλι Prizm, γι 'αυτό και όλοι οι πελάτες θα πρέπει να έχουν τις ίδιες πληροφορίες για να συμπληρώσουν του ίδιο εσωτερικό λογαριασμό και το ίδιο hash ID της συναλλαγής. Βεβαιωθείτε ότι ενημερώσατε τον κάθε πελάτη ότι πρέπει να πραγματοποιήσει μια συναλλαγή αυστηρά με τα απαραίτητα στοιχεία που αναφέρονται στο hash ID στα σχόλια πληρωμής.


Έτσι, θα πρέπει να υπάρξει μια άλλη διαδικασία που θα αναλύει τις νέες εισερχόμενες συναλλαγές και θα καταθέτει νομίσματα στον εσωτερικό του λογαριασμού εάν το σχόλιο πληρωμής έχει το hash ID του πελάτη. Επίσης, πρέπει να δημιουργήσετε ένα ξεχωριστό κουμπί "I PAID" για τον πελάτη που θα μπορούσε να αναζητήσει και να καταγράψει νέες συναλλαγές για αυτόν τον χρήστη επιλέγοντάς το.

Δευτερεύουσες λειτουργίες και λειτουργίες αποστολής νομισμάτων
Απόκτηση δημόσιου κλειδιού για το πορτοφόλι (λειτουργεί μόνο για ενεργοποιημένα πορτοφόλια με υπόλοιπο).

<?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;
    }

?>

Ενημέρωση για το τρέχον υπόλοιπο του πορτοφολιού:

<?php

	function getBalancePZM($pzm)
    {
        $ip = '*******';  // παράδειγμα 192.168.1.1:9976 Με θύραt
		$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;
            }
        }
    }

?>

Μέθοδος αποστολής νομισμάτων:

<?php

public function payPZM($summa, $pzm, $public_key, $text)
{
	$p2 = SENDKEY;   //  αυτός είναι ο κωδικός πρόσβασης που καθορίσατε στις ρυθμίσεις
	$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;
}

?>