安全标头无效

Posted

技术标签:

【中文标题】安全标头无效【英文标题】:security header is not valid 【发布时间】:2015-11-05 21:34:11 【问题描述】:

我正在尝试在paypal 中创建recurring profile

这是我的代码

<?php

$qs = "";

$username = "xxx";
$password = "xxx";
$signature = "xxx";

$qs = "USER=".$username;
$qs .= "&PWD=".$password;
$qs .= "&SIGNATURE=".$signature;
$qs .= "&METHOD=CreateRecurringPaymentsProfile";
$qs .= "&VERSION=86";
$qs .= "&PAYERID=1";
$qs .= "&PROFILESTARTDATE=2015-08-13T";
$qs .= "&DESC=recurrning payment";
$qs .= "&BILLINGPERIOD=Month";
$qs .= "&BILLINGFREQUENCY=1";
$qs .= "&AMT=10";
$qs .= "&CURRENCYCODE=AUD";
$qs .= "&COUNTRYCODE=AU";
$qs .= "&MAXFAILEDPAYMENTS=3";

header('location:https://api-3t.sandbox.paypal.com/nvp?'.$qs);



?>

从上面的代码,我得到了错误security header is not valid

谁能帮帮我

【问题讨论】:

***.com/questions/23261766/… 【参考方案1】:

在 URL 中使用 %20 而不是 space (' ') 可能会帮助您解决错误[虽然我不确定]:

<?php
$qs = "";

$username = "xxx";
$password = "xxx";
$signature = "xxx";

$qs = "USER=".$username;
$qs .= "&PWD=".$password;
$qs .= "&SIGNATURE=".$signature;
$qs .= "&METHOD=CreateRecurringPaymentsProfile";
$qs .= "&VERSION=86";
$qs .= "&PAYERID=1";
$qs .= "&PROFILESTARTDATE=2015-08-13T";
$qs .= "&DESC=recurrning%20payment";//replace the space
$qs .= "&BILLINGPERIOD=Month";
$qs .= "&BILLINGFREQUENCY=1";
$qs .= "&AMT=10";
$qs .= "&CURRENCYCODE=AUD";
$qs .= "&COUNTRYCODE=AU";
$qs .= "&MAXFAILEDPAYMENTS=3";

header('location:https://api-3t.sandbox.paypal.com/nvp?'.$qs);
?>

【讨论】:

检查您的 $username$password$signature 值以及执行此操作的正确手册。您也可以查看this、this 和this。 paypal 企业账户的 header('location:') 中设置哪个 url 请访问我之前评论中的建议链接。

以上是关于安全标头无效的主要内容,如果未能解决你的问题,请参考以下文章

安全标头无效

安全标头无效 - 使用 curl php

安全标头无效错误消息

Paypal API 响应:安全标头无效

10002 在实时模式下调用 DoCapture 时,安全标头无效错误

Omnipay Paypal Express 结帐错误:安全标头无效