PayPal Express Checkout SOAP - 版本错误

时间:2015-06-26 16:32:38

标签: php xml soap paypal wsdl

像往常一样,支持和PayPal的各个网站在这里都没有用。我得到的错误是一个简单的“版本错误”,其相应的错误号“10006”也会产生完全相同的错误,没有任何关于我错误的地方的更多信息。

我使用的是在https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl找到的WSDL提供的版本。

我目前正在制作的SOAP消息是:

<SOAP-ENV:Envelope
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:ns1="urn:ebay:apis:eBLBaseComponents"
    xmlns:ns2="urn:ebay:api:PayPalAPI">

    <SOAP-ENV:Header>
        <ns2:RequesterCredentials>
            <ns1:Credentials>
                <ns1:Username>[FILTERED]</ns1:Username>
                <ns1:Password>[FILTERED]</ns1:Password>
                <ns1:Signature>[FILTERED]</ns1:Signature>
            </ns1:Credentials>
        </ns2:RequesterCredentials>
    </SOAP-ENV:Header>

    <SOAP-ENV:Body>
        <ns2:SetExpressCheckoutReq>
            <ns1:SetExpressCheckoutRequest>
                <ns1:Version>121.0</ns1:Version>
                <ns1:SetExpressCheckoutRequestDetails>
                    <!-- Transaction details here -->
                </ns1:SetExpressCheckoutRequestDetails>
            </ns1:SetExpressCheckoutRequest>
        </ns2:SetExpressCheckoutReq>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我尝试将Version标记放到各个位置并更改名称空间,但是为了确定,但是如果没有“方法不受支持”,一切都会给我相同的错误。

根据https://developer.paypal.com/docs/classic/api/PayPalSOAPAPIArchitecture/的文档,据我所知,XML应该是正确的......

这里的任何人都有一个有用的想法或解决方案吗?

1 个答案:

答案 0 :(得分:0)

我在过去遇到过与XML类似的问题,它几乎总是归结为命名空间。我知道你说你已经尝试过了,但我会再次调查一下。

您可以在此站点上使用该演示,它将为您提供功能性SOAP请求示例,以便比较并查看您可能出错的内容。

另一种选择,因为我看到你正在使用PHP,就是抓住这个PayPal PHP SDK。它包括所有API调用的功能样本以及空模板。您需要为任何API做的就是打开示例/模板,使用您自己的数据值填充数组参数,然后处理其余的数据。您可以在几分钟内完成Express Checkout,而且您不必为了正确地格式化XML而不得不拔头。