44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package jiyi
|
|
|
|
import "testing"
|
|
|
|
func TestSign(t *testing.T) {
|
|
// 与文档 Java 示例一致的待签字符串顺序
|
|
body := map[string]string{
|
|
"idNo": "440181199807041111",
|
|
"mobile": "13000000000",
|
|
"name": "黄雅莉",
|
|
"encryptType": "0",
|
|
"timestamp": "1720940866832",
|
|
}
|
|
secret := "a661a2728f2a54b71601d3e8a7f6210d650c2018"
|
|
got := Sign(body, secret)
|
|
want := genMD5("encryptType0idNo440181199807041111mobile13000000000name黄雅莉timestamp1720940866832" + secret)
|
|
if got != want {
|
|
t.Fatalf("sign mismatch: got %s want %s", got, want)
|
|
}
|
|
}
|
|
|
|
func TestEncryptBodyMD5(t *testing.T) {
|
|
body := map[string]string{
|
|
"idNo": "440181199807041111",
|
|
"mobile": "13000000000",
|
|
"name": "黄雅莉",
|
|
"encryptType": "1",
|
|
"timestamp": "1720940866832",
|
|
}
|
|
got := encryptBodyMD5(body)
|
|
if got["encryptType"] != "1" || got["timestamp"] != "1720940866832" {
|
|
t.Fatalf("meta fields should keep plaintext: %+v", got)
|
|
}
|
|
if got["idNo"] != MD5Encrypt("440181199807041111") {
|
|
t.Fatalf("idNo not encrypted: %s", got["idNo"])
|
|
}
|
|
if got["mobile"] != MD5Encrypt("13000000000") {
|
|
t.Fatalf("mobile not encrypted: %s", got["mobile"])
|
|
}
|
|
if got["name"] != MD5Encrypt("黄雅莉") {
|
|
t.Fatalf("name not encrypted: %s", got["name"])
|
|
}
|
|
}
|