安全标头无效错误消息

时间:2017-03-29 16:44:03

标签: c# paypal paypal-sandbox

我收到此消息

  

TIMESTAMP = 2017-03-29T16:36:41Z& CORRELATIONID = 9d5672f086c52& ACK = Failure& VERSION = 204& BUILD = 31674279& L_ERRORCODE0 = 10002& L_SHORTMESSAGE0 =安全错误& L_LONGMESSAGE0 =安全标头无效& L_SEVERITYCODE0 =错误

我确信我使用了正确的凭据,我已经从沙箱帐户中复制了这些凭据,来自View API Signature页面。

我正在尝试使用网址https://api-3t.sandbox.paypal.com/nvp连接到沙盒环境 以下是我的有效负载的样子:

METHOD=MassPay&
USR=usr_api1.name.com&
PWD=9M8SWRPX6JMXDHAP&
SIGNATURE=AFcWxV21C7fd0v3bYYYRCpSSRl31AIajEwSIe41AAl--j033rVmjUPI7&
VERSION=204&
RECEIVERTYPE=EmailAddress&
CURRENCYCODE=USD&
L_EMAIL0=some.user%40company.com&
L_AMT0=25

我启用了TLS1.2。有没有办法跟踪问题,除了不正确的凭据?或者我可能需要设置我的测试/开发帐户?顺便说一句,我的开发帐户不是商业,但测试帐户是商业而非客户。

以下是发出请求的代码:

var sb = new StringBuilder();
foreach (var field in dic)
{
    sb.Append($"{field.Key}={HttpUtility.UrlEncode(field.Value)}&");
}
sb.Remove(sb.Length - 1, 1);
var payload = sb.ToString().Trim();

var req = WebRequest.Create(SandBoxHost + "?" + payload);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12;

using (var resp = req.GetResponse()){}

1 个答案:

答案 0 :(得分:1)

凭据和网址是正确的。但是,如果您的沙箱企业帐户没有经过验证的信用卡,我发现您无法通过txt文件发送批量付款。您需要在创建新沙箱用户时指定此时间。如果你没有指定信用卡,猜猜它也不适用于API。

真正的问题出在其中一个字段名称中。我使用USR代替USER