收藏
回答

签名不对,请检查签名是否与开发平台签名一致

到底哪里有问题,请回答!!!

sign, err := generateWxAppPaySign(
    "wxcdb70914872f1d06",
    prepayId,
    nonceStr,
    timestamp,
    utils.MchPrivateKey,
)
if err != nil {
    log.Println("签名生成失败: %v", err.Error())
}
func generateWxAppPaySign(appid, prepayId, nonceStr, timestamp string, privateKey *rsa.PrivateKey) (string, error) {
    if privateKey == nil {
       return "", fmt.Errorf("private key is nil")
    }
    if appid == "" || prepayId == "" || nonceStr == "" || timestamp == "" {
       return "", fmt.Errorf("invalid parameters")
    }

    message := fmt.Sprintf("%s\n%s\n%s\n%s\n", appid, timestamp, nonceStr, prepayId)

    h := sha256.New()
    h.Write([]byte(message))
    digest := h.Sum(nil)

    signature, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, digest)
    if err != nil {
       return "", err
    }

    return base64.StdEncoding.EncodeToString(signature), nil
}


回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容