PayPal SOAP API - 快速结帐 - 错误 10002
Posted
技术标签:
【中文标题】PayPal SOAP API - 快速结帐 - 错误 10002【英文标题】:PayPal SOAP API - Express Checkout - Error 10002 【发布时间】:2012-07-02 22:18:41 【问题描述】:我正在尝试将我的网站连接到 Paypal 沙盒,以便使用 Express Checkout 功能。我已将此 link 用作参考,但我不断收到 10002 错误“安全标头无效”。 从文档来看,这必须是一个无效的凭据问题,但如果我通过soapUI手动发出请求,它会返回“成功”,如果我使用 curl command 它也可以按预期工作。 场景:ASP.NET 页面有两个 Web 引用,一个是 https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl,另一个是 https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl,给定的凭据是用户名、密码和签名,您可以在以下代码 sn-p 中看到:
using CloudShop.com.paypal.sandbox.www;
namespace CloudShop
public static PayPalAPIAASoapBinding BuildPayPalWebservice()
UserIdPasswordType credentials = new UserIdPasswordType()
Username = CloudShopConf.PayPalAPIUsername,
Password = CloudShopConf.PayPalAPIPassword,
Signature = CloudShopConf.PayPalAPISignature
;
PayPalAPIAASoapBinding paypal = new PayPalAPIAASoapBinding();
paypal.RequesterCredentials = new CustomSecurityHeaderType()
Credentials = credentials
;
return paypal;
现在我想知道如何进行调试。有什么问题?
【问题讨论】:
那么你是怎么解决这个问题的? 【参考方案1】:一些想法:
检查您是否使用 Live-沙盒帐户的凭据。
您是否使用https://api-3t.sandbox.paypal.com/2.0/
(尤其是-3t 部分)作为端点? You should as you are using Signature authentication。
像往常一样,您应该逐步检查您正在使用的每个设置:协议、API 端点、版本、凭据等,并将您的手动 SoapUI 调用与存储在您的商店配置中的信息进行比较。
我还发现了一个blog article on this error 可能有助于解决此问题。
【讨论】:
对于“POINT 1”,凭据肯定是用于沙盒的。对于“第 2 点”,我输入 'paypal.Url = "api-3t.sandbox.paypal.com/2.0/";'在 paypal.RequesterCredentials 之前,但问题仍然存在。老实说,我现在有点迷茫...... 您可能应该找到一种方法来查看您的应用程序发送的实际原始 SOAP 请求(删除您的凭据并将其添加到您的问题中)。您的 SoapUI 请求必须有所不同(您可能也想在此处添加)。 SOAP 和 PayPal API(文档)都不是最容易理解的技术。 我做了一个wireshark捕获来确认远程端点,它也是正确的。目标 IP 为 173.0.82.83,与 nslookup 的答案“非权威答案:名称:api-3t.sandbox.paypal.com 地址:173.0.82.83”相匹配。由于连接受 SSL 保护,您知道打开 SOAP 信封的任何方法吗? 不是真的,你可以看看wiki.wireshark.org/SSL 和support.citrix.com/article/CTX116557。但也许在发送/加密之前在代码中调试消息会更容易。 重写整个事情后,SOAP 请求开始工作。还在想怎么回事?!以上是关于PayPal SOAP API - 快速结帐 - 错误 10002的主要内容,如果未能解决你的问题,请参考以下文章