403在setexpresscheckout中禁止



我使用setExpressCheckout方法在Sandbox帐户中的Expresscheckout期间遇到以下错误。我正在使用SOAPpaypal_base.jarpaypal_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。将来会有所帮助。

我希望它有用

相关内容

  • 没有找到相关文章

最新更新