前言
写这篇随笔的目的主要是为了记录近期对接多家支付通道,在这过程中的经验,总结和教训
加签和验签
常见的加签/验签方式
目前对接的支付通道提供API接口,保证接口安全的方式不尽相同,参数加签和验签的方式也有区别
例如:针对统一下单接口,下面例举出常见的通道使用的加签方式
原生微信支付: 提供MD5,SHA256两种加签方式
原生支付宝支付:提供RSA,RSA2两种加签方式
银盛支付通道:提供RSA加签方式
酷点支付通道:提供MD5加签方式
等等
加签/验签注意事项
1.sign字段,通常不参与签名
2.字段值为空,通常该字段不参与签名
3.待签名的内容,通常要对签名内容进行ASCII排序
排序tips,可以先对获取签名内容Map中的所有Key值,将Key值存放到List集合中,使用API如下进行排序
Collections.sort(keys);
4.商户私钥证书或商户私钥字符串,商户私钥证书通常时商户自己生成或购买,具有时效性,商户私钥证书自己保留,商户公钥证书存放在支付通道后台,
商户可以通过私钥证书和证书密钥获取对应的私钥字符串
如果使用私钥证书加签,则可以把私钥证书缓存到本地,避免每次都要从磁盘读取证书带来的时间损耗
5.支付通道平台公钥证书,支付通道平台通常会提供给商户公钥证书或公钥字符串,用于验签
6.验签异常:
Q:got 128 but was expecting 256
A: 通常是在验签时,公钥证书的类型错误 ,参考:https://opendocs.alipay.com/support/01ravz
7.RSA的私钥格式PKCS1与PKCS8,Java只能用PKCS8格式的私钥
标签:总结,私钥,证书,商户,对接,支付,加签,通道 来源: https://www.cnblogs.com/july-sunny/p/15800175.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。