PayPal快速结账SOAP - 版本错误

3
通常情况下,无论是客服还是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

过去我遇到过与XML相关的类似问题,几乎总是与命名空间有关。我知道你已经尝试过了,但我建议再次检查一下。

你可以使用这个网站上的演示来比对一下,它会给你提供功能性的SOAP请求示例,以便找出可能存在的错误。

另一个选择是,既然我看到你在使用PHP,你可以使用PayPal PHP SDK。它包含了所有API调用的功能示例和空模板。你只需要打开示例/模板,填入自己的数据值,并处理剩下的部分即可。你只需几分钟就能完成Express Checkout,而无需为正确格式化XML而烦恼。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接