我使用 PuttyGen 生成一个paypal.pem
如此处所述的(但另存为 .ossh)。
好的,最后我像这样配置 Paypal:
PayRequest request = new PayRequest();
...
HashMap<String, String> configurationMap = new HashMap<String, String>();
configurationMap.put("acct1.UserName", "XXX");
configurationMap.put("acct1.Password", "XXX");
configurationMap.put("acct1.CertKey", "XXX");
configurationMap.put("acct1.CertPath", "src/test/resources/PayPal09-2013.ossh");
AdaptivePaymentsService s = new AdaptivePaymentsService(configurationMap);
s.pay(request);
在最后一行抛出一个SSLConfigurationException
。
com.paypal.exception.SSLConfigurationException: toDerInputStream rejects tag type 45
at com.paypal.core.DefaultHttpConnection.setupClientSSL(DefaultHttpConnection.java:42)
at com.paypal.core.APIService.makeRequestUsing(APIService.java:165)
at com.paypal.core.BaseService.call(BaseService.java:258)
at com.paypal.svcs.services.AdaptivePaymentsService.pay(AdaptivePaymentsService.java:589)
at com.paypal.svcs.services.AdaptivePaymentsService.pay(AdaptivePaymentsService.java:552)
...
Caused by: com.paypal.exception.SSLConfigurationException: toDerInputStream rejects tag type 45
at com.paypal.core.SSLUtil.setupClientSSL(SSLUtil.java:129)
at com.paypal.core.DefaultHttpConnection.setupClientSSL(DefaultHttpConnection.java:40)
... 30 more
Caused by: java.io.IOException: toDerInputStream rejects tag type 45
at sun.security.util.DerValue.toDerInputStream(DerValue.java:847)
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1221)
at java.security.KeyStore.load(KeyStore.java:1214)
at com.paypal.core.SSLUtil.p12ToKeyStore(SSLUtil.java:92)
at com.paypal.core.SSLUtil.setupClientSSL(SSLUtil.java:115)
... 31 more