基础命令
Monero的工作方式与您对其他加密货币的习惯有所不同。 就像比特币这样的数字货币,它的许多衍生产品支付系统通常会为每一个支付或用户创建一个新的 收件人地址。
但是,由于Monero有加密地址, 所以不需要为每个支付用户设置单独的收件人地址, 并且可以发布单个帐户地址。相反,当收到付款时,商家会提供给用户“支付ID(payment ID)”。
支付ID(payment ID)是一个十六进制字符串,长度为64个字符,通常是由商家随机创建的。支付ID的一个例子是:
666c75666679706f6e7920697320746865206265737420706f6e792065766572
检查monero-wallet-cli中的支付。
如果您想要使用monero-wallet-cli来检查付款,您可以使用“payment”命令,然后使用您想要检查的支付ID或支付ID。例如:
[wallet 49VNLa]: payments 666c75666679706f6e7920697320746865206265737420706f6e792065766572 payment transaction height amount unlock time 666c75666679706f6e79206973207 7ba4cd810c9b4096869849458181e98e 441942 30.00000 0 [wallet 49VNLa]: █如果您需要以编程方式检查支付,那么接下来的部分将详细介绍。
一步一步的接收付款
以编程方式检查支付。
为了以编程方式检查支付,您可以使用get_payment或get_bulk_payment JSON RPC API调用。
get_payment:这需要使用单一支付ID的payment_id参数。
get_bulk_payment:这是首选的方法,并且需要两个参数,payment_id 一个JSON数组的 payment id 以及一个可选的 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 }] } }
需要注意的是,返回的数量是在基础Monero单元中,而不是在最终用户应用程序中通常使用的显示单元中。 另外,由于事务通常有多个输出,这些输出加起来是支付所需的总金额,所以应该按照tx_hash或payment_id来分组,并加在一起。 此外,由于多个输出可以具有相同的数量,所以必须不尝试从单个get_bulk_payments调用中过滤返回的数据。
在扫描支付之前,检查守护进程RPC API (get_info RPC 调用)以查看是否收到了额外的块是有用的。 通常,您只需要在接收到的块上进行扫描,并将其指定为 get_bulk_payments 的 min_block_height。
编程扫描付款