識別碼 (Identifier) & ReferenceId
識別碼 (identifier) 可讓您追蹤錢包及其存款和提款。
注意:本頁的代碼應視為偽碼 (pseudocode)。有關詳細資訊和完全正确的範例,請參閱說明文件中描述特定功能的頁面。
重要事項
存款地址會永久映射至其建立時的識別碼 (identifier)
傳送至此類地址的交易總會包含識別碼 (identifier)
identifier
和recipientId
表示相同的概念(分別用於存款和出款/提幣)referenceId
在存款請求中是可選的。如果您同時管理存款請求,它可以讓您進一步識別用戶存入的是哪筆存款。
強烈建議在使用者和存款地址之間保持一對一的對應關係。
為什麼?
永久分配的存款地址意味著每次啟動存款(或通過某種演算法從預先產生的池中選擇)時都不必創建新的錢包。為一個識別碼 (identifier) 請求一個存款地址後,您知道該識別碼 (identifier) 和地址是永遠相連的,因此不需要再為該識別碼 (identifier) 請求存款地址。如果您仍想檢查地址,AP 只需在資料庫中查找該錢包,而不是在區塊鏈上創建一個新錢包 - 這可能是一個冗長的過程,因此仍然更有效率。
如果您管理的是一組用戶,您會更容易追蹤哪個用戶有哪個地址用於存款(因為只有一個,而且總是同一個)。同樣地,您的用戶只需處理一個地址(或確實是每個網絡一個)用於存款,將存款進入錯誤錢包的任何風險降至最低。
詳細說明
在文件和程式碼中,您會遇到「識別碼」 (identifier)(有時是 「recipientId」)的概念。識別碼 (identifier) 就是唯一識別存款地址、存款和提款的東西。通常,識別碼 (identifier) 會是 userId 或類似的東西,但如何使用則由您決定。
如果您管理存款請求,您可以將您的存款 ID 傳給 「referenceId」,以進一步識別用戶存入的是哪筆存款。如果您管理出款請求,您可以直接將您的出款 ID 傳給 「receiverId」,它將在回調中作為 「identifier」 返回。
存款
建立存款地址
回調的地址 (上例中為 TTVkK6hGoAFhaLh1NTkUDHjcFFXKmWcSdb) 現在永久指定給識別碼 'user1'
。之後任何相同函式 (function) 的回調都會傳回相同的地址:
如果您變更網路或識別碼 (identifier),自然會得到不同的地址:
如果您需要將存款對應到您的存款請求,您需要將存款請求 ID 傳給 referenceId
存款回調
如果您在 getDepositAddress 中傳入 referenceId
,您也會在回調中收到 referenceId。
出款/提款
處理出款(提款)
這將在 Tron (TRX) 網絡上啟動一筆從 AkashicPay 到外部錢包 TAzsQ... 的交易,價值為 10 USDT。由於 AkashicPay 的工作方式,提款可能會從許多錢包中的一個發送。因此,不能保證(事實上,不太可能)取款是從 user1 用來存款的相同地址發送的,您絕對不應該相信這一點。
請注意,支付識別碼 (payout-identifier) 不必與存款識別碼 (deposit-identifier) 相同。舉例來說,如果您想要追蹤個別交易的細節,而不只是追蹤發起交易的使用者,一個簡單的方法就是透過識別碼 (identifier) 對交易進行編號:
但是,基於上述原因,我們強烈建議存款時不要使用此方法。
出款回調
特殊案例
付款時沒有識別碼 (identifier)?
根據您的使用情況,有些情況下可能不需要包含識別碼 (identifier)。例如,向特殊錢包進行內部交易或進行利潤出款時。一般而言,對於這些與任何使用者無關的出款,識別碼 (identifier) 基本上是多餘的。但是,我們仍然要求所有交易都要有識別碼 (identifier),以確保所有交易都能被清楚追蹤。這是由於沒有安全的方法來分開兩個交易,否則在技術上有可能同時發生兩個原本相等的交易。因此,我們鼓勵您使用合理的識別碼 (identifier) 記錄所有交易。例如:
當然,任何字串參數 (string-argument) 都是允許的,所以如果您絕對確定不想透過識別碼 (identifier) 來追蹤交易,您可以直接提供任何隨機字串 (string),然後馬上忘記它:
注意!請勿使用空字串 (string)!
多個存款地址?
當然,沒有什麼可以阻止您在系統中為「user1」提供多個存款地址。也許一個地址會用於特別促銷或其他情況。在這種情況下,您可以簡單地做以下事情:
或許您可以將此儲存於您的使用者,例如:
像往常一樣,任何存入上述兩個地址的存款現在都會返回各自的識別碼 (identifier)。
這是一個展示如何使用 AkashicPay 的範例。但是,我們建議在用戶和存款地址之間始終保持一對一的映射,以獲得最高的效率和最小的混淆可能性。
Last updated
Was this helpful?