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

PRIZM 통합

PRIZM 지불 시스템은 암호 화폐 지불을 받고 보내는 가장 쉬운 방법입니다.

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

PRIZM Servlet

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

서술

PHP 구현 예

일의 기본 원리

기능 예

지도 시간
PRIZM 통합
PRIZM 작업을 시작하려면 네트워크 노드 (노드) 및 API_Servlet을 시작해야합니다.
네트워크 노드

PrizmCore wallet
Easy API Gateway

소프트웨어는 단일 서버와 여러 서버 모두에서 실행될 수 있습니다. 그러나 편의를 위해 단일 서버에서 실행하는 것이 좋습니다.


먼저 노드를 시작하고 동기화되는 동안 기다려야합니다. 다음 단계는 PrizmAPIServlet 모듈의 구성입니다.


아카이브에는 PrizmAPIServlet.properties라는 파일이 있습니다.


  • 'passphrase : NONE'줄에

passphrase : NONE'대신 프로젝트에서 사용할 지갑의 개인 키를 작성해야합니다.

  • 'sendkey : NONE'줄에

'sendkey : NONE'대신 비밀번호를 작성해야합니다 (비공 인 거래로부터 추가 보호를 위해 코인 전송 기능에 의해 사용됨).


필드를 채운 후 run-servlet.sh를 통해 서블릿을 시작해야합니다.

PHP 구현 예

기성품 기능의 예와 작업 원리에 대한 설명과 함께 동전을 받고 보내는 작업에 대한 설명. Mysql 데이터베이스는 트랜잭션 목록을 저장하는 데 사용되며 아래의 스토리지 테이블 덤프와 함께 테이블 작업을 수행하는 코드 예제가 있습니다 (QueryBuilder를 적용하면 문제가되지 않습니다).

일의 주요 원리:

Cron 태스크에는 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!") {


// 이 줄은 INSERT IGNORE를 사용하여 'pzm_history'테이블에 데이터를 추가합니다.


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 Wallet으로 작동해야하므로 모든 고객에게 내부 계정과 작업의 동일한 해시 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 = '*******';  // example 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;
            }
        }
    }

?>

코인 발송 방법:

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

?>