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
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。