|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 本文是php開發以太坊系統,主要是介紹使用php進行智能合約開發交互,進行賬號創建、交易、轉賬、代幣開發以及過濾器和事件等內容。當我第一次考慮通過加密貨幣實施支付時,我查看了像Stripe這樣的可用解決方案。我覺得Stripe的問題在于,它只允許使用美國商家帳戶進行比特幣支付,所以這對我來說不是一個選擇。在以太坊世界,它看起來更糟糕。有一些較新的服務,但他們都想要分享蛋糕。 那么從頭開始構建以太坊支付系統,我們需要什么?
那它是如何工作的?
理論上似乎是沒有問題的,那讓我們構建它。第1步:設置服務器我們將使用nodejs中的vanity-eth來生成地址。 npm install -g vanity-eth@1.0.4" 在Windows上安裝vanity-eth后:
還需要一些Etherum節點。我正在使用Parity,因為它快速可靠。 使用這些參數啟動它,但不要將節點直接暴露給Internet,將它們保留在防火墻后面而不進行端口轉發。 parity --jsonrpc-interface 0.0.0.0 --jsonrpc-hosts="all" --auto-update=all --jsonrpc-cors null 完成同步的奇偶校驗日志:
為了更快地部署,您可以使用Parity Docker容器。還可以保存數據,這樣每次重新制作容器時都不必重新同步。 第2步:編寫付款類首先創建一個名為 然后我們使用以下類并將其另存為ethpay.php。這是支付處理的主要邏輯。你可以用它來:
<?php
define('RPC_IP','127.0.0.1');
define('RPC_PORT',8545);
require 'libs/ethereum-php/ethereum.php';
$e = new EthPay();
class EthPay
{
private $eth;
//讓我們建立與parity節點的連接
function __construct()
{
$this->eth = new Ethereum(RPC_IP, RPC_PORT);
if(!$this->eth->net_version()) die('RPC ERROR');
}
/ *
*得到一個地址的余額,
*來自parity的余額以十六進制形式出現在wei中
*使用bc數學函數轉換它
* /
function getBalanceOfAddress($addr)
{
$eth_hex = $this->eth->eth_getBalance($addr, 'latest');
$eth = $this->wei2eth($this->bchexdec($eth_hex));
$pending_hex = $this->eth->eth_getBalance($addr, 'pending');
$pending = $this->wei2eth($this->bchexdec($pending_hex));
return array('balance'=>$eth,'pending'=>$pending);
}
function getCurrentPrice($currency='USD')
{
$data = json_decode(file_get_contents('https://api.coinbase.com/v2/prices/ETH-'.$currency.'/spot'),true);
return $data['data']['amount'];
}
/*
*我們將使用vanityeth生成私鑰對
* npm install -g vanity-eth
*我們必須重新格式化輸出字符串以用作JSON
* /
function genPair()
{
exec('vanityeth', $outputAndErrors, $return_value);
$answer = implode(NULL,$outputAndErrors);
$answer = str_replace('address:','"address":',$answer);
$answer = str_replace('privKey:','"privKey":',$answer);
$answer = str_replace('\'','"',$answer);
return json_decode($answer,true);
}
//以下功能用于轉換和處理大數字
function wei2eth($wei)
{
return bcp($wei,1000000000000000000,18);
}
function bchexdec($hex) {
if(strlen($hex) == 1) {
return hexdec($hex);
} else {
$remain = substr($hex, 0, -1);
$last = substr($hex, -1);
return bcadd(bcmul(16, $this->bchexdec($remain)), hexdec($last));
}
}
}最后一步:與您的網站集成根據您的服務,有多種方法可以執行此操作。 在API Heaven,我們為每位客戶提供一個可以存入資金的ETH地址。cronjob每分鐘檢查所有客戶地址以檢測更改。如果他們將ETH添加到地址,則余額將轉換為API配額,因此我們的客戶甚至不需要登錄該站點來添加資金。 API Heaven中的示例集成:
另一個方法是計算固定價格并將其保存在用戶會話中。客戶必須在網站上付款,并且您需要向AJAX查詢已收到的付款。如果收到全部金額,后端會觸發銷售。 最重要的是,您不需要外部服務來在您的網站上集成以太坊支付系統。來一起邊學邊玩以太坊吧。 相關推薦: 以上就是如何利用php開發以太坊的支付系統的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!