国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

如何利用php開發以太坊的支付系統

2020-03-22 18:35:17
字體:
來源:轉載
供稿:網友
本文是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后:

1418372061-5b9082ef3d224_articlex.jpg

還需要一些Etherum節點。我正在使用Parity,因為它快速可靠。

使用這些參數啟動它,但不要將節點直接暴露給Internet,將它們保留在防火墻后面而不進行端口轉發。

parity --jsonrpc-interface 0.0.0.0 --jsonrpc-hosts= all --auto-update=all --jsonrpc-cors null

完成同步的奇偶校驗日志:

2567405850-5b9082ef3df24_articlex.jpg

為了更快地部署,您可以使用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();html' target='_blank'>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( http://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中的示例集成:

1088678934-5b9082ef48315_articlex.jpg

另一個方法是計算固定價格并將其保存在用戶會話中。客戶必須在網站上付款,并且您需要向AJAX查詢已收到的付款。如果收到全部金額,后端會觸發銷售。

最重要的是,您不需要外部服務來在您的網站上集成以太坊支付系統。來一起邊學邊玩以太坊吧。

相關推薦:

如何用PHP開發在線支付系統

如何開發一個虛擬域名系統

以上就是如何利用php開發以太坊的支付系統的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 滦平县| 略阳县| 武安市| 若尔盖县| 鄂托克旗| 建湖县| 舒城县| 济源市| 嵊泗县| 百色市| 嵊泗县| 雷波县| 井陉县| 志丹县| 永新县| 墨竹工卡县| 日喀则市| 西青区| 壤塘县| 宁武县| 金门县| 堆龙德庆县| 连云港市| 北碚区| 建始县| 德昌县| 泌阳县| 涟水县| 万全县| 汶川县| 鄂托克旗| 离岛区| 盈江县| 福鼎市| 克什克腾旗| 南开区| 图木舒克市| 交口县| 太谷县| 榆社县| 柞水县|