为以太坊支付网关生成地址

Posted

技术标签:

【中文标题】为以太坊支付网关生成地址【英文标题】:Generate address for ethereum payment gateway 【发布时间】:2020-10-17 17:42:43 【问题描述】:

我想在我的网站上添加“使用以太坊付款”功能,我知道在以太坊中我们有一个高清钱包,可以为我们提供一些帐户,但我不知道我是否应该每次都生成新帐户新发票?然后将以太币转入主账户? 智能合约是否包含在这个解决方案中。

我正在使用 dotnet core (c#) 、ganache 作为测试链和 nethereum。

【问题讨论】:

【参考方案1】:

您不需要为每张发票创建新帐户,您只需要维护一个帐户即可。根据我的说法,有两种方法可以做到这一点:

    您可以制作智能合约或使用一些开源代币传输合约来允许将代币从发件人转移到您的帐户。 您可以使用一些现有的基于加密货币的支付网关,例如 b2binpay https://b2binpay.com/

如果这有帮助,请告诉我。

【讨论】:

我需要自己实现它,并且不能使用像 b2pinpay 这样的第三方网站,如果您再解释一下解决方案 1,我将不胜感激......我可以查看任何示例吗?【参考方案2】:

在以太坊上创建支付网关的三种方法

    如您所描述的高清钱包 - 与比特币时代没有不同

    一个单一的转发智能合约,通过交易数据字段中的参考号分隔客户。请注意,数据字段由 MetaMask 和此类钱包自动填充,因此用户永远不会看到这一点。请注意,如果人们没有使用 MetaMask 或 Trust mobile 等合适的钱包,而是尝试从中心化交易所付款,这种方法会拒绝他们的付款。

示例:https://github.com/TokenMarketNet/smart-contracts/blob/master/contracts/PaymentForwarder.sol

    一个主智能合约,将新的支付转发器智能合约部署到每个进行支付的客户地址。在这种情况下,地址由 CREATE2 EVM 操作码确定。 Coinbase 使用这种方法,因为它使支付处理成为非托管的,并且 Conbase 本身不能从商家那里窃取资金。任何费用都可以写入智能合约。

https://blog.coinbase.com/usdc-payment-processing-in-coinbase-commerce-b1af1c82fb0

【讨论】:

因为解决方案 1,2 似乎有点棘手,所以如果我想使用解决方案 1,那么我必须为每个收到的付款请求创建一个帐户并使用其公钥作为付款地址(并阻止帐户),然后在一个主帐户中付款后收集所有资金?将所有资金转入主账户的额外费用如何? 对于解决方案 1,您需要在单独的交易中为账户充值汽油,然后才能收取任何收款。这样 2 和 3 就更优雅了,因为你可以编写智能合约,让主钱包很容易收集传入的 ETH 和代币并支付费用。 请注意,这仅涉及代币交易 - 以 ETH 发送的人可以在 ETH 价值本身中减少他们的 tx 费用。

以上是关于为以太坊支付网关生成地址的主要内容,如果未能解决你的问题,请参考以下文章

从零开发区块链应用--以太坊地址生成

以太坊的ABI编码

生成以太坊系地址

怎样批量发送以太坊ETH?

什么是以太坊?什么是智能合约?

以太坊从公钥生成地址的具体过程