我正在尝试将我的网站连接到PayPal沙盒,以便使用快速结账功能。我已使用此链接作为参考,但不断收到 10002 错误"安全标头无效"。
从文档中来看,这必须是一个无效的凭据问题,但是如果我通过soapUI手动发出请求,它将返回"成功",如果我使用curl命令,它也按预期工作。
场景:ASP.NET 具有两个 Web 引用的页面,一个指向 https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl,另一个指向 https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl,给定的凭据是用户名、密码和签名,如以下代码片段所示:
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;
}
现在我想知道如何进行调试。可能出了什么问题?
一些想法:
-
检查您是否正在使用沙盒帐户的实时凭据。
-
您是否使用
https://api-3t.sandbox.paypal.com/2.0/
(尤其是 -3t 部分)作为端点?您应该像使用签名身份验证一样。 -
像往常一样,您应该逐步完成您正在使用的每个设置:协议、API 端点、版本、凭据等,并将您的手动 SoapUI 调用与存储在商店配置中的信息进行比较。
我还发现了一篇关于此错误的博客文章,可能有助于解决此问题。