今天在做支付宝支付时出现der input, integer tag error错误,这个错误出现的原因一般情况是应用公钥(pacs8格式)与支付宝网站上上传的公钥不相符。下面具体说明一下支付宝如何来生成应用公钥。(请注意区分本文的私钥和公钥)
1、首先要下载支付的生成工具,这个工具目前在支付宝官网有2个,有一个使用不能生成2048长度的,请使用如下地址的生成器支付宝私钥生成器,具体如何生成支付宝官方文档中有介绍,工具要选择PKCS8(java使用)和2048长度,然后生成了一个商户私钥和一个商户公钥。商户私钥是我们程序中需要使用的,商户公钥需要上传支付宝应用信息中。
2、将商户公钥(2048长度)上传支付宝应用信息中,参考地址https://openhome.alipay.com/platform/keyManage.htm# ,然后 点击查看应用公钥,点击修改,将我们生成好的商户公钥上传上去。注意,下面有一个 验证公钥正确性 按钮,点击后,可以将我们生成的私钥(PKCS8格式)拷贝进去进行校验。
3、将商户私钥放到代码中,支付宝支付时候需要使用。相关支付代码,请参考(第三方支付--支付宝)