美文网首页golang
golang版google pay 支付签名验证

golang版google pay 支付签名验证

作者: 顶尖少爷 | 来源:发表于2020-06-10 18:12 被阅读0次

golang版google pay 支付签名验证


//data :purchaseData 订单信息
//sign dataSignature 签名
//publicKey 谷歌公钥 无需加-----

func verifyGoogleSign(data string , sign string,publicKey string) (bool,error) {

    decodePublic,err:=base64.StdEncoding.DecodeString(publicKey)
    if err!=nil{
        return false,err
    }
    pubInterface ,err:=x509.ParsePKIXPublicKey(decodePublic)
    if err!=nil{
        return false,err
    }

    pub:=pubInterface.(*rsa.PublicKey)

    decodeSign,err:=base64.StdEncoding.DecodeString(sign)
    if err!=nil{
        return false,err
    }

    sh1:=sha1.New()
    sh1.Write([]byte(data))
    hashData := sh1.Sum(nil)

    result := rsa.VerifyPKCS1v15(pub, crypto.SHA1, hashData, decodeSign)
    if result!=nil{
        return false,err
    }
    return true,nil
}

相关文章

网友评论

    本文标题:golang版google pay 支付签名验证

    本文链接:https://www.haomeiwen.com/subject/fbwptktx.html