主页 > 比特派钱包和imtoken哪个安全 > PHP开发以太坊支付系统

PHP开发以太坊支付系统

PHP开发以太坊支付系统

由 hubwiz 创建于 4 年前,最后更新于 4 年前 版本 #18294 views1 likes0 收藏

当我第一次考虑通过加密货币实现支付时,我查看了 Stripe 等可用的解决方案。 我认为 Stripe 的问题在于它只允许使用美国商家账户进行比特币支付,所以这不是我的选择。 在以太坊世界中以太坊 php,情况看起来更糟。 有一些较新的服务,但他们都想分一杯羹。

那么我们需要什么来从头开始构建以太坊支付系统呢?

那么它是怎样工作的? 理论上看起来不错,所以让我们构建它。第 1 步:设置服务器

我们将在 nodejs 中使用 vanity-eth 来生成地址。

npm install -g vanity-eth@1.0.4"

在 Windows 上安装 vanity-eth 后:

以太坊团队持有以太比例_以太坊 php_sitetuoluocaijing.cn php以太坊

还需要一些以太坊节点。 我正在使用 Parity,因为它快速可靠。

使用这些参数启动它,但不要将节点直接暴露在 Internet 上,将它们放在没有端口转发的防火墙后面。

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

完全同步的奇偶校验日志:

sitetuoluocaijing.cn php以太坊_以太坊团队持有以太比例_以太坊 php

为了更快地部署,您可以使用 Parity Docker 容器。 还可以保存数据,这样就不必在每次重新制作容器时都重新同步容器。

以太坊 php_sitetuoluocaijing.cn php以太坊_以太坊团队持有以太比例

第二步:编写支付类

首先创建一个名为 libs 的文件夹并将 php-ethereum 存储库克隆到其中。 ethereum-php 项目是 json-rpc 类的一个很好的包装器。

然后我们使用下面的类并将其保存为ethpay.php。 这是支付处理的主要逻辑。 您可以使用它来:

eth = new Ethereum(RPC_IP, RPC_PORT);

sitetuoluocaijing.cn php以太坊_以太坊团队持有以太比例_以太坊 php

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);

以太坊团队持有以太比例_以太坊 php_sitetuoluocaijing.cn php以太坊

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

以太坊团队持有以太比例_以太坊 php_sitetuoluocaijing.cn php以太坊

$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 bcdiv($wei,1000000000000000000,18); } function bchexdec($hex) { if(strlen($hex) == 1) { return hexdec($hex); } else { $remain = substr($hex, 0, -1);

以太坊团队持有以太比例_以太坊 php_sitetuoluocaijing.cn php以太坊

$last = substr($hex, -1); return bcadd(bcmul(16, $this->bchexdec($remain)), hexdec($last)); } } }

最后一步:与您的网站集成

根据您的服务,有多种方法可以执行此操作。

在 API Heaven,我们为每个客户提供一个可以存入资金的 ETH 地址。 一个 cronjob 每分钟检查所有客户地址以检测变化。 如果他们向地址添加 ETH,余额将转换为 API 配额,因此我们的客户甚至无需登录网站即可添加资金。

API Heaven 中的示例集成:

sitetuoluocaijing.cn php以太坊_以太坊 php_以太坊团队持有以太比例

另一种方法是计算固定价格并将其保存在用户会话中。 客户必须在网站上付款,您需要通过 AJAX 发送收到的付款。 如果收到全部金额,后端会触发销售。

最重要的是以太坊 php,您不需要外部服务即可在您的网站上集成以太坊支付系统。 一起来学习和玩以太坊吧。

================================================ == =====================

如果想直接学习PHP和以太坊的实战内容,推荐我们的教程:

php以太坊教程主要介绍使用php进行智能合约开发交互、账户创建、交易、转账、代币开发、过滤器和事件等。

其他区块链教程: