Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Paypal API响应:安全标头无效_C#_Visual Studio_Paypal_Httpwebresponse - Fatal编程技术网

C# Paypal API响应:安全标头无效

C# Paypal API响应:安全标头无效,c#,visual-studio,paypal,httpwebresponse,C#,Visual Studio,Paypal,Httpwebresponse,这是我正在构建并发送给Paypal的字符串 string paypalMessage = "https://api-3t.sandbox.paypal.com/nvp?"; paypalMessage += "USER=" + USER; paypalMessage += "&PWD=" + PWD; paypalMessage += "&VERSION=" + VERSION; paypalMes

这是我正在构建并发送给Paypal的字符串

        string paypalMessage = "https://api-3t.sandbox.paypal.com/nvp?";

        paypalMessage += "USER=" + USER;
        paypalMessage += "&PWD=" + PWD;
        paypalMessage += "&VERSION=" + VERSION;
        paypalMessage += "&SIGNATURE=" + SIGNATURE;
        paypalMessage += "&METHOD=" + METHOD;
        paypalMessage += "&IPADDRESS=" + IPADDRESS;
        paypalMessage += "&ACCT=" + ACCT;
        paypalMessage += "&EXPDATE=" + EXPDATE;
        paypalMessage += "&CVV2=" + CVV2;
        paypalMessage += "&FIRSTNAME=" + FIRSTNAME;
        paypalMessage += "&LASTNAME=" + LASTNAME;
        paypalMessage += "&STREET=" + STREET;
        paypalMessage += "&CITY=" + CITY;
        paypalMessage += "&STATE=" + STATE;
        paypalMessage += "&COUNTRYCODE=" + COUNTRYCODE;
        paypalMessage += "&ZIP=" + ZIP;
        paypalMessage += "&AMT=" + AMT;

        return paypalMessage;
当我将此信息发送给paypal时,我从paypal得到的回复如下:

时间戳=2014%2d05%2d06T19%3a55%3a28Z&CORRELATIONID=e06f3f16478d1&ACK=Failure&VERSION=113%2e0&BUILD=10762035&L_ERRORCODE0=10002&L_SHORTMESSAGE0=Security%20错误&L_LONGMESSAGE0=Security%20头%20无效&L_SEVERITYCODE0=Error

“安全标头无效”是什么意思?我的谷歌搜索告诉我这是一个安全问题,但我知道用户和PWD都是正确的。签名是我登录Paypal开发者网站后从帐户中提取的。这是错的吗

编辑:


在检查回复的同时做一些研究,如果我使用沙盒进行测试,这是否意味着我需要使用附加到实际paypal开发者帐户的已创建沙盒帐户中的用户/PWD/签名?这就是我在sandbox和live之间来回工作所需要更改的全部内容吗?

每当您收到此消息时,都意味着使用了无效的API凭据。确保API凭据中没有添加空格,并且完整签名已复制

另一个选项是端点和凭据不匹配

如果您使用沙盒凭据和实时端点,那么您将收到此消息。如果您对沙盒端点使用实时凭据,情况也是如此。


在这篇文章中,我有到PayPal开发者文档的链接。它详细介绍了如何上线

它并不总是意味着无效的API凭据或错误的端点

如果您对此信息绝对确定,请检查您提出请求时使用的编码-它应该是UTF-8,不带字节顺序标记(BOM),例如

这是而不是默认值,在检查了一个小时后,它帮助了我


当然,也要确保所有参数都是url编码的

是的,安全头无效意味着API凭据无效。如果你试图使用沙盒服务器,你需要使用开发者帐户中的creds。我发现这正是我的问题。有一个沙盒凭据必须与沙盒端点匹配。
var requestEncoding = new UTF8Encoding(false); // UTF-8 without BOM

using (var streamWriter = new StreamWriter(request.GetRequestStream(), requestEncoding))
{
    streamWriter.Write(requestBody);
}