isv.missing-app-cert-sn(缺少应用公钥证书序列号)
报错原因
1、资金类接口(强制必须要使用公钥证书)却使用了普通公钥方式进行签名导致的;
2、公钥证书请求调用sdk提交方法错误;
3、应用公钥证书路径(app_cert_path)设置错误;
4、应用公钥证书文件引用错误;
排查方案
1、普通公钥签名导致报错 目前新创建的应用,资金类接口会进行强制校验是否公钥证书签名,若使用普通密钥方式签名报错isv.missing-app-cert-sn(缺少应用公钥证书序列号)。
所以资金类接口(如单笔转账到支付宝账户,现金红包),必须使用公钥证书进行签名请求。
2、公钥证书请求调用的sdk提交方法错误
公钥证书的response请求方式是否正确:
(1)java语言response的execute()方法需改成certificateExecute();
(2)PHP语言response的execute()方法仍然使用execute();
(3).Net语言response的execute()方法需改成CertificateExecute();
3、公钥证书签名路径设置错误
应用公钥证书路径(app_cert_path)路径存在问题,建议检查路径传值是否正确;
(1)建议设置绝对路径,进行引用证书;
(2)证书下载文档的地址,与代码中设置的路径地址是否一致;
4、公钥证书签名证书引用错误
app_cert_path设置路径对象错误,不是密钥工具生成时原始的公钥文件路径,而是需要从开放平台上进行下载的证书crt文件。
注:应用公钥证书crt文件,需要点击进入,选择使用的应用,再点击应用信息,如图:
然后在“接口加密方式”中的“应用公钥证书”位置,点击“下载证书”。 如图:
5、自行实现签名
检查是否设置应用公钥证书SN(app_cert_sn)参数参与签名;
注:公钥证书自签名方式中,除文档参数外,需携带应用公钥证书SN(app_cert_sn)、支付宝根证书SN(alipay_root_cert_sn)进行请求。
具体参考公钥证书签名步骤。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。