今天做支付宝接口回调这块,不得不说,以前做过,现在还是遇到到回调签名失败的问题,有点很郁闷了,翻了很多陈年旧帖,试了无数种解决坑的方案,在我成功解决的一瞬间,觉得非常有必要记录一下。
应用公钥(public key)需提供给支付宝账号管理者上传到支付宝开放平台。
应用私钥(private key)由开发者自己保存,需填写到代码中供签名时使用。
生成的私钥需妥善保管,避免遗失,不要泄露。
密钥和应用(APPID)一一对应,即开发者需要为名下的每个应用分别设置密钥,且不同应用的密钥不能混用。
第一步:
下载密钥生成工具:https://opendocs.alipay.com/open/00uk9e
第二步:生成密钥
相关帮助连接:https://opensupport.alipay.com/support/helpcenter/207/201602469554?ant_source=antsupport
请注意JAVA和非JAVA的区别(请选择RSA2加密),上图的应用公钥和应用私钥用于支付提交支付验证使用
第三步:上传公钥
登录 开发者中心控制台 > 我的应用 > 选择应用,点击进入应用详情页 > 设置 > 开发设置 > 接口加签方式
点击加签变更复制第 二 步生成的公钥到 填写公钥字符 的输入框中,即可完成应用公钥的上传,并生成一个支付宝公钥,用于在后续的签名与验签步骤中作为签名验证
第四步:复制支付宝公钥到你的服务端设置
异步回调验签使用的支付宝公钥,这个一定要看清楚
最后记得把授权回调地址设置一下就可以了
应用公钥和支付宝公钥区别
应用公钥和支付宝公钥是两个完全没有关系且不等的字符串。
应用公钥与开发者私钥配对并需要上传到支付宝合作伙伴密钥管理,支付宝在收到用户的支付请求时用开发者公钥对请求进行验签。支付宝公钥与支付宝私钥配对,用于商户收到支付宝返回的同步、异步回调后的验签。
相关连接:
支付宝异步回调:https://opensupport.alipay.com/support/helpcenter/192/201602471955?ant_source=antsupport