基于最近java调试的支付宝app支付,踩过的一些坑,现列举一下。
-
支付部分
-
公钥配置
登录支付宝,下载生成公私钥工具,生成公私钥(建议生成2048位的),这个都是没问题的。
上传的时候,秘钥上传到RSA2(签名采用AlipaySignature.rsa256Sign3个参数的方法),这个注意的就是采用签名的方法要跟配置的相对应,生成的公钥直接复制进去,不要通过发字符串给别人配置,会产生回车字符并不易察觉。
-
私钥设置
接下来就是存储私钥,我们通过从db中读取,设置进去的时候一定要使用update,直接复制进去易引入回车空格。复制到配置文件或者代码中也要切记。
-
Demo测试
客户端安卓、IOS支付宝都有提供demo,先通过demo测试,这样可以确定几点:1、签约问题,2、公钥配置问题,3、私钥有效问题
-
线上测试
具体的参数要跟支付宝的案例多比对,这个环节的问题多比对签名前的字符串。
-
-
回调验证
-
支付宝应用公钥读取
从支付宝下载下来后,存储公钥跟上面存储公钥一样,也要防止引入空格或者回车字符。
-
签名算法
Java RSA2采用AlipaySignature.rsaCheckV1() 4个参数的方法,支付宝使用案例上用的是3个参数的,是对RSA的验签。
-
测试
上面通过了,基本问题不大
-