diff options
Diffstat (limited to 'inquiry_status.go')
| -rw-r--r-- | inquiry_status.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/inquiry_status.go b/inquiry_status.go new file mode 100644 index 0000000..66797bf --- /dev/null +++ b/inquiry_status.go @@ -0,0 +1,31 @@ +// SPDX-FileCopyrightText: 2022 M. Shulhan <ms@kilabit.info> +// SPDX-License-Identifier: GPL-3.0-or-later + +package duitku + +import ( + "crypto/sha256" + "encoding/hex" + "fmt" + "time" +) + +// InquiryStatus request for transfer status. +type InquiryStatus struct { + Request + + DisburseID int64 `json:"disburseId"` +} + +// Sign the request, fill the UserID, Email, Timestamp, and generate the +// Signature. +func (inq *InquiryStatus) Sign(opts ClientOptions) { + inq.UserID = opts.UserID + inq.Email = opts.Email + inq.Timestamp = time.Now().UnixMilli() + + var plain string = fmt.Sprintf(`%s%d%d%s`, inq.Email, inq.Timestamp, inq.DisburseID, opts.ApiKey) + var plainHash [sha256.Size]byte = sha256.Sum256([]byte(plain)) + + inq.Signature = hex.EncodeToString(plainHash[:]) +} |
