doc.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package gopay
  2. /*
  3. // Java SDK 获取Root证书SN
  4. public static String getRootCertSN(String rootCertContent){
  5. String rootCertSN = null;
  6. try {
  7. X509Certificate[] x509Certificates = readPemCertChain(rootCertContent);
  8. MessageDigest md = MessageDigest.getInstance("MD5");
  9. for (X509Certificate c : x509Certificates) {
  10. if(c.getSigAlgOID().startsWith("1.2.840.113549.1.1")){
  11. md.update((c.getIssuerX500Principal().getName() + c.getSerialNumber()).getBytes());
  12. String certSN = new BigInteger(1,md.digest()).toString(16);
  13. certSN = fillMD5(certSN);
  14. if(StringUtils.isEmpty(rootCertSN)){
  15. rootCertSN = certSN;
  16. }else {
  17. rootCertSN = rootCertSN + "_" + certSN;
  18. }
  19. }
  20. }
  21. }catch (Exception e){
  22. AlipayLogger.logBizError(("err"));
  23. }
  24. return rootCertSN;
  25. }
  26. // Java SDK 获取证书SN
  27. public static String getCertSN(String certPath)throws AlipayApiException{
  28. InputStream inputStream = null;
  29. try {
  30. inputStream = new FileInputStream(certPath);
  31. CertificateFactory cf = CertificateFactory.getInstance("X.509");
  32. X509Certificate cert = (X509Certificate)cf.generateCertificate(inputStream);
  33. MessageDigest md = MessageDigest.getInstance("MD5");
  34. md.update((cert.getIssuerX500Principal().getName()+cert.getSerialNumber()).getBytes());
  35. String certSN = new BigInteger(1,md.digest()).toString(16);
  36. certSN = fillMD5(certSN);
  37. return certSN;
  38. }catch (NoSuchAlgorithmException e){
  39. throw new AlipayApiException(e);
  40. }catch (IOException e) {
  41. throw new AlipayApiException(e);
  42. }catch (CertificateException e){
  43. throw new AlipayApiException(e);
  44. }finally {
  45. try {
  46. if (inputStream != null) {
  47. inputStream.close();
  48. }
  49. }catch (IOException e) {
  50. throw new AlipayApiException(e);
  51. }
  52. }
  53. }
  54. */