接收门罗币

命令行界面的说明

基础知识

门罗币的工作方式和其他@加密货币的工作方式不一样。对比特币和其他山寨币来说,商家收款时常常用一次就更换一次@地址。

因为门罗币有@隐形地址,所以你无需每用一次都换一次地址,你可以一直使用固定的一个@地址。当收款的时候,你可以给付款人提供一个“付款ID”

@付款ID是一个十六进制字符串,有64个字符长,随机地由收款人创建。付款ID的示例是:

666c75666679706f6e7920697320746865206265737420706f6e792065766572

在门罗币钱包(monero-wallet-cli)中确认付款

如果您想使用门罗币钱包(monero-wallet-cli)检查付款是否成功,可以使用“payments”命令,然后附上需要搜索的付款ID或直接搜索付款ID。例如:

[wallet 49VNLa]: payments 666c75666679706f6e7920697320746865206265737420706f6e792065766572
           payment                           transaction               height     amount     unlock time
666c75666679706f6e79206973207     7ba4cd810c9b4096869849458181e98e     441942     30.00000   0
[wallet 49VNLa]: █

如果您需要以编程方式检查付款,详情请参阅下一部分。

收款步骤

  • 生成一个随机的64位付款ID
  • 把地址和付款ID告诉付款人
  • 使用门罗币钱包(monero-wallet-cli)中的“payments”命令确认付款

以编程方式确认付款

要以编程方式检查付款,您可以使用get_payments或get_bulk_payments JSON RPC API。

get_payments: 这需要具有单个付款ID的payment_id参数。

get_bulk_payments: 这是首选方法,需要两个参数,payment_ids - 支付ID的JSON数组 - 以及可选的min_block_height - 要扫描的块高度。

返回数据的示例如下:

[ monero->~ ]$ curl -X POST http://127.0.0.1:18500/json_rpc -d '{"jsonrpc":"2.0","method":"get_bulk_payments","id":"test", "params":{"payment_ids": ["666c75666679706f6e7920697320746865206265737420706f6e792065766572"]}}' -H "Content-Type: application/json"
{
  "id": "test",
  "jsonrpc": "2.0",
  "result": {
    "payments": [{
      "amount": 30000000000000,
      "block_height": 441942,
      "payment_id": "666c75666679706f6e7920697320746865206265737420706f6e792065766572",
      "tx_hash": "7ba4cd810c9b4096869849458181e98e18b6474ab66415de0f4ccf7ab1162fdf",
      "unlock_time": 0
    }]
  }
}

请务必注意,显示的金额是基于门罗币的币本位,而不是用户应用程序中通常使用的单位。此外,由于交易通常具有多个输出,这些输出总计为付款所需的总额,因此应按tx_hash或payment_id对金额进行分组并将其相加。此外,由于多个输出可以具有相同的数量,因此不要从单个get_bulk_payments调用中过滤掉返回的数据。

在扫描付款之前,检查后台程序RPC API(get_info RPC调用)以查看是否已收到其他块的办法是很有用的。一般而言,我们通过将其指定为get_bulk_payments的min_block_height来仅扫描接收到的块。

以编程方式扫描付款

  • 从后台程序获取当前块高度(仅在距离上次扫描已经过了一段时间后进行)
  • 使用我们最新扫描的高度和系统中所有付款ID的列表调用get_bulk_payments RPC API调用
  • 将当前块高度存储为最新扫描的高度
  • 根据我们已收到并处理的事务哈希删除重复项

这个页面尚未被翻译。 如果您愿意协助翻译,请参见 README.