[英]WCF Error - Security processor was unable to find a security header in the message
[英]Security header is not valid error message
我收到此消息
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
页面)复制了这些凭据。
我正在尝试使用URL 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()){}
凭据和URL是正确的。 但是,我发现,如果您的沙盒公司帐户未通过信用卡验证,则无法通过txt文件发送批量付款。 创建新的沙箱用户时,需要指定此时刻。 猜猜如果您不指定信用卡,它也不能与API一起使用。
真正的问题出在一个字段名称中。 我用USR
代替USER
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.