【问题标题】:Identification of purchased product购买产品的识别
【发布时间】:2018-01-01 13:08:59
【问题描述】:

我已经在测试网络上创建了硬币。现在的困惑是,

我已经向 100 个成员分发了硬币,他们可以使用这些硬币在我的平台上购买数字产品(域)。现在的困惑是,如果所有域都以 10 美元(100 个硬币)的价格出售,并且多个域被出售,我如何识别哪个用户向我付款。因为所有用户都可以看到我的钱包地址。有什么方法可以检测到哪个购买的产品的付款?

【问题讨论】:

  • 我们不仅要查看您的代码,而且您似乎忘记了在交易中您可以看到硬币的去向、来源,通常您可以附加一些任意数据,这可能是您的产品信息。

标签: blockchain ethereum solidity smartcontracts go-ethereum


【解决方案1】:

将您的钱包变成智能合约。

然后检查应付的后备功能。每当有人向您的合约发送以太币时,该函数就会被调用。

function () payable {
    address guyWhoPaiedMe = msg.sender;
  }

使用 msg.sender 找出是谁给你发送了以太币。

【讨论】:

  • 谢谢,通过上面的代码我会知道谁给我付款了。但是如何识别哪个产品发送了付款。
【解决方案2】:

您可以将特定产品的标识符作为交易的输入数据传递。在这种情况下,很容易识别付款所针对的产品。

web3.eth.sendTransaction web3.eth.sendTransaction(transactionObject [, callback])

向网络发送交易。

参数 1. Object - 要发送的交易对象: • from: String - 发送帐户的地址。如果未指定,则使用 web3.eth.defaultAccount 属性。 • to: String -(可选)消息的目标地址,对于合同创建交易未定义。 • value: Number|String|BigNumber - (可选)在 Wei 中为交易转移的价值,如果是合约创建交易,也是捐赠。 • gas:Number|String|BigNumber -(可选,默认值:待确定)用于交易的gas 量(未使用的gas 将被退还)。 • gasPrice: Number|String|BigNumber - (可选,默认值:待确定)此交易的gas价格,以wei为单位,默认为平均网络gas价格。 • data: String - (可选)包含消息相关数据的字节字符串,或者在合同创建交易的情况下,初始化代码。 • nonce: Number -(可选)nonce 的整数。这允许覆盖您自己的使用相同 nonce 的待处理事务。 2. 功能 - (可选)如果您传递回调,则 HTTP 请求是异步的。有关详细信息,请参阅此说明。

返回

String - 32 字节的交易哈希为 HEX 字符串。

【讨论】:

  • 谢谢,我同意 inputData 作为产品信息。但是用户选择使用 MyEthereumWallet 付款,那怎么可能。在这种情况下,用户有责任添加产品信息,用户可能会给出错误的产品信息。
猜你喜欢
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-16
  • 1970-01-01
  • 2021-03-17
相关资源
最近更新 更多