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

标签 c# ethereum cryptocurrency

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

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

最佳答案

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

  1. 您描述的 HD 钱包 - 与比特币时代没有什么不同

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

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

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

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

关于c# - 为以太坊支付网关生成地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62606305/

相关文章:

c# - 如何使用 Selenium 日志记录功能(使用 C#)?

c# - 在特定屏幕上启动进程

以太坊客户端 RPC 响应 403 "invalid host specified"

postgresql - 在 PostgreSQL 中存储任意精度整数

javascript - 如何通过交易哈希知道交易中使用的加密货币?

c# - 如何检查ArrayList中对象的类型

deployment - Solidity 迁移合约试运行与真实运行

javascript - 新手-获取以太坊最新区 block 的API

javascript - Next.js 使用 getServerSideProps 如何将 Prop 从页面传递到组件?

C# - 单元测试,模拟?