How-To:Handle Deposits/zh

From Nxt Wiki
Jump to: navigation, search

开发者提供了一些好的方法以在你的软件中实现一些功能。 该技巧由Come-from-Beyond创造。

1 处理充值的一种方法

  1. 产生一个具有50+字符的字符串。这是你的主密码。 它必须具有很强的密码强度。本例中,假设为 "secret".
  2. 当用户想充值时, 你生产一个独一无二的ID。 可以一个用户一个ID, 而不必须为每次充值创造一个新地址。
  3. 使用 "secret"+ID 为充值账户创建一个密码。例如: "secret8475347836".
  4. 使用API 调用 创造一个账户: http://localhost:7874/nxt?requestType=getAccountId&secretPhrase=secret8475347836 ,将返回一个对应的账户ID。将该ID给要充值的用户。
  5. 周期性的检查是否该地址有收入交易:使用 http://localhost:7874/nxt?requestType=getAccountTransactionIds&account=6975576163363041725&timestamp=0
  6. 对在列表中的每个交易ID,你可以得到交易信息: http://localhost:7874/nxt?requestType=getTransaction&transaction=83492836836338756
  7. 当你得到足够多的确认 (至少10个), 你可以在你的软件上增加该用户的余额。

2 一些非常重要的事情

如果块变成孤块,交易可能被取消,所以要注意时间标记和截止日期值。时间标记是自起源块(2013年11月24日十二时00分00秒UTC)起,单位为秒。该交易的截止时间是按分钟计。

timestamp + deadline * 60 < current time, 该交易过期。 当时间标记大于timestamp (of the transaction) + deadline * 60时, 该交易不能被载入到块中。现在的时间可以用 http://localhost:7874/nxt?requestType=getTime 得到。

为了确保您不会失去交易,你应该检查使用较远截止时间的用户,以防其通过设置太远时间标志而做出欺骗交易。

同样,你应该检查一个交易是否仍被确认, 直至其得到720个确认。 如果不是, 重新广播该交易到网络, 使用如下:http://localhost:7874/nxt?requestType=broadcastTransaction&transactionBytes=f11234bd3a2fc19c2ba6b7c0d108deea9fcbafda5f544e4648c651ec4ed34ed2 。 交易字节可被通过如下得到 :http://localhost:7874/nxt?requestType=getTransactionBytes&transaction=83492836836338756