Subscribe to the Prizm Worldwide News Telegram - channel and stay tuned!
Close

Ushirikiano wa PRIZM

Mfumo wa malipo ya PRIZM ndio njia rahisi zaidi ya kupokea na kutuma malipo ya crypto.

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

PRIZM Servlet

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

Maelezo

Mfano wa utekelezaji wa PHP

Kanuni ya msingi ya kazi

Mfano wa kazi

Mafundisho
Mfumo wa malipo ya prizm
Kuanza kufanya kazi na PRIZM utahitaji kuzindua nodi ya mtandao (Node) na API_Servlet.
Njia ya mtandao

PrizmCore wallet
Easy API Gateway

Programu inaweza kukimbia kwenye seva moja na seva tofauti. Walakini ni bora kuizindua kwa moja kwa urahisi wako.


Kwanza, unapaswa kuzindua nodi na usubiri wakati inasawazisha. Hatua inayofuata ni usanidi wa moduli ya PrizmAPIServlet.


Ndani ya jalada kuna faili inayoitwa PrizmAPIServlet.properties


  • kwenye mstari passphrase: NONE

badala ya NONE unapaswa kuandika ufunguo wa kibinafsi wa mkoba ambao utatumiwa na mradi wako.

  • kwenye mstari sendkey: NONE

badala ya NONE unapaswa kuandika nywila (itatumiwa na kazi ya kutuma sarafu kama kinga ya ziada kutoka shughuli zisizoruhusiwa).


Baada ya kujaza mashambani, unapaswa kuzindua huduma run-servlet.sh

Mfano wa utekelezaji katika PHP

Maelezo ya kazi na kupokea na kutuma sarafu, na mifano ya kazi zilizotengenezwa tayari na maelezo ya kanuni za kazi. Duka la Mysql linatumika kuhifadhi orodha ya manunuzi, kuna eneo la gombo la kuhifadhi hapo chini, pamoja na mifano ya nambari ya kufanya kazi na meza (ikiwa utatumia QueryBuilder, haitakuwa shida).

Kanuni kuu ya kazi:

Kuna maandishi katika kazi ya Cron-ambayo hufanya ombi kwa utumwa kila baada ya dakika 2-5 ili iweze kupokea shughuli mpya kwenye mkoba wa duka. Baada ya kupokea orodha ya shughuli, unapaswa kuihifadhi kwa hifadhidata ya eneo lako. Ikiwa hakuna shughuli katika hifadhidata, unapaswa kuendesha amri bila param yoyote. Walakini ikiwa unataka kupokea shughuli mpya, unapaswa kutuma idadi ya manunuzi ya mwisho ambayo unayo kama parameta.


Mfano wa kazi:
<?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;
}

?>
Kazi ya kupata tena yaliyomo kwenye ukurasa:
<?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); // inapona ukurasa wa wavuti         
           curl_setopt($ch, CURLOPT_HEADER, 0); // haipati vichwa vya habari   
           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // ifuatavyo kuelekeza 
           curl_setopt($ch, CURLOPT_ENCODING, ""); // Hushughulikia encodings zote 
          curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent 
          curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); // muda wa kuunganishwa
          curl_setopt($ch, CURLOPT_TIMEOUT, 20); // wakati wa jibu 
          curl_setopt($ch, CURLOPT_MAXREDIRS, 2); // ataacha baada ya kuelekeza 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;
}

?>

Unaweza kuipima kupitia koni, kwa mfano: curl http://localhost:8888/history

Mfano wa hati ya kukabiliana na kazi ya Cron ya kupokea shughuli mpya na muundo wa meza

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;


* Funguo zote muhimu na kukuza auto kwa ID inapaswa kuongezwa kwenye meza

Mshughulikiaji:

<?php

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

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


// mstari huu unaongeza data kwa 'pzm_history' meza kwa kutumia 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()
{

// mstari huu hutafuta safu wima ya mwisho kwenye meza ili kupata kitambulisho cha mwisho cha shughuli ambazo ziko kwenye meza

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

?>

Katika mfano huu unapokea orodha ya shughuli mpya ambazo zinapaswa kuhifadhiwa kwenye hifadhidata ya hapa nchini.


Kwa hivyo, unahifadhi historia ya shughuli zote kwenye mkoba na katika siku zijazo utazitafuta katika hifadhidata yetu ya ndani kwa kutumia data muhimu.


Mradi wako lazima ufanye kazi na Pallet moja ya Prizm, ndiyo sababu wateja wote watapewa mahitaji sawa ya kujaza akaunti ya ndani na kitambulisho cha haraka cha operesheni hiyo. Hakikisha kumjulisha mteja kuwa lazima afanye shughuli madhubuti juu ya mahitaji inayoonyesha kitambulisho cha hashi katika maoni ya malipo.

Kwa hivyo, inapaswa kuwa na mchakato mwingine ambao utachambua shughuli mpya zinazoingia na sarafu za amana kwenye akaunti ya ndani ikiwa maoni ya malipo yana kitambulisho cha haraka cha mteja. Pia unahitaji kutengeneza kitufe cha "I PAID" kwa mteja ambacho kinaweza kutafuta na kurekodi shughuli mpya kwa mtumiaji huyu baada ya kubonyeza juu yake.

Kazi za sekondari na kazi za kutuma sarafu:
Kupata ufunguo wa umma kwa mkoba (hufanya kazi tu kwa pochi zilizowezeshwa kuwa na usawa).
<?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;
    }

?>
Kupokea usawa wa sasa wa mkoba:
<?php

	function getBalancePZM($pzm)
    {
        $ip = '*******';  // mfano 192.168.1.1:9976  na bandari
		$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;
            }
        }
    }

?>
Njia ya sarafu inayotuma:
<?php

public function payPZM($summa, $pzm, $public_key, $text)
{
	$p2 = SENDKEY;   //  hii ni nywila ambayo uliainisha wakati wa kusanidi
	$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;
}

?>