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

Integrasi sistem pembayaran PRIZM
Prizm Space Cryptocurrency
Prizm Space Cryptocurrency
Tutorial

Integrasikan PRIZM

  • Deskripsi
  • Contoh implementasi PHP
  • Prinsip dasar kerja
  • Contoh Fungs
Sistem pembayaran PRIZM adalah cara termudah untuk menerima dan mengirim pembayaran crypto.
Untuk memulai bekerja dengan PRIZM Anda harus meluncurkan simpul jaringan (Node) dan API_Servlet.

Tutorials:
Prizm Core on Linux
Prizm Core Windows | MacOSX
Network node

Prizm Core
Easy API Gateway
Prizm API Doc

Perangkat lunak ini dapat berjalan di satu server maupun di server lain. Namun lebih baik diluncurkan di satu server demi kenyamanan Anda.


Pertama, Anda harus meluncurkan simpul dan menunggu sampai terhubung. Langkah selanjutnya adalah konfigurasi modul PrizmAPIServlet.



Di dalam arsip ada data yang bernama PrizmAPIServlet.properties


  • Di baris passphrase: NONE

Sebagai ganti dari NONE Anda harus menulis kunci pribadi dompet yang akan digunakan oleh proyek Anda.

  • Di baris sendkey: NONE

Sebagai ganti dari NONE Anda harus menulis kata sandi (Ini akan digunakan oleh fungsi pengiriman koin sebagai perlindungan tambahan dari transaksi yang tidak sah).


Setelah Anda mengisi kolom, Anda harus meluncurkan servlet melalui run-servlet.sh


Contoh implementasi dalam PHP

Deskripsi pekerjaan dengan menerima dan mengirim koin, dengan contoh fungsi yang siap pakai dan deskripsi prinsip kerja.


Basis data Mysql digunakan untuk menyimpan daftar transaksi, ada tumpukan tabel penyimpanan di bawah ini, bersama dengan contoh kode untuk bekerja dengan tabel (Jika Anda menerapkan QueryBuilder, itu tidak akan menjadi masalah)

Prinsip kerja utama :

Ada skrip dalam tugas Cron yang membuat permintaan servlet setiap 2-5 menit sehingga akan menerima transaksi baru dalam dompet penyimpanan. Setelah menerima daftar transaksi, Anda harus menyimpannya ke basis data lokal.


Jika tidak ada operasi dalam basis data, Anda harus menjalankan perintah tanpa parameter apapun. Namun jika Anda ingin menerima transaksi baru,Anda harus mengirim nomor transaksi terakhir yang Anda miliki sebagai parameter.

Prinsip kerja utama:

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

?>

Fungsi untuk mengambil konten halaman:

<?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); // memulihkan halaman web
           curl_setopt($ch, CURLOPT_HEADER, 0); // tidak memulihkan tajuk
           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // mengikuti arahan ulang
           curl_setopt($ch, CURLOPT_ENCODING, ""); // menangani semua pengkodean 
          curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // agen pengguna 
          curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); // batas waktu koneksi  
          curl_setopt($ch, CURLOPT_TIMEOUT, 20); // batas waktu menjawab
          curl_setopt($ch, CURLOPT_MAXREDIRS, 2); //berhenti setelah arahan ulang ke 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;
}

?>

Anda dapat mengujinya melalui konsol, misalnya: curl http://localhost:8888/history

Contoh skrip penanganan tugas Cron untuk menerima transaksi baru dan struktur tabel

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;


Semua kunci dan peningkatan otomatis yang diperlukan untuk ID harus ditambahkan ke tabel

Menangani:

<?php

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

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

//baris ini menambahkan data ke tabel  ‘pzm_history’ menggunkan  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()
{


//baris ini mencari baris terakhir dalam tabel untuk mendapatkan ID terakhir dari transaksi yang ada di tabel

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

?>

Dalam contoh ini Anda menerima daftar transaksi baru yang harus di simpan ke basis data lokal

Karena itu, Anda harus menyimpan riwayat semua transaksi di dompet dan di masa depan Anda akan mencarinya di dalam basis data lokal kami menggunakan data kunci.

Proyek Anda harus bekerja dengan Dompet Prizm yang sama, Itu sebabnya semua klien akan diberikan persyaratan yang sama untuk mengisi akun internal dan ID transaksi yang sama dari operasi. Pastikan untuk memberi tahu klien bahwa Ia harus melakukan transaksi secara ketat pada syarat yang menunjukan pengidentifikasi ID transaksi dalam komentar pembayaran.

Dengan demikian, harus ada proses lain yang akan menganalisis transaksi baru yang masuk dan menyetor koin ke akun internal jika komentar pembayaran teridentifikasi ID transaksi milik klien. Anda juga perlu membuat tombol "Saya Bayar" untuk klien agar bisa mencari dan mencatat transaksi baru untuk pengguna ini setelah melakukan klik.

Fungsi sekunder dan fungsi untuk pengiriman koin
Mendapatkan kunci publik untuk dompet (hanya berfungsi untuk dompet aktif yang memiliki saldo)

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

?>

Menerima saldo dompet :

<?php

	function getBalancePZM($pzm)
    {
        $ip = '*******';  // пример 192.168.1.1:9976  with port
		$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;
            }
        }
    }

?>

Metode pengiriman koin:

<?php

public function payPZM($summa, $pzm, $public_key, $text)
{
	$p2 = SENDKEY;   //  ini adalah kata sandi yang Anda tentukan saat pengaturan
	$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;
}

?>

KONTAK
  • Masalah umum: info@pzm.space
    Prizm Listing: listing@pzm.space
    Kolaborasi: partners@pzm.space
    PR & Pemasaran: ad@pzm.space