This commit is contained in:
邹宗楠
2025-07-11 16:41:48 +08:00
parent 6d9c6a88fc
commit d50435775c
8 changed files with 253 additions and 110 deletions

View File

@@ -1,15 +1,6 @@
package lakala
import (
"crypto"
"crypto/rand"
"crypto/rsa"
"crypto/sha256"
"crypto/x509"
"encoding/base64"
"encoding/json"
"encoding/pem"
"fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals"
"testing"
@@ -21,42 +12,6 @@ func TestSign(t *testing.T) {
}
func TestJiami(t *testing.T) {
sign, err := signParamRSA2("8000000000001", "1610334026688401311", "1621690412", "123456789012", LaKaLaPrivateKey)
globals.SugarLogger.Debugf("---sign := %s", sign)
globals.SugarLogger.Debugf("---err := %v", err)
}
// signParamRSA 支付签名
func signParamRSA2(appId, serialNo, timeStamp, nonceStr, RSAPrivate string) (sign string, err error) {
block, _ := pem.Decode([]byte(RSAPrivate))
private, err := x509.ParsePKCS8PrivateKey(block.Bytes)
if err != nil {
return "", err
}
// 签名参数
body1, err := json.Marshal(`{"reqData":....此处省略具体报文......}`)
sm4Key, _ := base64.StdEncoding.DecodeString(SM4Key)
body2, err := SM4ECBEncrypt(body1, sm4Key)
if err != nil {
return "", err
}
bodyData := base64.StdEncoding.EncodeToString(body2)
context := fmt.Sprintf("%s\n%s\n%s\n%s\n%s\n", appId, serialNo, timeStamp, nonceStr, bodyData)
// 进行rsa加密签名
hashed := sha256.Sum256([]byte(context))
signedData, err := rsa.SignPKCS1v15(rand.Reader, private.(*rsa.PrivateKey), crypto.SHA256, hashed[:])
if err != nil {
return "", err
}
signData := base64.StdEncoding.EncodeToString(signedData)
authorization := signData // fmt.Sprintf(`LKLAPI-SHA256withRSA appid="%s",serial_no="%s",timestamp="%s",nonce_str="%s",signature="%s"`, a.appID, a.serialNo, timeStamp, nonceStr, signData)
return authorization, nil
}
func TestPayStatusQuery(t *testing.T) {
api.PayStatusQuery(&PayStatusQueryReq{
MerchantNo: "822290059430BFA",