go语言开发支付宝快捷支付对接程序

cqyunyang · · 5942 次点击
使用xml标准库解析没有问题,就是报文验签搞不定。支付宝发过来的报文使用了自己的私钥证书进行签名了,我这边有支付宝的公钥证书,但是不知道这种类型签名怎么使用公钥验签。
#4
更多评论
https://github.com/ascoders/alipay 这个 star 数最多,你可以看看
#1
这个是商户端的,我这边要做的是支付宝跟银行之间的交互,通过http+xml报文这种方式进行的;xml报文的签名方式是w3c xml签名推荐标准。 报文样例: <Message id="2013040208221748995"> <CPReq> <version>6.0.1</version> <instId>ALIPAY</instId> <certId>0001</certId> <serialNo>XX</serialNo> <date>XX</date> <accountName>XX</accountName> <bankCardNo>XX</bankCardNo> ...... <channelSystemId>XX</channelSystemId> </CPReq> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod> <ds:Reference URI="#szpbk"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform> <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod> <ds:DigestValue>kTfeubDeAin7B23fcchA=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>DdXwcsn+2HlP8e8UWf5Iqee17DotpKnsYB+dKWGYG3WnY0sl=</ds:SignatureValue> </ds:Signature> </Message>
#2