我使用setExpressCheckout
方法在Sandbox帐户中的Expresscheckout
期间遇到以下错误。我正在使用SOAP
库paypal_base.jar
,paypal_stubs.jar
PM com.paypal.sdk.exceptions.TransactionException <init>
SEVERE: (403)Forbidden
有人帮助我解决这个问题?
请参考https://www.paypal-notify.com/eventnotification/event_details?eventid=4283。 您可以尝试使用" org.apache.axis.transport.http.commonshtpsender"中的"轴"来支持http1.1。您必须使用轴1.3或更多,因为1.2具有HTTPS Connection的错误
将客户端config.wsdd添加到您的类路径中以使用http1.1。您可以将Log4J设置为调试级别,以查看您现在是否使用HTTP 1.0。如果没有,这将无济于事。文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http" pivot="java:org.apache.axis.transport.http.CommonsHTTPSender">
<parameter name="PROTOCOL">HTTP/1.1</parameter>
</transport>
<transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>
<transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>
</deployment>
这就像上面所有答案的夏天以及其他参考。
user3405529如下所述,请遵循链接并了解您的问题。
使用HTTP 1.0协议的商人。
这对于所有使用Axis 1.4
的旧PayPal API的人来说都是常见的这是我项目中的问题。
我转介了此链接以获取更多详细信息以了解和解决问题
http://marc.info/?l=Axis-user&m=1119144869612056
有四种方法可以解决此
1)修改轴源代码使用http 1.1协议
String httpver = msgContext.getStrProp(MessageContext.HTTP_TRANSPORT_VERSION);
if (null == httpver) {
httpver = HTTPConstants.HEADER_PROTOCOL_V11;
}
//httpver = httpver.trim();
//if (httpver.equals(HTTPConstants.HEADER_PROTOCOL_V11)) {
// http10 = false;
//}
或 设置消息上下文msgcontext.setstrprop(..)为httpconstants.header_protocol_v11
然后重建轴并维护自己的源代码以进行参考
2)根据用户3405529使用client-config.wsdd in classpath with stanspath java:org.apache.axis.transport.http.commonshtpsender在运输中 标签
我对此更改进行了测试,并且正常工作。
,但两种方法默认情况下使用HTTP 1.1。在我们的项目中,我们没有为HTTP协议版本的更改做好准备。
请参阅http://www2.research.att.com/~bala/papers/h0vh1.html
3)更新贝宝存根并重建供使用 - 我不尝试。
4)将PayPal SDK更新为最新版本...
我们使用更新的PayPal SDK。将来会有所帮助。
我希望它有用