本文是php開發以太坊系統,主要是介紹使用php進行智慧合約開發交互,進行帳號創建、交易、轉帳、代幣開發以及過濾器和事件等內容。
當我第一次考慮透過加密貨幣實作付款時,我查看了像Stripe這樣的可用解決方案。我覺得Stripe的問題在於,它只允許使用美國商家帳戶進行比特幣支付,所以這對我來說不是一個選項。在以太坊世界,它看起來更糟。有一些較新的服務,但他們都想要分享蛋糕。
那麼從頭開始建立以太坊支付系統,我們需要什麼?
運行PHP的Web伺服器。
啟用了RPC的專用網路中至少有一個Parity節點。
網頁伺服器上的虛擬位址產生器,如vanity-eth。
那它是如何運作的?
使用coinbase或kraken API中的當前價格計算ETH的價格。
使用虛擬產生器產生位址對,並將私鑰加密或轉移到另一個伺服器。
顯示產生的地址給客戶,如果收到付款,則每隔幾秒鐘檢查一次地址。
理論上似乎是沒有問題的,那讓我們建構它。
第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:寫付款類別
先建立一個名為libs
的資料夾,然後將php-ethereum repo複製到其中。 ethereum-php專案是json-rpc類別的一個很好的封裝。
然後我們使用以下類別並將其另存為ethpay.php。這是支付處理的主要邏輯。你可以用它來:
產生位址對
#檢查餘額(待定的和完成的)
#從WEI轉換為ETH
<?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中文網其他相關文章!

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

利用會話構建高效購物車系統的步驟包括:1)理解會話的定義與作用,會話是服務器端的存儲機制,用於跨請求維護用戶狀態;2)實現基本的會話管理,如添加商品到購物車;3)擴展到高級用法,支持商品數量管理和刪除;4)優化性能和安全性,通過持久化會話數據和使用安全的會話標識符。

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。